Download - Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Transcript
Page 1: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Web AppsWhy we need them and how to make them easier

[email protected]

Steve Conklin AI4QR

Page 2: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Steve ConklinService Reliability Engineer

Heroku

Page 3: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Overview

• Why does Amateur Radio need Web apps?

• What is Heroku & Why is it awesome?

• 12 Factor Philosophy

• Request Path through Heroku

• Dynos, Databases & Add-ons

• Pipelines, Private Spaces, Connect, Kafka

Page 4: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Why do we need web apps?

Page 5: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Standalone Operations are essentialTake Phase4B for example . . .

• Voice Communications

• Voice Chat (possibly)

• Station-to-station Data

• Station-to-many Data

• Text and other applications using this connectedness

Phase4B is entirely digital and routed packets, isn’t that a network?

Page 6: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

What do we get by extending connectivity to the internet?

• Access to software updates

• Access to served agency resources

• Authentication and identity servers

• Logging applications

• Access to Phase4B for those without a ground station

• Access to email gateways

• And anything else we can think of

Page 7: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

What is Heroku?And why should we use it?

Page 8: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

What is Heroku?

Page 9: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

What is Heroku?

Heroku is a cloud platform that lets companies build,

deliver, monitor and scale apps — we're the fastest

way to go from idea to URL, bypassing all those

infrastructure headaches.

Page 10: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Deploy, manage, and scale

Idea URL

Page 11: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Deploy, manage, and scale

DEPLOY MANAGE SCALE

Idea URL

Page 12: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Heroku by the numbers

13 Billion

requests/day

6+ Million

apps created

150+

add-on services

Page 13: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

12 Factor app??

Page 14: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

12 Factor• Codebase: One codebase tracked in revision control, many deploys

• Dependencies: Explicitly declare and isolate dependencies

• Config: Store config in the environment

• Backing Services: Treat backing services as attached resources

• Build, release, run: Strictly separate build and run stages

• Processes: Execute the app as one or more stateless processes

• Port binding: Export services via port binding

• Concurrency: Scale out via the process model

• Disposability: Maximize robustness with fast startup and graceful shutdown

• Dev/prod parity: Keep development, staging, and production as similar as possible

• Logs: Treat logs as event streams

• Admin processes: Run admin/management tasks as one-off processes

Page 15: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

How does Heroku work?

Page 16: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

The Heroku Platform (as a Service)

Dynos

Data Add-ons

Page 17: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Dynos

Virtualized containers that run

application code

Page 18: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Add-ons

Tools, components and services

Some add-ons are shareable

Page 19: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Database (and Data Store)

Fully managed Postgres, Redis and Kafka

instances

Shareable among apps

Page 20: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

How Heroku works

Developer deploys code

Page 21: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

How Heroku works

Apps run in dynos

(smart containers)

Page 22: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

How Heroku works

Developer manages app

in dashboard or CLI

Page 23: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

How Heroku works

Data in scalable backing

services (via add-ons)

Page 24: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

How Heroku works

Users make requests, which

are served by the app

Page 25: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Routing Layer

My App

Request

Other App Other App Other App

Page 26: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Routing

My App

Dyno

Dyno

Dynos

Dynos

Dyno

Dyno

Dynos

Dynos

Other App

Page 27: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

My App

Dyno

Dynos

Dynos

Dyno

Dyno

Dynos

Dynos

Code

App Server

Dependencies

Code + Buildpack = Slug

Page 28: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Usersynchronous

AMSAT on Heroku

Page 29: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Usersynchronous is a QSO visualization appAn example of a cloud-based app for an AMSAT project

• It’s currently just a shell

• It has user authentication

• There’s one sample visualization in the app

• No actual logs are used yet

• The source code is in the phase4 github repo as “usersynchronous”

Currently available at https://qsomap.herokuapp.com/

Sample graph at https://qsomap.herokuapp.com/graph

Page 30: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go
Page 31: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Questions?

Page 32: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Advanced Features

Page 33: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Heroku Today: Cedar

7 apps created

Million +

Page 34: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Heroku Private Spaces

Page 35: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Existing Infrastructure

Firewall on the client side

restricts access based on

the Space IPs

The Space is configured

with the known IPs of the

existing infrastructure.

Private Spaces Architecture Trusted Inbound Network and Stable Outbound IPs

Private Space

Requests from outside

the Space are routed

(and load balanced) to

Web Dynos for the Apps

Data Services

Heroku Postgres and Heroku Redis

are available in the Space. They are

not externally accessible. Apps

connect directly to data services over

the internal network.

Datalinks Outbound

Request

Page 36: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Heroku Flow : Manage a complete Continuous Integration/Delivery workflow

Page 37: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Heroku Flow: Review Apps

Page 38: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go
Page 39: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go
Page 40: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go
Page 41: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go
Page 42: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go
Page 43: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go
Page 44: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go
Page 45: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go
Page 46: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go
Page 47: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go
Page 48: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go
Page 49: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go
Page 50: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go
Page 51: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go
Page 52: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Heroku Flow: Auto Deploy to Staging

Page 53: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Heroku Flow: Promote to Production

Page 54: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Salesforce + HerokuConnect your customer apps in a whole new way

Automatic

Intelligent

Bi-directional

Secure

Heroku

app

Salesforcecustomer

system of

record

Connect Engine

Page 55: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Salesforce + HerokuConnect your customer apps in a whole new way

Customer facing

app

Heroku

app

postgres redis other

Salesforcecustomer

system of

record

Business

Apps

Page 56: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

All developers know how to write apps against

databases

Automatic bi-directional data synch

Point-and-click interface for connecting database

fields with objects and fields in Salesforce

Supports multiple Salesforce orgs

Supports Salesforce custom objects

Can dramatically reduce Force.com API call

frequency

Heroku Connect ArchitectureBenefits

Heroku Cloud

Salesforce Cloud

Your App

Auto synch

Java

Ruby

Node.js

Python

PHPAny SQL Tool

Page 57: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Apache Kafka on Heroku

Page 58: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Integration with Salesforce

Page 59: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go

Q&A

Page 60: Introduction to Heroku (starting at 11:45) · What is Heroku? Heroku is a cloud platform that lets companies build, deliver, monitor and scale apps —we're the fastest way to go