In this blog post, We’ll be introducing you to the “World of Heroku” a Polyglot powerful Platform as a Service, which can be utilized to extend your Salesforce Implementations and beyond!
Let us first walk through an example to get an Idea about what heroku can actually do!?
Let’s say your company needs a client facing consumer app which is developed using Java. In our scenario let’s say our data has to be fetched/consumed from our Salesforce org. This would involve implementation of API’s/CDC events/Callouts in order for the data to be consumed by the external app. But in case of heroku, it is much simpler, we have built in add-ons available in the marketplace. One such is the “Heroku Connect” which allows you to synchronize your data between your Salesforce Org. and the database of your app – The “Postgres” Database. With just over a few clicks your data can be synchronized and made available to your consumer facing app. Not just that we can make our implementation highly scalable and low latency based for a better user experience.
Multi org strategies, Cross cloud connected highly centric solutions are achievable by extending the power of the Salesforce platform using heroku.
Let’s begin with a little introduction about Heroku from the scratch. Also, later we will quickly deploy a NodeJS app, Synchronize the data from a Salesforce org. to our App’s database using just a few clicks and make use of the data!!
Let’s Get Started!!
What is Heroku?
Heroku is a fully managed PaaS which means you need not bother about maintaining the Infrastructure and layers, rather we can focus on developing our applications — all the underlying complexity is handled for you by dedicated teams at Salesforce, including things like responding to failures, monitoring security vulnerabilities and patching them, planning for scaling, and actually scaling the PaaS.
Heroku takes care of these things for you so that you can concentrate on building custom applications to delight your customers. And you get the added flexibility of being able to use a variety of languages and easily scale your resources as necessary.
Also, Heroku supports a wide range of programming languages for you to develop custom applications. Some of the languages which Heroku supports is : 1. Node JS 2. Java 3. PHP 4. GO Lang 4. Scala and many more which makes the platform “Polyglot”.
You can deploy your app with just over a few clicks on Heroku and make it available for your customers. Not just that there are plenty of features supported by Heroku for e.g: Inbuilt Data Services,CI/CD, Auto-Scaling, Pipeline Management, Dedicated runtime environment(Private Spaces) for your app and a lot more!!
Now let’s learn some of the buzzwords on Heroku which are essential if you are working on the platform.
1.Dynos 2. Pipeline 3. Private Spaces 4. Slugs and Buildpacks 5. Heroku CLI 6. Heroku Dashboard 7. Heroku Marketplace
- Dynos are the heart of the heroku platform. The Heroku Platform uses the container model to run and scale all Heroku apps. The containers used at Heroku are called “dynos.” Dynos are isolated, virtualized Linux containers that are designed to execute code based on a user-specified command.
- In simple words: Let’s say we execute a command over the Heroku CLI for our app, the code base has to generate/respond to our command by executing the instructions that we provide. These are done by “Dynos”.
- Pipeline: It is a group of Heroku apps(apps which you deploy on heroku) that share the same codebase. Each app in a pipeline represents one of the following stages in a continuous delivery workflow:
- Pipelines are extremely useful for managing multiple environments for your app.
- Private Spaces: Private Spaces in Heroku provide a dedicated and isolated runtime environment for your apps. Thus by allowing it to securely connect with on-premise systems on your corporate network and other cloud services, including Salesforce.
- Slugs and Buildpacks:
- Slugs are compressed and pre-packaged copies of your application optimized for distribution to the dyno manager. When you git push to Heroku, your code is received by the slug compiler which transforms your repository into a slug.
- Buildpacks are responsible for transforming deployed code into a slug, which can then be executed on a dyno. Buildpacks are composed of a set of scripts, and depending on the programming language, the scripts will retrieve dependencies, output generated assets or compiled code, and more.
- Heroku CLI : The Heroku Command Line Interface (CLI) makes it easy to create and manage your Heroku apps directly from the terminal. It’s an essential part of using Heroku.
- Heroku Dashboard : When you login to Heroku you are landed straight into the Dashboard. It provides simple visibility and management for app status, activity, resources, add-ons, collaborators, and other critical aspects of your app. It allows you to track your app’s activity and beyond using the GUI.
- Heroku Marketplace : Marketplace is where you can find all the add-ons required for your app to work efficiently on the platform.
With a little introduction about the platform and buzzwords now let’s quickly deploy an Node JS app on the Heroku platform and see how it works!
Heroku also provides support for tools such as GitHub which makes it easy to form a connection and deploy the app on the Heroku Platform.
With a little introduction about the platform and buzzwords now we are familiar with what is “Heroku”!!
In our next blog, we will see how we can deploy a NodeJS app on heroku using just a few clicks and also discuss various design patterns and more!!
I hope you have learnt a little something! Till the next time stay safe and Keep on blazing your trail!!
Senior Salesforce Engineer, ABSYZ Inc. Lightning Champion || Journey2Salesforce Mentor Twitter : @AbhiDevForce