How can Heroku support app development in Salesforce environment? Let’s find out more about Heroku as a cloud platform, and what benefits it brings to the Salesforce Ecosystem. I will introduce Heroku Add-ons which provide an easy way to add more services and tools for your Heroku app. I will walk you through specific use cases for Heroku, so you can see how it makes app development easy and how it fits into the overall architecture. And I will show you the Heroku platform in a quick demo session to demonstrate its practical use and how you can make it work for your projects too.
4. #CD22
“Heroku is a platform as a service based on a managed container system, with integrated
data services and a powerful ecosystem, for deploying and running modern apps. The Heroku
developer experience is an app-centric approach for software delivery, integrated with today’s
most popular developer tools and workflows.”
Heroku basics
5. #CD22
“Heroku is a platform as a service based on a managed container system, with integrated
data services and a powerful ecosystem, for deploying and running modern apps. The Heroku
developer experience is an app-centric approach for software delivery, integrated with today’s
most popular developer tools and workflows.”
Heroku basics
What is a Container?
It is a lightweight software packages that
contain all the dependencies required to
execute the contained software application
A container virtualize software layers above
the operating system level.
Container
App A
Libs
Container
App A
Libs
Container
App A
Libs
Container Engine
Host Operating System
Infrastructure
6. #CD22
Platform as a Service
A PaaS is a cloud computing model where a
third-party provider delivers the hardware and
software tools. The tools usually are used to
allow users to develop their application. The
result of using a PaaS is that developers have
just to think about their own app without worrying
about the underlying infrastructure and software
Heroku basics
PaaS
SaaS
IaaS
7. #CD22
Heroku was fonded in 2007
At the beginning was supporting only Ruby
language
It has been acquired by Salesforce in 2010 for
$212 million
Then name seems to come from the confination
of the words hero and haiku
Heroku basics
Lames Lindenbaum
Adam Wiggins
Orion Henry
8. #CD22
Main Heroku concepts
Application
Defined by the user, can be implemented in the most common
language: Java, Python, NodeJS, Ruby, Go, Scala
Git Repo
Git is used to push the code to Heroku and the master branch is
the one from where is created the slug file
Dependencies
According to the chosen programming language the dependencies
are defined in the configuration file and there is no need to push to
the repo
Buildpack
Buildpacks are composed of a set of scripts, that are responsible to
transform the deployed code into a slug. Depending on the language
the script retrieve also the dependencies
Slug
The slug is the result of the execution of the buildpack that create
a container with the code, dependencies and the procfile
Dyno
Dynos are the isolated container where the slug is executed.
There are different version and kind of dynos in Heroku
environment
Procfile
Contains the startup execution instruction and on which dyno it
has to be execute
Add-ons Additional component that can be attached to the Heroku app
9. #CD22
Dyno types
Free Dynos
Limited sandbox dyno to start exploring the features of Heroku.
After 30 minutes of inactivity the dyno sleep mode
Hobby Dynos
Perfect for small projects. They provide better
performance and they do not sleep
Standard Dynos
They provide a simple horizontal scalability (not
automatic)
Performance Dynos
They provide high performance and autoscaling
mechanism
Private and Shield Dynos
The apps runing on private dynos have their own private
space in a specified geografic region.
10. #CD22
Defined in the Procfile, each
process type rappresnet a
command that should be
executed by the Dyno
Manager when starting a
dyno
Process types
Web
It’s able to receive
inboud http request from
routers and it’s used
usualy to host web
servers
Worker
It’s used for background
jobs
One-off
Special kind of process
that are used to execute
short-lived commands
11. #CD22
Add-ons are another essential
piece of the Heroku platform.
These elements give you the
ability to add complex
functionality to your
application without having to
manage the underlying
software or infrastructure.
Add-ons
Logs
Data Services
Notification
PostgreSQL database
Redis
Kafka
Heroku connect
Papertrail
It’s an efficient add-on that provide an
easy way to read Heroku logs by a
user-friendly interface.
SendGrid
It allows Heroku to send Email using
simple api.
12. #CD22
Set and forget
Once configured, developers or business users
have not to worry about it, Heroku connect will
run without any other administration
Easy configuration
The configuration of the add-on is done by point
and click. With few steps it is possible to map
the sync between Heroku Postgres and
Salesforce DB
Polling mechanism
Heroku connect detect automatically when
there is a change in the database. The polling
frequency is configurable (min freq. 2 min)
Optimize API integration
Heroku connect uses all the salesforce best
practice to write data in the database. It
automatically decide if using SOAP or Bulk API
depending on the amount of data to sync
Heroku Connect
13. #CD22
Use cases
Data manipulation
Through integration with Salesforce,
Heroku can be used to manipulate and
process data from the CRM. Using the
programming language allowed by Heroku
you can avoid the limitation of computing
data in Salesforce.
Middleware
The web-based nature of Heroku gives
you the ability to create easily Rest
interface and callout to external
systems. This makes Heroku a good
middleware.
Customer Website
Using different programming language
and the possibility to retrieve data from
the CRM allow Heroku to be used as a
platform where develop a perfect
customer website with no limitation.