SlideShare una empresa de Scribd logo
1 de 80
Descargar para leer sin conexión
lanyrd.com/sdmbmk
Heroku 101
!
dgouldin@heroku.com
@dgouldin
lanyrd.com/sdmbmk
What is Heroku?
The application platform
lanyrd.com/sdmbmk
You write your app.
We do the rest.
lanyrd.com/sdmbmk
LOW HIGH
SCALE
drag to scale
lanyrd.com/sdmbmk
5 Billion
requests per day
3+ Million
Apps Created
125+
Add-on services
lanyrd.com/sdmbmk
What’s a Heroku app?
lanyrd.com/sdmbmk
The Twelve-Factor app
12factor.net
lanyrd.com/sdmbmk
Let’s dive in!
lanyrd.com/sdmbmk
Assumptions
You want to learn about Heroku.
You know (a bit) of Python.
You have Python, pip, and virtualenv*.
lanyrd.com/sdmbmk
*install.python-guide.org
lanyrd.com/sdmbmk
Install the Toolbelt
toolbelt.heroku.com
lanyrd.com/sdmbmk
$ heroku login
Log in
lanyrd.com/sdmbmk
X. Dev/prod parity
12factor.net/dev-prod-parity
lanyrd.com/sdmbmk
Create a Flask app
devcenter.heroku.com/articles/getting-started-with-python
lanyrd.com/sdmbmk
$ mkdir hello-heroku
$ cd hello-heroku
$ virtualenv venv
$ source venv/bin/activate
$ pip install Flask gunicorn
Create a vitualenv and install requirements
lanyrd.com/sdmbmk
import os
from flask import Flask
!
app = Flask(__name__)
!
@app.route('/')
def hello():
return 'Hello World!'
hello.py
lanyrd.com/sdmbmk
web: gunicorn hello:app
Procfile
lanyrd.com/sdmbmk
VI. Processes
12factor.net/
lanyrd.com/sdmbmk
$ foreman start
Start the app
lanyrd.com/sdmbmk
X. Dev/prod parity
12factor.net/dev-prod-parity
lanyrd.com/sdmbmk
$ pip freeze > requirements.txt
Freeze dependencies
lanyrd.com/sdmbmk
II. Dependencies
12factor.net/
lanyrd.com/sdmbmk
Store the app in git
devcenter.heroku.com/articles/git
lanyrd.com/sdmbmk
venv
*.pyc
.gitignore
lanyrd.com/sdmbmk
$ git init
$ git add .
$ git commit -m "initial commit"
Store the app in git
lanyrd.com/sdmbmk
I. Single codebase
12factor.net/
lanyrd.com/sdmbmk
Create and deploy 

the application
lanyrd.com/sdmbmk
$ heroku create
$ git push heroku master
...
-----> Launching... done, v2
http://happy-pycon-2015.herokuapp.com
deployed to Heroku
$ heroku open
Create and deploy the app
lanyrd.com/sdmbmk
V. Build, release, run
12factor.net/build-release-run
lanyrd.com/sdmbmk
Logging
lanyrd.com/sdmbmk
$ heroku logs --tail
Viewing logs
lanyrd.com/sdmbmk
import os
from flask import Flask
!
app = Flask(__name__)
!
import logging
logging.basicConfig(level=logging.DEBUG)
!
@app.route('/')
def hello():
logging.info("saying hello")
return 'Hello World!'
hello.py
lanyrd.com/sdmbmk
$ git add .
$ git commit -m "add logging"
$ git push heroku master
Commit and deploy again
lanyrd.com/sdmbmk
$ heroku logs --tail
Viewing logs
lanyrd.com/sdmbmk
XI. Logs as event streams
12factor.net/
lanyrd.com/sdmbmk
Configuration variables
devcenter.heroku.com/articles/config-vars
lanyrd.com/sdmbmk
import os
import logging
from flask import Flask
!
app = Flask(__name__)
logging.basicConfig(level=logging.DEBUG)
!
@app.route('/')
def hello():
logging.info("saying hello")
name = os.environ.get('NAME', 'World')
return 'Hello {}!'.format(name)
hello.py
lanyrd.com/sdmbmk
$ NAME=David foreman start
Try it out locally
lanyrd.com/sdmbmk
$ echo "NAME=David" > .env
Store local env vars in .env
(don’t forget to add it to .gitignore)
lanyrd.com/sdmbmk
$ foreman start
Try it out locally
lanyrd.com/sdmbmk
$ git add .
$ git commit -m "add name"
$ git push heroku master
Commit and deploy
lanyrd.com/sdmbmk
$ heroku config:set NAME=David
Setting config vars and restarting happy-pycon-2015... done, v6
!
$ heroku config:get NAME
David
!
$ heroku config
=== happy-pycon-2015 Config Vars
NAME: David
!
$ heroku config:unset NAME
Unsetting NAME and restarting happy-pycon-2015... done, v7
Managing config vars
lanyrd.com/sdmbmk
III. Store config in the environment
12factor.net/
lanyrd.com/sdmbmk
Releases
devcenter.heroku.com/articles/releases
lanyrd.com/sdmbmk
$ heroku releases
=== happy-pycon-2015 Releases
v7 Remove NAME config vars dgouldin@heroku.com 2015/04/07 12:41:49
v6 Deploy df3cf06 dgouldin@heroku.com 2015/04/07 12:40:32
v5 Set NAME config vars dgouldin@heroku.com 2015/04/07 12:35:30
v4 Deploy 5bebf9b dgouldin@heroku.com 2015/04/07 12:34:27
v3 Deploy 69398b3 dgouldin@heroku.com 2015/04/07 12:18:08
v2 Enable Logplex dgouldin@heroku.com 2015/04/07 12:16:20
v1 Initial release dgouldin@heroku.com 2015/04/07 12:16:17
Release history
lanyrd.com/sdmbmk
I. One codebase, many deploys
12factor.net/
lanyrd.com/sdmbmk
Addons
addons.heroku.com
lanyrd.com/sdmbmk
$ heroku addons:create rediscloud
Adding rediscloud on happy-pycon-2015... done, v8 (free)
Use `heroku addons:docs rediscloud` to view documentation.
Adding an addon
lanyrd.com/sdmbmk
import os
import redis
from flask import Flask
!
app = Flask(__name__)
db = redis.from_url(os.environ['REDISCLOUD_URL'])
!
@app.route('/')
def hello():
name = db.get(‘name') or 'World'
return 'Hello %s!' % name
!
@app.route('/setname/<name>')
def setname(name):
db.set('name', name)
return 'Name updated.'
hello.py
lanyrd.com/sdmbmk
IV. Treat backing services as attached resources
12factor.net/
lanyrd.com/sdmbmk
$ pip install redis
$ pip freeze > requirements.txt
Dependencies
lanyrd.com/sdmbmk
$ git add .
$ git commit -m "use redis for name"
$ git push heroku master
Commit and deploy
lanyrd.com/sdmbmk
X. Dev/prod parity?
Uh oh…
lanyrd.com/sdmbmk
$ foreman start
13:03:34 web.1 | started with pid 24492
...
13:03:34 web.1 | 2015-04-07 13:03:34 [24495] [ERROR] Exception in worker process:
13:03:34 web.1 | Traceback (most recent call last):
...
13:03:34 web.1 | KeyError: 'REDISCLOUD_URL'
...
13:03:34 web.1 | 2015-04-07 13:03:34 [24495] [INFO] Worker exiting (pid: 24495)
13:03:34 web.1 | 2015-04-07 13:03:34 [24492] [INFO] Shutting down: Master
13:03:34 web.1 | 2015-04-07 13:03:34 [24492] [INFO] Reason: Worker failed to boot.
13:03:34 web.1 | exited with code 3
13:03:34 system | sending SIGTERM to all processes
SIGTERM received
Uh oh…
lanyrd.com/sdmbmk
Some solutions:
Only run remotely
Homebrew - brew.sh
Vagrant - vagrantup.com
Docker - docker.io
lanyrd.com/sdmbmk
Scaling and performance
devcenter.heroku.com/articles/scaling
lanyrd.com/sdmbmk
$ heroku ps:scale web=2
Scaling dynos... done, now running web at 2:1X.
!
$ heroku ps:scale web=10
Scaling dynos... done, now running web at 10:1X.
!
$ heroku ps:scale web=5:2X
Scaling dynos... done, now running web at 5:2X.
!
$ heroku ps:scale web=1:PX
Scaling dynos... done, now running web at 1:PX.
!
$ heroku ps:scale web=1:1X
Scaling dynos... done, now running web at 1:1X.
Scaling
lanyrd.com/sdmbmk
Understanding performance
devcenter.heroku.com/articles/optimizing-dyno-usage
lanyrd.com/sdmbmk
VIII. Concurrency via processes
12factor.net/
lanyrd.com/sdmbmk
$ heroku labs:enable log-runtime-metrics
$ heroku restart
!
$ heroku logs --tail
2015-04-07T17:19:30.746857+00:00 heroku[web.1]: source=web.1 dyno=heroku.
23939571.b4d17f84-50f5-4e2f-9fb1-b2124db4addb sample#memory_total=17.86MB
sample#memory_rss=17.85MB sample#memory_cache=0.00MB sample#memory_swap=0.00MB
sample#memory_pgpgin=5311pages sample#memory_pgpgout=740pages
!
2015-04-07T17:19:50.787234+00:00 heroku[web.1]: source=web.1 dyno=heroku.
23939571.b4d17f84-50f5-4e2f-9fb1-b2124db4addb sample#memory_total=17.86MB
sample#memory_rss=17.85MB sample#memory_cache=0.00MB sample#memory_swap=0.00MB
sample#memory_pgpgin=5311pages sample#memory_pgpgout=740pages
log-runtime-metrics
lanyrd.com/sdmbmk
Dashboard
metrics
organization
add-ons marketplace
lanyrd.com/sdmbmk
Metrics
devcenter.heroku.com/articles/metrics
lanyrd.com/sdmbmk
Organizations
devcenter.heroku.com/categories/organization-accounts
lanyrd.com/sdmbmk
Add-ons Marketplace
lanyrd.com/sdmbmk
Papertrail
lanyrd.com/sdmbmk
Rollbar
lanyrd.com/sdmbmk
New Relic
lanyrd.com/sdmbmk
And many more …
addons.heroku.com
lanyrd.com/sdmbmk
Github Integration
devcenter.heroku.com/articles/github-integration
lanyrd.com/sdmbmk
Automatic Deploys
lanyrd.com/sdmbmk
Release Diffs
lanyrd.com/sdmbmk
Heroku Button
1 click to a deployed Heroku app
lanyrd.com/sdmbmk
app.json
lanyrd.com/sdmbmk
README.md
[![Deploy](https://www.herokucdn.com/deploy/button.png)]
(https://heroku.com/deploy?template=https://github.com/
dgouldin/django-playground)
lanyrd.com/sdmbmk
Try it yourself!
github.com/dgouldin/django-playground
lanyrd.com/sdmbmk
Bonus: Platform API
devcenter.heroku.com/categories/platform-api
lanyrd.com/sdmbmk
>>> import json
>>> import requests # python-requests.org
!
>>> heroku = requests.session()
>>> heroku.auth = ('', '{INSERT HEROKU API TOKEN HERE}')
>>> heroku.headers['Accept'] = 'application/vnd.heroku+json; version=3'
>>> heroku.headers['Content-Type'] = 'application/json'
REST API basics
lanyrd.com/sdmbmk
>>> heroku.get('https://api.heroku.com/apps/happy-pycon-2015').json()
{u'archived_at': None,
...
u'web_url': u'http://dgouldin.herokuapp.com/'}
!
>>> heroku.get('https://api.heroku.com/apps/happy-pycon-2015/config-vars').json()
[35] :
{u'NAME': u'David',
u'REDISCLOUD_URL': u'{REDACTED}'}
!
>>> body = json.dumps({'NAME': 'Robot'})
>>> heroku.patch('https://api.heroku.com/apps/happy-pycon-2015/config-vars', body)
App info; config vars
lanyrd.com/sdmbmk
>>> heroku.get('https://api.heroku.com/apps/happy-pycon-2015/formation').json()
[{u'command': u'gunicorn hello:app',
u'created_at': u'2015-04-06T16:42:24Z',
u'id': u'928f6618-a0e2-4ded-95ec-e3a23a7795f0',
u'quantity': 2,
u'size': u'1X',
u'type': u'web',
u'updated_at': u'2015-04-06T18:50:02Z'}]
!
>>> body = json.dumps({'quantity': 4})
>>> heroku.patch('https://api.heroku.com/apps/dgouldin/formation/web', body)
Scaling
lanyrd.com/sdmbmk
Questions and Free Play
dgouldin@heroku.com
@dgouldin

Más contenido relacionado

La actualidad más candente

Cloud Migration Strategy and Best Practices
Cloud Migration Strategy and Best PracticesCloud Migration Strategy and Best Practices
Cloud Migration Strategy and Best PracticesQBurst
 
Building a Solid Business Case for Cloud Migration
Building a Solid Business Case for Cloud MigrationBuilding a Solid Business Case for Cloud Migration
Building a Solid Business Case for Cloud MigrationAmazon Web Services
 
Azure Application Modernization
Azure Application ModernizationAzure Application Modernization
Azure Application ModernizationKarina Matos
 
Data Center Migration to the AWS Cloud
Data Center Migration to the AWS CloudData Center Migration to the AWS Cloud
Data Center Migration to the AWS CloudTom Laszewski
 
Cloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
Cloud Migration Cookbook: A Guide To Moving Your Apps To The CloudCloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
Cloud Migration Cookbook: A Guide To Moving Your Apps To The CloudNew Relic
 
Azure cloud migration simplified
Azure cloud migration simplifiedAzure cloud migration simplified
Azure cloud migration simplifiedGirlo
 
An Overview of Best Practices for Large Scale Migrations - AWS Transformation...
An Overview of Best Practices for Large Scale Migrations - AWS Transformation...An Overview of Best Practices for Large Scale Migrations - AWS Transformation...
An Overview of Best Practices for Large Scale Migrations - AWS Transformation...Amazon Web Services
 
Azure Site Recovery - BC/DR - Migrations & assessments in 60 minutes!
Azure Site Recovery - BC/DR - Migrations & assessments in 60 minutes!Azure Site Recovery - BC/DR - Migrations & assessments in 60 minutes!
Azure Site Recovery - BC/DR - Migrations & assessments in 60 minutes!Johan Biere
 
Cloud migration strategies
Cloud migration strategiesCloud migration strategies
Cloud migration strategiesSogetiLabs
 
Microsoft Azure Technical Overview
Microsoft Azure Technical OverviewMicrosoft Azure Technical Overview
Microsoft Azure Technical Overviewgjuljo
 
Cloud Migration, Application Modernization, and Security
Cloud Migration, Application Modernization, and Security Cloud Migration, Application Modernization, and Security
Cloud Migration, Application Modernization, and Security Tom Laszewski
 
Large-Scale AWS Migrations with CSC
Large-Scale AWS Migrations with CSCLarge-Scale AWS Migrations with CSC
Large-Scale AWS Migrations with CSCAmazon Web Services
 
Introduction to the world of Cloud Computing & Microsoft Azure.pptx
Introduction to the world of Cloud Computing & Microsoft Azure.pptxIntroduction to the world of Cloud Computing & Microsoft Azure.pptx
Introduction to the world of Cloud Computing & Microsoft Azure.pptxPrazolBista
 
Solution deck capgemini cloud assessment
Solution deck capgemini cloud assessmentSolution deck capgemini cloud assessment
Solution deck capgemini cloud assessmentAdobe
 
Accenture-Cloud-Data-Migration-POV-Final.pdf
Accenture-Cloud-Data-Migration-POV-Final.pdfAccenture-Cloud-Data-Migration-POV-Final.pdf
Accenture-Cloud-Data-Migration-POV-Final.pdfRajvir Kaushal
 
Legacy application modernization with microsoft azure
Legacy application modernization with microsoft azureLegacy application modernization with microsoft azure
Legacy application modernization with microsoft azureOptiSol Business Solutions
 

La actualidad más candente (20)

Migrating to the Cloud
Migrating to the CloudMigrating to the Cloud
Migrating to the Cloud
 
Cloud Migration Strategy and Best Practices
Cloud Migration Strategy and Best PracticesCloud Migration Strategy and Best Practices
Cloud Migration Strategy and Best Practices
 
Building a Solid Business Case for Cloud Migration
Building a Solid Business Case for Cloud MigrationBuilding a Solid Business Case for Cloud Migration
Building a Solid Business Case for Cloud Migration
 
Azure Application Modernization
Azure Application ModernizationAzure Application Modernization
Azure Application Modernization
 
Data Center Migration to the AWS Cloud
Data Center Migration to the AWS CloudData Center Migration to the AWS Cloud
Data Center Migration to the AWS Cloud
 
Cloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
Cloud Migration Cookbook: A Guide To Moving Your Apps To The CloudCloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
Cloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
 
App Modernization
App ModernizationApp Modernization
App Modernization
 
AWS Migration Planning Roadmap
AWS Migration Planning RoadmapAWS Migration Planning Roadmap
AWS Migration Planning Roadmap
 
Azure cloud migration simplified
Azure cloud migration simplifiedAzure cloud migration simplified
Azure cloud migration simplified
 
An Overview of Best Practices for Large Scale Migrations - AWS Transformation...
An Overview of Best Practices for Large Scale Migrations - AWS Transformation...An Overview of Best Practices for Large Scale Migrations - AWS Transformation...
An Overview of Best Practices for Large Scale Migrations - AWS Transformation...
 
Azure Site Recovery - BC/DR - Migrations & assessments in 60 minutes!
Azure Site Recovery - BC/DR - Migrations & assessments in 60 minutes!Azure Site Recovery - BC/DR - Migrations & assessments in 60 minutes!
Azure Site Recovery - BC/DR - Migrations & assessments in 60 minutes!
 
Cloud migration strategies
Cloud migration strategiesCloud migration strategies
Cloud migration strategies
 
Anthos
AnthosAnthos
Anthos
 
Microsoft Azure Technical Overview
Microsoft Azure Technical OverviewMicrosoft Azure Technical Overview
Microsoft Azure Technical Overview
 
Cloud Migration, Application Modernization, and Security
Cloud Migration, Application Modernization, and Security Cloud Migration, Application Modernization, and Security
Cloud Migration, Application Modernization, and Security
 
Large-Scale AWS Migrations with CSC
Large-Scale AWS Migrations with CSCLarge-Scale AWS Migrations with CSC
Large-Scale AWS Migrations with CSC
 
Introduction to the world of Cloud Computing & Microsoft Azure.pptx
Introduction to the world of Cloud Computing & Microsoft Azure.pptxIntroduction to the world of Cloud Computing & Microsoft Azure.pptx
Introduction to the world of Cloud Computing & Microsoft Azure.pptx
 
Solution deck capgemini cloud assessment
Solution deck capgemini cloud assessmentSolution deck capgemini cloud assessment
Solution deck capgemini cloud assessment
 
Accenture-Cloud-Data-Migration-POV-Final.pdf
Accenture-Cloud-Data-Migration-POV-Final.pdfAccenture-Cloud-Data-Migration-POV-Final.pdf
Accenture-Cloud-Data-Migration-POV-Final.pdf
 
Legacy application modernization with microsoft azure
Legacy application modernization with microsoft azureLegacy application modernization with microsoft azure
Legacy application modernization with microsoft azure
 

Similar a Heroku 101 py con 2015 - David Gouldin

Quick and Dirty Python Deployments with Heroku
Quick and Dirty Python Deployments with HerokuQuick and Dirty Python Deployments with Heroku
Quick and Dirty Python Deployments with HerokuDaniel Pritchett
 
2012 coscup - Build your PHP application on Heroku
2012 coscup - Build your PHP application on Heroku2012 coscup - Build your PHP application on Heroku
2012 coscup - Build your PHP application on Herokuronnywang_tw
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017MarcinStachniuk
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.catPablo Godel
 
Clustering Docker with Docker Swarm on openSUSE
Clustering Docker with Docker Swarm on openSUSEClustering Docker with Docker Swarm on openSUSE
Clustering Docker with Docker Swarm on openSUSESaputro Aryulianto
 
Intro to development sites and site migration
Intro to development sites and site migrationIntro to development sites and site migration
Intro to development sites and site migrationR-Cubed Design Forge
 
Docker and Your Path to a Better Staging Environment - webinar by Gil Tayar
Docker and Your Path to a Better Staging Environment - webinar by Gil TayarDocker and Your Path to a Better Staging Environment - webinar by Gil Tayar
Docker and Your Path to a Better Staging Environment - webinar by Gil TayarApplitools
 
ITB2019 Try This At Home: Building a Personal Docker Swarm - Matt Clemente
ITB2019 Try This At Home: Building a Personal Docker Swarm - Matt ClementeITB2019 Try This At Home: Building a Personal Docker Swarm - Matt Clemente
ITB2019 Try This At Home: Building a Personal Docker Swarm - Matt ClementeOrtus Solutions, Corp
 
Behaviour Driven Development con Behat & Drupal
Behaviour Driven Development con Behat & DrupalBehaviour Driven Development con Behat & Drupal
Behaviour Driven Development con Behat & DrupalDrupalDay
 
Behaviour Driven Development con Behat & Drupal
Behaviour Driven Development con Behat & DrupalBehaviour Driven Development con Behat & Drupal
Behaviour Driven Development con Behat & Drupalsparkfabrik
 
Using Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsUsing Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsSander van der Burg
 
Continuous Delivery com Docker, OpenShift e Jenkins
Continuous Delivery com Docker, OpenShift e JenkinsContinuous Delivery com Docker, OpenShift e Jenkins
Continuous Delivery com Docker, OpenShift e JenkinsBruno Padilha
 
DevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux ContainersDevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux Containersinside-BigData.com
 
Scaling Development Environments with Docker
Scaling Development Environments with DockerScaling Development Environments with Docker
Scaling Development Environments with DockerDocker, Inc.
 
Future of Development and Deployment using Docker
Future of Development and Deployment using DockerFuture of Development and Deployment using Docker
Future of Development and Deployment using DockerTamer Abdul-Radi
 
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra
Deis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @WayraDeis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @Wayra
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @WayraLeo Lorieri
 
Shift Remote: Mobile - Devops-ify your life with Github Actions - Nicola Cort...
Shift Remote: Mobile - Devops-ify your life with Github Actions - Nicola Cort...Shift Remote: Mobile - Devops-ify your life with Github Actions - Nicola Cort...
Shift Remote: Mobile - Devops-ify your life with Github Actions - Nicola Cort...Shift Conference
 

Similar a Heroku 101 py con 2015 - David Gouldin (20)

Quick and Dirty Python Deployments with Heroku
Quick and Dirty Python Deployments with HerokuQuick and Dirty Python Deployments with Heroku
Quick and Dirty Python Deployments with Heroku
 
2012 coscup - Build your PHP application on Heroku
2012 coscup - Build your PHP application on Heroku2012 coscup - Build your PHP application on Heroku
2012 coscup - Build your PHP application on Heroku
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
 
FreeBSD: Dev to Prod
FreeBSD: Dev to ProdFreeBSD: Dev to Prod
FreeBSD: Dev to Prod
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
 
CI-CD WITH GITLAB WORKFLOW
CI-CD WITH GITLAB WORKFLOWCI-CD WITH GITLAB WORKFLOW
CI-CD WITH GITLAB WORKFLOW
 
Clustering Docker with Docker Swarm on openSUSE
Clustering Docker with Docker Swarm on openSUSEClustering Docker with Docker Swarm on openSUSE
Clustering Docker with Docker Swarm on openSUSE
 
Intro to development sites and site migration
Intro to development sites and site migrationIntro to development sites and site migration
Intro to development sites and site migration
 
Docker and Your Path to a Better Staging Environment - webinar by Gil Tayar
Docker and Your Path to a Better Staging Environment - webinar by Gil TayarDocker and Your Path to a Better Staging Environment - webinar by Gil Tayar
Docker and Your Path to a Better Staging Environment - webinar by Gil Tayar
 
ITB2019 Try This At Home: Building a Personal Docker Swarm - Matt Clemente
ITB2019 Try This At Home: Building a Personal Docker Swarm - Matt ClementeITB2019 Try This At Home: Building a Personal Docker Swarm - Matt Clemente
ITB2019 Try This At Home: Building a Personal Docker Swarm - Matt Clemente
 
Behaviour Driven Development con Behat & Drupal
Behaviour Driven Development con Behat & DrupalBehaviour Driven Development con Behat & Drupal
Behaviour Driven Development con Behat & Drupal
 
Behaviour Driven Development con Behat & Drupal
Behaviour Driven Development con Behat & DrupalBehaviour Driven Development con Behat & Drupal
Behaviour Driven Development con Behat & Drupal
 
Set up a Development Environment in 5 Minutes
Set up a Development Environment in 5 MinutesSet up a Development Environment in 5 Minutes
Set up a Development Environment in 5 Minutes
 
Using Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsUsing Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutions
 
Continuous Delivery com Docker, OpenShift e Jenkins
Continuous Delivery com Docker, OpenShift e JenkinsContinuous Delivery com Docker, OpenShift e Jenkins
Continuous Delivery com Docker, OpenShift e Jenkins
 
DevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux ContainersDevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux Containers
 
Scaling Development Environments with Docker
Scaling Development Environments with DockerScaling Development Environments with Docker
Scaling Development Environments with Docker
 
Future of Development and Deployment using Docker
Future of Development and Deployment using DockerFuture of Development and Deployment using Docker
Future of Development and Deployment using Docker
 
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra
Deis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @WayraDeis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @Wayra
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra
 
Shift Remote: Mobile - Devops-ify your life with Github Actions - Nicola Cort...
Shift Remote: Mobile - Devops-ify your life with Github Actions - Nicola Cort...Shift Remote: Mobile - Devops-ify your life with Github Actions - Nicola Cort...
Shift Remote: Mobile - Devops-ify your life with Github Actions - Nicola Cort...
 

Más de Heroku

Heroku Connect: The New Way to Build Connected Customer Applications
Heroku Connect: The New Way to Build Connected Customer ApplicationsHeroku Connect: The New Way to Build Connected Customer Applications
Heroku Connect: The New Way to Build Connected Customer ApplicationsHeroku
 
Heroku webcastdeck+20130828
Heroku webcastdeck+20130828Heroku webcastdeck+20130828
Heroku webcastdeck+20130828Heroku
 
Mattt Thompson at Heroku's Waza 2013: Mobile is not Different
Mattt Thompson at Heroku's Waza 2013: Mobile is not Different Mattt Thompson at Heroku's Waza 2013: Mobile is not Different
Mattt Thompson at Heroku's Waza 2013: Mobile is not Different Heroku
 
Codeacademy's Linda Liukas at Heroku's Waza 2013: Code is Everyone's Business
Codeacademy's Linda Liukas at Heroku's Waza 2013: Code is Everyone's BusinessCodeacademy's Linda Liukas at Heroku's Waza 2013: Code is Everyone's Business
Codeacademy's Linda Liukas at Heroku's Waza 2013: Code is Everyone's BusinessHeroku
 
Rob Sullivan at Heroku's Waza 2013: Your Database -- A Story of Indifference
Rob Sullivan at Heroku's Waza 2013: Your Database -- A Story of IndifferenceRob Sullivan at Heroku's Waza 2013: Your Database -- A Story of Indifference
Rob Sullivan at Heroku's Waza 2013: Your Database -- A Story of IndifferenceHeroku
 
Heroku's Ryan Smith at Waza 2013: Predictable Failure
Heroku's Ryan Smith at Waza 2013: Predictable FailureHeroku's Ryan Smith at Waza 2013: Predictable Failure
Heroku's Ryan Smith at Waza 2013: Predictable FailureHeroku
 
Librato's Joseph Ruscio at Heroku's 2013: Instrumenting 12-Factor Apps
Librato's Joseph Ruscio at Heroku's 2013: Instrumenting 12-Factor AppsLibrato's Joseph Ruscio at Heroku's 2013: Instrumenting 12-Factor Apps
Librato's Joseph Ruscio at Heroku's 2013: Instrumenting 12-Factor AppsHeroku
 
Noah Zoschke at Waza 2013: Heroku Secrets
Noah Zoschke at Waza 2013: Heroku SecretsNoah Zoschke at Waza 2013: Heroku Secrets
Noah Zoschke at Waza 2013: Heroku SecretsHeroku
 
Rdio's Alex Gaynor at Heroku's Waza 2013: Why Python, Ruby and Javascript are...
Rdio's Alex Gaynor at Heroku's Waza 2013: Why Python, Ruby and Javascript are...Rdio's Alex Gaynor at Heroku's Waza 2013: Why Python, Ruby and Javascript are...
Rdio's Alex Gaynor at Heroku's Waza 2013: Why Python, Ruby and Javascript are...Heroku
 
AirBnB's Jack Lawson at Heroku's Waza: Dismantling the Monorail
AirBnB's Jack Lawson at Heroku's Waza: Dismantling the MonorailAirBnB's Jack Lawson at Heroku's Waza: Dismantling the Monorail
AirBnB's Jack Lawson at Heroku's Waza: Dismantling the MonorailHeroku
 
Kirby Ferguson at Heroku's Waza 2013
Kirby Ferguson at Heroku's Waza 2013Kirby Ferguson at Heroku's Waza 2013
Kirby Ferguson at Heroku's Waza 2013Heroku
 

Más de Heroku (11)

Heroku Connect: The New Way to Build Connected Customer Applications
Heroku Connect: The New Way to Build Connected Customer ApplicationsHeroku Connect: The New Way to Build Connected Customer Applications
Heroku Connect: The New Way to Build Connected Customer Applications
 
Heroku webcastdeck+20130828
Heroku webcastdeck+20130828Heroku webcastdeck+20130828
Heroku webcastdeck+20130828
 
Mattt Thompson at Heroku's Waza 2013: Mobile is not Different
Mattt Thompson at Heroku's Waza 2013: Mobile is not Different Mattt Thompson at Heroku's Waza 2013: Mobile is not Different
Mattt Thompson at Heroku's Waza 2013: Mobile is not Different
 
Codeacademy's Linda Liukas at Heroku's Waza 2013: Code is Everyone's Business
Codeacademy's Linda Liukas at Heroku's Waza 2013: Code is Everyone's BusinessCodeacademy's Linda Liukas at Heroku's Waza 2013: Code is Everyone's Business
Codeacademy's Linda Liukas at Heroku's Waza 2013: Code is Everyone's Business
 
Rob Sullivan at Heroku's Waza 2013: Your Database -- A Story of Indifference
Rob Sullivan at Heroku's Waza 2013: Your Database -- A Story of IndifferenceRob Sullivan at Heroku's Waza 2013: Your Database -- A Story of Indifference
Rob Sullivan at Heroku's Waza 2013: Your Database -- A Story of Indifference
 
Heroku's Ryan Smith at Waza 2013: Predictable Failure
Heroku's Ryan Smith at Waza 2013: Predictable FailureHeroku's Ryan Smith at Waza 2013: Predictable Failure
Heroku's Ryan Smith at Waza 2013: Predictable Failure
 
Librato's Joseph Ruscio at Heroku's 2013: Instrumenting 12-Factor Apps
Librato's Joseph Ruscio at Heroku's 2013: Instrumenting 12-Factor AppsLibrato's Joseph Ruscio at Heroku's 2013: Instrumenting 12-Factor Apps
Librato's Joseph Ruscio at Heroku's 2013: Instrumenting 12-Factor Apps
 
Noah Zoschke at Waza 2013: Heroku Secrets
Noah Zoschke at Waza 2013: Heroku SecretsNoah Zoschke at Waza 2013: Heroku Secrets
Noah Zoschke at Waza 2013: Heroku Secrets
 
Rdio's Alex Gaynor at Heroku's Waza 2013: Why Python, Ruby and Javascript are...
Rdio's Alex Gaynor at Heroku's Waza 2013: Why Python, Ruby and Javascript are...Rdio's Alex Gaynor at Heroku's Waza 2013: Why Python, Ruby and Javascript are...
Rdio's Alex Gaynor at Heroku's Waza 2013: Why Python, Ruby and Javascript are...
 
AirBnB's Jack Lawson at Heroku's Waza: Dismantling the Monorail
AirBnB's Jack Lawson at Heroku's Waza: Dismantling the MonorailAirBnB's Jack Lawson at Heroku's Waza: Dismantling the Monorail
AirBnB's Jack Lawson at Heroku's Waza: Dismantling the Monorail
 
Kirby Ferguson at Heroku's Waza 2013
Kirby Ferguson at Heroku's Waza 2013Kirby Ferguson at Heroku's Waza 2013
Kirby Ferguson at Heroku's Waza 2013
 

Último

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Último (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Heroku 101 py con 2015 - David Gouldin