The document outlines a presentation on Heroku, a cloud platform that allows developers to deploy, run, and manage modern apps. It discusses what Heroku is, how it uses buildpacks and dynos, common add-ons for services like databases and monitoring, and how to get started using Heroku with tools like the CLI and deploying apps from GitHub. The presentation also covers Heroku features, demos some example apps deployed on Heroku, and discusses best practices like the Twelve-Factor App methodology.
4. @sfdgblr #blrdevx
Agenda
• Heroku Introduction
- What Is Heroku
- Build Pack
- Dyno’s And Add-ons
- Create Heroku Account
- Heroku Dashboard
• Heroku CLI
- CLI Installation
- Usage
• Pricing And Comparison
• Getting Started on Heroku with Node.JS
• Deploying Apps with GitHub
• Scaling of App & Provision of Addons
• Heroku Features
• Heroku Apps Demo
• The Twelve - Factor Apps
• Heroku Certification Mantra
- Key Topics
- Sources
- Trailhead + Trailmix
- Devcenter
• Quiz - Kahoot
• Q&A
5. @sfdgblr #blrdevx
What Is Heroku
● “Heroku" is a merger of "heroic" and "haiku"
● A Container based Cloud Platform As A Service (PaaS)
● Deploy, manage, and scale modern apps.
● Polyglot Programming
6. @sfdgblr #blrdevx
Buildpacks
● Official Supported Buildpacks
● Back bone of polyglot platform
● Setting a Buildpack on Application
● Third Party Buildpacks
● Multiple buildpacks
● Creating buildpack
7. @sfdgblr #blrdevx
Dynos
● Dynos: the heart of the Heroku platform
● A collection of lightweight Linux containers
● Easy for you to build and run flexible, scalable apps.
● No overhead of managing infrastructure
● Source Code, Dependencies and procfile (Slug) is deployed to Dyno
● Web, Worker & One - Off configurations.
● CLI Support (Restart, Start, Stop, Scale, launch, logs etc.)
● Dyno Sleeping.
● Request handling.
8. @sfdgblr #blrdevx
Add-ons
Data Stores
● Heroku Postgres
● Heroku Redis
● Apache kafka
Data Store Utilities
● Marketing Connector
● Heroku Connect
Monitoring
● New Relic APM
● Pingdom
● AppDynamics
Dynos
Heroku Scheduler
Process Scheduler
AutoIdle
Email/SMS
● Sendgrid
● Till & Blower.io
Image & Video Processing
● Einstein Platform Services
● Telestream Cloud
● Resize
Security
● Snyk
● SSL
● Heroku Private Spaces
Testing
● Blazemeter (performance)
● Loader.io (Load Testing)
Alert & User Mgmt
● StatusPage
● Deploy Hooks
● Auth0 & Oauth.io
9. @sfdgblr #blrdevx
Heroku Account, Dashboard & CLI
● Free account - https://signup.heroku.com/
● The Heroku Dashboard
○ Creating, renaming, and deleting apps
○ Viewing app metrics
○ Configuring add-ons
○ Managing Heroku Teams
○ Creating pipelines
○ Configuring deployment integrations
○ Viewing usage, invoice, and billing information
● The Heroku CLI
○ Create and manage your Heroku apps.
○ https://devcenter.heroku.com/articles/heroku-cli
10. @sfdgblr #blrdevx
Pricing and Comparison
● Selection of Plan (https://www.heroku.com/pricing)
● Collaborators
○ Shared Collaborators
○ Heroku Teams
○ Heroku Enterprise
● CI/CD
○ Heroku Pipelines
○ Heroku CI
11. @sfdgblr #blrdevx
● Heroku CLI
● Node
● NPM
● GIT
● https://devcenter.heroku.com/articles/getting-started-with-nodejs
Getting Started on Heroku with Node.js
12. @sfdgblr #blrdevx
Deploying Apps with GitHub
● Enabling Github Integration
● Manul Deploys
● Automatic Deploys
● Review Apps
● Heroku CI
● Disconnecting From Github
15. @sfdgblr #blrdevx
The Twelve-Factor App
I. Codebase
One codebase tracked in revision control, many
deploys
II. Dependencies
Explicitly declare and isolate dependencies
III. Config
Store config in the environment
IV. Backing services
Treat backing services as attached resources
V. Build, release, run
Strictly separate build and run stages
VI. Processes
Execute the app as one or more stateless processes
VII. Port binding
Export services via port binding
VIII. Concurrency
Scale out via the process model
IX. Disposability
Maximize robustness with fast startup and graceful shutdown
X. Dev/prod parity
Keep development, staging, and production as similar as
possible
XI. Logs
Treat logs as event streams
XII. Admin processes
Run admin/management tasks as one-off processes
16. @sfdgblr #blrdevx
Heroku Certification Mantra
● Do I need this credentials?
● Exam Guide on trailhead
● Trailhead Modules
○ Heroku Enterprise Basic
○ Salesforce and Heroku Integration
● Heroku Architecture
● Build Getting started Apps from Heroku Site
● Play with Add-ons
● Dev Center is Key to success
● Trailmix - Prepare for Your Heroku Architecture Credential
● Build 3-5 End to End Applications
● Fork Github Projects
● http://clouddatafacts.com
● Study Group?
● 60-questions, 72%, $400
● Be among first few to get certified from India
19. @sfdgblr #blrdevx
Click to Add Title
First level text is set at twenty point Salesforce Sans
and does not have a bullet
• Second level is eighteen point Salesforce Sans
First level text is set at twenty point Salesforce Sans
and does not have a bullet
• Second level is eighteen point Salesforce Sans
First level text is set at twenty point Salesforce
Sans and does not have a bullet
• Second level is eighteen point Salesforce Sans
First level text is set at twenty point Salesforce
Sans and does not have a bullet
• Second level is eighteen point Salesforce Sans
Ideal for experimenting with cloud applications in a limited sandbox. - free
Perfect for small scale personal projects and hobby apps. - hobby
Enhanced visibility, performance, and availability for powering your production applications.- STD
Superior performance when it's most critical for your super scale, high traffic apps.- Per
The build system takes the application, its dependencies, and the language runtime and produces a “slug.” A slug contains everything needed to run the app, except for the operating system.
Web: Web dynos are dynos of the “web” process type that is defined in your Procfile. Only web dynos receive HTTP traffic from the routers.
Worker: Worker dynos can be of any process type declared in your Procfile, other than “web”. Worker dynos are typically used for background jobs, queueing systems, and timed jobs. You can have multiple kinds of worker dynos in your application. For example, one for urgent jobs and another for long-running jobs. For more information, see Worker Dynos, Background Jobs and Queueing.
One-off: One-off dynos are temporary dynos that can run detached, or with their input/output attached to your local terminal. They’re loaded with your latest release. They can be used to handle administrative tasks, such as database migrations and console sessions. They can also be used to run occasional background work, as with Heroku Scheduler. For more information, see One-Off Dynos.