SlideShare a Scribd company logo
1 of 30
Download to read offline
Heroku
          The platform for your next awesome app.




                                                    1

Monday, October 3, 11
In a nutshell
         Platform as Service
         Ruby on Rails & lately NodeJS, Java, Clojure on top of AWS.


         Founded 2007 - Bought in 2010 from Salesforce ($212M)

         194.000 apps NOW.
         ~30% from mobile applications. RESTful services. Special deal with Facebook for FB app hosting.


         Jul 2011, Matz (Yukihiro Matsumoto) joined heroku as Chief
         Architect, Ruby [1]
         Remember: MRI stands for Matzā€™s Ruby Interpreter




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku                                         2

Monday, October 3, 11
Summary - Index
           Infrastructure                                      Deploying
           Hardware - Parking.                                 Git - Rollback - Migrating.


           Network Interface                                   Scaling
           Routing Mesh = Magic                                Easier than ever.


           Database                                            Monitoring
           Postgresql, NoSQL solutions                         Logging - Exception Tracking


           Process Model & Dyno
           Zooming in the heart of Heroku                      Effective Cloud Hosting
           Stacks & Frameworks                                       Taking advantage of Pricing /
                                                                     process model
           Add ons                                                   AutoScale web processes
           A sweet surprise
                                                                     AutoScale background jobs

 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku                                   3

Monday, October 3, 11
Infrastructure

         Build atop of Amazon Web Services

         Cedar Stack: on High Memory Double Extra Large
         Instances [2]
               35 GB Ram

               13 EC2 Compute Units.

               maybe ~ 120 Dynos per Instance

         Database on EC2 - EB storage
               mhhh (see Aprilā€™s outage incident)




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku   4

Monday, October 3, 11
Infrastructure




                                                                     Not in Cedar Stack




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku                        5

Monday, October 3, 11
Network Interface

         DNS
               Seems to be 6 nginx reverse proxies + any dedicated IP/proxy ($100 / month)
               (proxy.heroku.com)

         Routing Mesh
               Routing software written in Erlang. (seems to have some secret sauce)

               If no live dyno is found for this appā€™s route, a new dyno is spawned.

         HTTP Caching
               < Stack Cedar: Varnish Reverse Proxy Caching via HTTP headers, HTTP 1.0
               compatible.

               >= Cedar: No Reverse Proxy Caching, HTTP 1.1 Compatible, Routes directly to
               dynos:

                        Non-blocking servers (Goliath / EventMaching) - Long Polling
 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku                           6

Monday, October 3, 11
Heroku Dyno

         A dyno is a single (isolated) process of any type, running on
         the Heroku platform
         Mongrel, Thin, Delayed Job, Resque, Workers...


         Dyno Manifold manages the resources.
               Any number of dynos / application w/ the latest code compiled and deployed.

               Crashed dynos are closed and restarted automatically.

               Dynos are isolated: LXC & Chroot for isolated user space / resources / ļ¬lesystem. [4]

               512 Mb Ram.

         Cost per Dyno (dyno-hour)
               1 Dyno for Free.

               $ 0.05 / hour = $ 35 / month / dyno --- 6 minutes = 0.1 dyno-hour = $ 0.005


 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku                                     7

Monday, October 3, 11
Dynoā€™s Process Model of Cedar

         Dyno Manifold does the Process Management
         Starts / Stops / Restarts / Idles the processes / Sets conļ¬g Vars / Applies Code Releases


         All the possible Process Types (servers, workers,..) are
         described in a procļ¬le.
               Procļ¬le is a ļ¬le on the root of your app and describes any needed process that you
               want to run (and scale)

                           web:     bundle exec rails server -p $PORT
                           worker: bundle exec rake jobs:work
                           scraper: bundle exec ruby scraper.rb

               Foreman is a ruby Gem handling proļ¬les for the Development Environment.

         Scale Preview
                           $ heroku scale web=3 worker=2 scraper=2


 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku                                   8

Monday, October 3, 11
Database - SQL solutions.

         PostgreSQL
               Shared database PostgreSQL 8.3 - Dedicated database uses PostgreSQL 9.

               Continues Backups [3]

               Storing on EBS volumes of AmazonWS
               (ā€œWith this information in hand, we'll be taking a hard look on how to reduce our
               dependence on EBSā€) [3]

               External Connections are NOT allowed

         Goodies
               Backups - psqldump

               Database Sync with TAPS

               Is currently a DaaS for Heroku - encouraging polyglot


 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku                                 9

Monday, October 3, 11
Database - noSQL solutions

         DaaS is (maybe) the future of complex web applications
         Heroku Supports encourages the polyglot concept
               Redis for your Ad Service / counters etc.

               Hadoop for your big data tables

               S3 for your Assets

               Memcache for transient data such as Sessions

               CouchDB for data that need to be replicated (your separate mobile app database)

               Neo4j for your super clever recommendation engine

         Currently most of theses DaaS offer an add-on for
         HEROKU.

 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku                               10

Monday, October 3, 11
Stacks & Frameworks




         Zooming in Cedar Stack
                        OS: Ubuntu Server 10.04 (Lucid Lynx) - Ruby: MRI 1.9.2 - Bundler: 1.1pre5 -
                        Node.js: 0.4.7 - NPM: 1.0.6 - JVM: OpenJDK 6

                        Migration between stacks is allowed

                            >> heroku stack:migrate bamboo-mri-1.9.2

                        Rails 3, NodeJs, JAVA & Spring, Python (private beta), Clojure




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku                                    11

Monday, October 3, 11
Add ons

         Services Implement Herokuā€™s Add-ons API for automate
         provisioning




                         MYSQL_URL=mysql://user:pass@mysqlhost.net/database




           Dyno Manifold will Restart all the running Dynos, including the
                                new ENV variables.

 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku            12

Monday, October 3, 11
Deploying.

         Based on Git.
               Heroku is a git remote for your code.

                                    $ git remote add heroku git@heroku.com:myapp.git


               When receiving a push (git push heroku master) starts the deployment process

                        bundle install

                        Remove unused ļ¬les, including the .git directory, anything in log and tmp, .gem
                        ļ¬les in the bundled gems directory, and anything speciļ¬ed in .slugignore.

                        Write the environment into the slug. (The slug is rebuilt any time a conļ¬g var or
                        add-on is changed)

                        Package into the ļ¬nal slug archive.

         Slug Size Matters: Larger Slug == slower distribution
                                                                          < 30 MB
 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku                                          13

Monday, October 3, 11
Scaling

         Concept: More Dynos = Better Concurrency
         Unlimited Number of Dynos / Application.
               Command Line      $ heroku scale web=3 worker=2 scraper=2




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku         14

Monday, October 3, 11
Scaling

         Concept: More Dynos = Better Concurrency
         Unlimited Number of Dynos / Application.
               Command Line

               Web Interface




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku   15

Monday, October 3, 11
Scaling

         Concept: More Dynos = Better Concurrency
         Unlimited Number of Dynos / Application.
               Command Line

               Web Interface

               Ruby Script (wait for it...)




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku   16

Monday, October 3, 11
Scaling

         Concept: More Dynos = Better Concurrency
         Unlimited Number of Dynos / Application.
               Command Line          $ heroku scale web=3 worker=2 scraper=2

               Web Interface

               Ruby Script (wait for it...)

               Mobile App (Nazumi App)




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku             17

Monday, October 3, 11
Scaling

         Concept: More Dynos = Better Concurrency
         Unlimited Number of Dynos / Application.
               Command Line          $ heroku scale web=3 worker=2 scraper=2

               Web Interface

               Ruby Script (wait for it...)

               Mobile App (Nazumi App)




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku             18

Monday, October 3, 11
Scaling

         Concept: More Dynos = Better Concurrency
         Unlimited Number of Dynos / Application.
               Command Line

               Web Interface

               Ruby Script (wait for it...)

               Mobile App (Nazumi App)

         Database Scaling
                                       Ika: $800/month, 50 connections, 7.5 GB of RAM, 4 compute units
               PostgreSQL 9            Baku: $3200/month, 128 connections, 34 GB of RAM, 13 cu
                                       Mecha: $6400/month, 256 connections, 68 GB of RAM, 26 cu
               Amazon RDS addon

               NoSQL solutions


 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku                                       19

Monday, October 3, 11
Monitoring

         Heroku Logs
               heroku logs everything

                        NginX - Routing Mesh - Every Dyno (web, worker, custom)
                                  $   heroku   logs   --tail
                                  $   heroku   logs   --source heroku --ps router
                                  $   heroku   logs   -s app -p worker.1
                                  $   heroku   logs   --ps postgres        Only for dedicated Database


         Add-ons
               New Relic

               Airbrake (HopToad)

               StillAlive




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku                                       20

Monday, October 3, 11
Heroku Billing Model

         100% Based on itā€™s process model
         Dynos are billed per second at a rate of 0.05$ / hour

         First Dyno is FREE (Watch out: single Dyno Idling Policy can cause delays)

         Add-ons are billed per second.

         Databases are billed per hour.


         1 web server + 1 worker + Shared Database (20GB) = 1x36 + 1x36 + 15 = 87$ /month




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku                          21

Monday, October 3, 11
Heroku can be even more elastic
                                                                     Dyno #1
                           1                                         Dyno #2
                        Large                                        Dyno #3

                        Elastic                                      Dyno #4
                                                                     Dyno #5
                                                                     Dyno #6
                           ~                                         Dyno #7
                                                                     Dyno #8
                        4.7 GB                                       Dyno #9
                          ram                                        Dyno #10




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku              22

Monday, October 3, 11
Heroku can be even more elastic
                                                                     Dyno #1
                           1                                         Dyno #2
                        Large                                        Dyno #3

                        Elastic                                      Dyno #4
                                                                     Dyno #5
                                                                     Dyno #6
                           ~                                         Dyno #7
                                                                     Dyno #8
                        4.7 GB                                       Dyno #9
                          ram                                        Dyno #10




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku              23

Monday, October 3, 11
Heroku can be even more elastic
                                                                     Dyno #1
                           1                                         Dyno #2
                        Large                                        Dyno #3

                        Elastic                                      Dyno #4
                                                                     Dyno #5
                                                                     Dyno #6
                           ~                                         Dyno #7
                                                                     Dyno #8
                        4.7 GB                                       Dyno #9
                          ram                                        Dyno #10




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku              24

Monday, October 3, 11
Heroku can be even more elastic
                                                                     Dyno #1
                           1 Dynos => $ 0.5/h
                            10                                       Dyno #2
                        Large
                            1 LARGE => $ 0.35/h                      Dyno #3

                        Elastic
                           HEROKU = 42% more expensive
                                                                     Dyno #4
                                                                     Dyno #5
                                                                     Dyno #6
                           ~                                         Dyno #7
                                                                     Dyno #8
                        4.7 GB                                       Dyno #9
                          ram                                        Dyno #10




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku              25

Monday, October 3, 11
Heroku can be even more elastic
                                                                     Dyno #1
                            110 Dynos => $ 0.5/h                     Dyno #2
                         Large
                             1 LARGE => $ 0.35/h                     Dyno #3

                         Elastic                                     Dyno #4
                             HEROKU = 42% more expensive             Dyno #5
                                                                     Dyno #6
                            ~                                        Dyno #7
                                                                     Dyno #8
                         4.7 GB
                        0.33*1/2+0.33*1/5+0.33*1 = 56% dynamic       Dyno #9
                           ram                                       Dyno #10
                        usage
                        10 DYNAMIC Dynos       => $ 0.28/h
                         1 LARGE               => $ 0.35/h

                        HEROKU = 25% cheaper




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku              26

Monday, October 3, 11
Use Heroku because:
         Itā€™s free
         You can have a look at almost everything without spending a penny.


         Itā€™s fast
         Rapid prototyping meets heroku


         It support open source solutions
         Scaling needs can show up any day
         You are better developer than administrator




 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku            27

Monday, October 3, 11
Code
          For dynamic Dyno management




                                        28

Monday, October 3, 11
Thank you
          Savvas Georgiou

          @savvasgeorgiou
          contact@savvas.me
          http://savvas.me


                              29

Monday, October 3, 11
Reference	
          [1] http://blog.heroku.com/archives/2011/7/12/matz_joins_heroku/
          [2] http://cedar-versions.herokuapp.com/evil
          [3] https://status.heroku.com/incident/151
          [4] http://devcenter.heroku.com/articles/dyno-isolation
          [5[ http://devcenter.heroku.com/articles/process-model
          [6] http://blog.heroku.com/archives/2010/7/20/nosql/
          [7] https://addons.heroku.com/provider/resources/technical/how/provision/3
          [8] http://blog.heroku.com/archives/2010/7/20/nosql/




                                                                                       30

Monday, October 3, 11

More Related Content

What's hot

Palestra TĆ©cnica do CISL - Xen Cloud Platform - Implementando Nuvens Privadas...
Palestra TĆ©cnica do CISL - Xen Cloud Platform - Implementando Nuvens Privadas...Palestra TĆ©cnica do CISL - Xen Cloud Platform - Implementando Nuvens Privadas...
Palestra TĆ©cnica do CISL - Xen Cloud Platform - Implementando Nuvens Privadas...Lorscheider Santiago
Ā 
Intro to CloudStack Build a Cloud Day
Intro to CloudStack Build a Cloud DayIntro to CloudStack Build a Cloud Day
Intro to CloudStack Build a Cloud DaySebastien Goasguen
Ā 
Introduction to the xen cloud platform - xcp
Introduction to the xen cloud platform - xcpIntroduction to the xen cloud platform - xcp
Introduction to the xen cloud platform - xcpLorscheider Santiago
Ā 
deep learning in production cff 2017
deep learning in production cff 2017deep learning in production cff 2017
deep learning in production cff 2017Ari Kamlani
Ā 
Hybrid Cloud Enablement Technologies
Hybrid Cloud Enablement TechnologiesHybrid Cloud Enablement Technologies
Hybrid Cloud Enablement Technologieshybrid cloud
Ā 
NTTćƒ‰ć‚³ćƒ¢ę§˜ å°Žå…„äŗ‹ä¾‹ OpenStack Summit 2015 Tokyo č¬›ę¼”ć€ŒAfter One year of OpenStack Cloud...
NTTćƒ‰ć‚³ćƒ¢ę§˜ å°Žå…„äŗ‹ä¾‹ OpenStack Summit 2015 Tokyo č¬›ę¼”ć€ŒAfter One year of OpenStack Cloud...NTTćƒ‰ć‚³ćƒ¢ę§˜ å°Žå…„äŗ‹ä¾‹ OpenStack Summit 2015 Tokyo č¬›ę¼”ć€ŒAfter One year of OpenStack Cloud...
NTTćƒ‰ć‚³ćƒ¢ę§˜ å°Žå…„äŗ‹ä¾‹ OpenStack Summit 2015 Tokyo č¬›ę¼”ć€ŒAfter One year of OpenStack Cloud...VirtualTech Japan Inc.
Ā 
[OpenStack Day in Korea 2015] Track 3-1 - OpenStack Storage Infrastructure & ...
[OpenStack Day in Korea 2015] Track 3-1 - OpenStack Storage Infrastructure & ...[OpenStack Day in Korea 2015] Track 3-1 - OpenStack Storage Infrastructure & ...
[OpenStack Day in Korea 2015] Track 3-1 - OpenStack Storage Infrastructure & ...OpenStack Korea Community
Ā 
Gdg izmir kubernetes
Gdg izmir kubernetesGdg izmir kubernetes
Gdg izmir kubernetesGokhan Boranalp
Ā 
Apache CloudStack AlpesJUG
Apache CloudStack AlpesJUGApache CloudStack AlpesJUG
Apache CloudStack AlpesJUGSebastien Goasguen
Ā 
Open stack in sina
Open stack in sinaOpen stack in sina
Open stack in sinaHui Cheng
Ā 
openstack, devops and people
openstack, devops and peopleopenstack, devops and people
openstack, devops and peopleAndrew Yongjoon Kong
Ā 
Practical Tips for Novell Cluster Services
Practical Tips for Novell Cluster ServicesPractical Tips for Novell Cluster Services
Practical Tips for Novell Cluster ServicesNovell
Ā 
Working in the multi-cloud with libcloud
Working in the multi-cloud with libcloudWorking in the multi-cloud with libcloud
Working in the multi-cloud with libcloudGrig Gheorghiu
Ā 
Sergey Dzyuban "To Build My Own Cloud with Blackjackā€¦"
Sergey Dzyuban "To Build My Own Cloud with Blackjackā€¦"Sergey Dzyuban "To Build My Own Cloud with Blackjackā€¦"
Sergey Dzyuban "To Build My Own Cloud with Blackjackā€¦"Fwdays
Ā 
CloudStack for Java User Group
CloudStack for Java User GroupCloudStack for Java User Group
CloudStack for Java User GroupSebastien Goasguen
Ā 
High Performance Computing (HPC) in cloud
High Performance Computing (HPC) in cloudHigh Performance Computing (HPC) in cloud
High Performance Computing (HPC) in cloudAccubits Technologies
Ā 

What's hot (20)

Palestra TĆ©cnica do CISL - Xen Cloud Platform - Implementando Nuvens Privadas...
Palestra TĆ©cnica do CISL - Xen Cloud Platform - Implementando Nuvens Privadas...Palestra TĆ©cnica do CISL - Xen Cloud Platform - Implementando Nuvens Privadas...
Palestra TĆ©cnica do CISL - Xen Cloud Platform - Implementando Nuvens Privadas...
Ā 
Domestic cloud
Domestic cloudDomestic cloud
Domestic cloud
Ā 
Intro to CloudStack Build a Cloud Day
Intro to CloudStack Build a Cloud DayIntro to CloudStack Build a Cloud Day
Intro to CloudStack Build a Cloud Day
Ā 
Introduction to the xen cloud platform - xcp
Introduction to the xen cloud platform - xcpIntroduction to the xen cloud platform - xcp
Introduction to the xen cloud platform - xcp
Ā 
deep learning in production cff 2017
deep learning in production cff 2017deep learning in production cff 2017
deep learning in production cff 2017
Ā 
Hybrid Cloud Enablement Technologies
Hybrid Cloud Enablement TechnologiesHybrid Cloud Enablement Technologies
Hybrid Cloud Enablement Technologies
Ā 
NTTćƒ‰ć‚³ćƒ¢ę§˜ å°Žå…„äŗ‹ä¾‹ OpenStack Summit 2015 Tokyo č¬›ę¼”ć€ŒAfter One year of OpenStack Cloud...
NTTćƒ‰ć‚³ćƒ¢ę§˜ å°Žå…„äŗ‹ä¾‹ OpenStack Summit 2015 Tokyo č¬›ę¼”ć€ŒAfter One year of OpenStack Cloud...NTTćƒ‰ć‚³ćƒ¢ę§˜ å°Žå…„äŗ‹ä¾‹ OpenStack Summit 2015 Tokyo č¬›ę¼”ć€ŒAfter One year of OpenStack Cloud...
NTTćƒ‰ć‚³ćƒ¢ę§˜ å°Žå…„äŗ‹ä¾‹ OpenStack Summit 2015 Tokyo č¬›ę¼”ć€ŒAfter One year of OpenStack Cloud...
Ā 
[OpenStack Day in Korea 2015] Track 3-1 - OpenStack Storage Infrastructure & ...
[OpenStack Day in Korea 2015] Track 3-1 - OpenStack Storage Infrastructure & ...[OpenStack Day in Korea 2015] Track 3-1 - OpenStack Storage Infrastructure & ...
[OpenStack Day in Korea 2015] Track 3-1 - OpenStack Storage Infrastructure & ...
Ā 
Gdg izmir kubernetes
Gdg izmir kubernetesGdg izmir kubernetes
Gdg izmir kubernetes
Ā 
Apache CloudStack AlpesJUG
Apache CloudStack AlpesJUGApache CloudStack AlpesJUG
Apache CloudStack AlpesJUG
Ā 
Open stack in sina
Open stack in sinaOpen stack in sina
Open stack in sina
Ā 
openstack, devops and people
openstack, devops and peopleopenstack, devops and people
openstack, devops and people
Ā 
Practical Tips for Novell Cluster Services
Practical Tips for Novell Cluster ServicesPractical Tips for Novell Cluster Services
Practical Tips for Novell Cluster Services
Ā 
Intro to Cloudstack
Intro to CloudstackIntro to Cloudstack
Intro to Cloudstack
Ā 
Working in the multi-cloud with libcloud
Working in the multi-cloud with libcloudWorking in the multi-cloud with libcloud
Working in the multi-cloud with libcloud
Ā 
Sergey Dzyuban "To Build My Own Cloud with Blackjackā€¦"
Sergey Dzyuban "To Build My Own Cloud with Blackjackā€¦"Sergey Dzyuban "To Build My Own Cloud with Blackjackā€¦"
Sergey Dzyuban "To Build My Own Cloud with Blackjackā€¦"
Ā 
CloudStack for Java User Group
CloudStack for Java User GroupCloudStack for Java User Group
CloudStack for Java User Group
Ā 
Cl306
Cl306Cl306
Cl306
Ā 
vBACD- July 2012 - Crash Course in Open Source Cloud Computing
vBACD- July 2012 - Crash Course in Open Source Cloud ComputingvBACD- July 2012 - Crash Course in Open Source Cloud Computing
vBACD- July 2012 - Crash Course in Open Source Cloud Computing
Ā 
High Performance Computing (HPC) in cloud
High Performance Computing (HPC) in cloudHigh Performance Computing (HPC) in cloud
High Performance Computing (HPC) in cloud
Ā 

Similar to Cloudcamp Athens 2011 Presenting Heroku

Automated Application Management with SaltStack
Automated Application Management with SaltStackAutomated Application Management with SaltStack
Automated Application Management with SaltStackinovex GmbH
Ā 
Microservices reativos usando a stack do Netflix na AWS
Microservices reativos usando a stack do Netflix na AWSMicroservices reativos usando a stack do Netflix na AWS
Microservices reativos usando a stack do Netflix na AWSDiego Pacheco
Ā 
UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015Christopher Curtin
Ā 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to KubernetesPaul Czarkowski
Ā 
Horizontal scaling with Galaxy
Horizontal scaling with GalaxyHorizontal scaling with Galaxy
Horizontal scaling with GalaxyEnis Afgan
Ā 
DrupalCampLA 2011: Drupal backend-performance
DrupalCampLA 2011: Drupal backend-performanceDrupalCampLA 2011: Drupal backend-performance
DrupalCampLA 2011: Drupal backend-performanceAshok Modi
Ā 
Building Your Docker Tech Stack
Building Your Docker Tech StackBuilding Your Docker Tech Stack
Building Your Docker Tech StackBret Fisher
Ā 
Building your production tech stack for docker container platform
Building your production tech stack for docker container platformBuilding your production tech stack for docker container platform
Building your production tech stack for docker container platformDocker, Inc.
Ā 
iguazio - nuclio overview to CNCF (Sep 25th 2017)
iguazio - nuclio overview to CNCF (Sep 25th 2017)iguazio - nuclio overview to CNCF (Sep 25th 2017)
iguazio - nuclio overview to CNCF (Sep 25th 2017)Eran Duchan
Ā 
Cloud Strategies for a modern hybrid datacenter - Dec 2015
Cloud Strategies for a modern hybrid datacenter - Dec 2015Cloud Strategies for a modern hybrid datacenter - Dec 2015
Cloud Strategies for a modern hybrid datacenter - Dec 2015Miguel PĆ©rez Colino
Ā 
Running High-Speed Serverless with nuclio
Running High-Speed Serverless with nuclioRunning High-Speed Serverless with nuclio
Running High-Speed Serverless with nuclioiguazio
Ā 
[Nuxeo World 2013] Nuxeo Studio
[Nuxeo World 2013] Nuxeo Studio[Nuxeo World 2013] Nuxeo Studio
[Nuxeo World 2013] Nuxeo StudioNuxeo
Ā 
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Cloud meets Fog & Puppet A Story of Version Controlled InfrastructureCloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Cloud meets Fog & Puppet A Story of Version Controlled InfrastructureHabeeb Rahman
Ā 
Automating CloudStack with Puppet - David Nalley
Automating CloudStack with Puppet - David NalleyAutomating CloudStack with Puppet - David Nalley
Automating CloudStack with Puppet - David NalleyPuppet
Ā 
Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin  Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin Kuberton
Ā 
nuclio Overview October 2017
nuclio Overview October 2017nuclio Overview October 2017
nuclio Overview October 2017iguazio
Ā 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Baruch Sadogursky
Ā 
Migrating the elastic stack to the cloud, or application logging @ travix
 Migrating the elastic stack to the cloud, or application logging @ travix Migrating the elastic stack to the cloud, or application logging @ travix
Migrating the elastic stack to the cloud, or application logging @ travixRuslan Lutsenko
Ā 
OSGi Cloud Ecosystems (EclipseCon 2013)
OSGi Cloud Ecosystems (EclipseCon 2013)OSGi Cloud Ecosystems (EclipseCon 2013)
OSGi Cloud Ecosystems (EclipseCon 2013)David Bosschaert
Ā 
2013 05-multicloud-paas-interop-scenarios-fia-dublin
2013 05-multicloud-paas-interop-scenarios-fia-dublin2013 05-multicloud-paas-interop-scenarios-fia-dublin
2013 05-multicloud-paas-interop-scenarios-fia-dublinAlex Heneveld
Ā 

Similar to Cloudcamp Athens 2011 Presenting Heroku (20)

Automated Application Management with SaltStack
Automated Application Management with SaltStackAutomated Application Management with SaltStack
Automated Application Management with SaltStack
Ā 
Microservices reativos usando a stack do Netflix na AWS
Microservices reativos usando a stack do Netflix na AWSMicroservices reativos usando a stack do Netflix na AWS
Microservices reativos usando a stack do Netflix na AWS
Ā 
UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015
Ā 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to Kubernetes
Ā 
Horizontal scaling with Galaxy
Horizontal scaling with GalaxyHorizontal scaling with Galaxy
Horizontal scaling with Galaxy
Ā 
DrupalCampLA 2011: Drupal backend-performance
DrupalCampLA 2011: Drupal backend-performanceDrupalCampLA 2011: Drupal backend-performance
DrupalCampLA 2011: Drupal backend-performance
Ā 
Building Your Docker Tech Stack
Building Your Docker Tech StackBuilding Your Docker Tech Stack
Building Your Docker Tech Stack
Ā 
Building your production tech stack for docker container platform
Building your production tech stack for docker container platformBuilding your production tech stack for docker container platform
Building your production tech stack for docker container platform
Ā 
iguazio - nuclio overview to CNCF (Sep 25th 2017)
iguazio - nuclio overview to CNCF (Sep 25th 2017)iguazio - nuclio overview to CNCF (Sep 25th 2017)
iguazio - nuclio overview to CNCF (Sep 25th 2017)
Ā 
Cloud Strategies for a modern hybrid datacenter - Dec 2015
Cloud Strategies for a modern hybrid datacenter - Dec 2015Cloud Strategies for a modern hybrid datacenter - Dec 2015
Cloud Strategies for a modern hybrid datacenter - Dec 2015
Ā 
Running High-Speed Serverless with nuclio
Running High-Speed Serverless with nuclioRunning High-Speed Serverless with nuclio
Running High-Speed Serverless with nuclio
Ā 
[Nuxeo World 2013] Nuxeo Studio
[Nuxeo World 2013] Nuxeo Studio[Nuxeo World 2013] Nuxeo Studio
[Nuxeo World 2013] Nuxeo Studio
Ā 
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Cloud meets Fog & Puppet A Story of Version Controlled InfrastructureCloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Ā 
Automating CloudStack with Puppet - David Nalley
Automating CloudStack with Puppet - David NalleyAutomating CloudStack with Puppet - David Nalley
Automating CloudStack with Puppet - David Nalley
Ā 
Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin  Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin
Ā 
nuclio Overview October 2017
nuclio Overview October 2017nuclio Overview October 2017
nuclio Overview October 2017
Ā 
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Breaking The Clustering Limits @ AlphaCSP JavaEdge 2007
Ā 
Migrating the elastic stack to the cloud, or application logging @ travix
 Migrating the elastic stack to the cloud, or application logging @ travix Migrating the elastic stack to the cloud, or application logging @ travix
Migrating the elastic stack to the cloud, or application logging @ travix
Ā 
OSGi Cloud Ecosystems (EclipseCon 2013)
OSGi Cloud Ecosystems (EclipseCon 2013)OSGi Cloud Ecosystems (EclipseCon 2013)
OSGi Cloud Ecosystems (EclipseCon 2013)
Ā 
2013 05-multicloud-paas-interop-scenarios-fia-dublin
2013 05-multicloud-paas-interop-scenarios-fia-dublin2013 05-multicloud-paas-interop-scenarios-fia-dublin
2013 05-multicloud-paas-interop-scenarios-fia-dublin
Ā 

Recently uploaded

[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
Ā 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
Ā 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
Ā 
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
Ā 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
Ā 
Swan(sea) Song ā€“ personal research during my six years at Swansea ... and bey...
Swan(sea) Song ā€“ personal research during my six years at Swansea ... and bey...Swan(sea) Song ā€“ personal research during my six years at Swansea ... and bey...
Swan(sea) Song ā€“ personal research during my six years at Swansea ... and bey...Alan Dix
Ā 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
Ā 
Integration and Automation in Practice: CI/CD in MuleĀ Integration and Automat...
Integration and Automation in Practice: CI/CD in MuleĀ Integration and Automat...Integration and Automation in Practice: CI/CD in MuleĀ Integration and Automat...
Integration and Automation in Practice: CI/CD in MuleĀ Integration and Automat...Patryk Bandurski
Ā 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
Ā 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
Ā 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
Ā 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
Ā 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
Ā 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
Ā 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
Ā 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
Ā 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
Ā 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
Ā 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
Ā 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
Ā 

Recently uploaded (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
Ā 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Ā 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
Ā 
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
Ā 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Ā 
Swan(sea) Song ā€“ personal research during my six years at Swansea ... and bey...
Swan(sea) Song ā€“ personal research during my six years at Swansea ... and bey...Swan(sea) Song ā€“ personal research during my six years at Swansea ... and bey...
Swan(sea) Song ā€“ personal research during my six years at Swansea ... and bey...
Ā 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
Ā 
Integration and Automation in Practice: CI/CD in MuleĀ Integration and Automat...
Integration and Automation in Practice: CI/CD in MuleĀ Integration and Automat...Integration and Automation in Practice: CI/CD in MuleĀ Integration and Automat...
Integration and Automation in Practice: CI/CD in MuleĀ Integration and Automat...
Ā 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Ā 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Ā 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
Ā 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Ā 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
Ā 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
Ā 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Ā 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
Ā 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Ā 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Ā 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Ā 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Ā 

Cloudcamp Athens 2011 Presenting Heroku

  • 1. Heroku The platform for your next awesome app. 1 Monday, October 3, 11
  • 2. In a nutshell Platform as Service Ruby on Rails & lately NodeJS, Java, Clojure on top of AWS. Founded 2007 - Bought in 2010 from Salesforce ($212M) 194.000 apps NOW. ~30% from mobile applications. RESTful services. Special deal with Facebook for FB app hosting. Jul 2011, Matz (Yukihiro Matsumoto) joined heroku as Chief Architect, Ruby [1] Remember: MRI stands for Matzā€™s Ruby Interpreter CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 2 Monday, October 3, 11
  • 3. Summary - Index Infrastructure Deploying Hardware - Parking. Git - Rollback - Migrating. Network Interface Scaling Routing Mesh = Magic Easier than ever. Database Monitoring Postgresql, NoSQL solutions Logging - Exception Tracking Process Model & Dyno Zooming in the heart of Heroku Effective Cloud Hosting Stacks & Frameworks Taking advantage of Pricing / process model Add ons AutoScale web processes A sweet surprise AutoScale background jobs CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 3 Monday, October 3, 11
  • 4. Infrastructure Build atop of Amazon Web Services Cedar Stack: on High Memory Double Extra Large Instances [2] 35 GB Ram 13 EC2 Compute Units. maybe ~ 120 Dynos per Instance Database on EC2 - EB storage mhhh (see Aprilā€™s outage incident) CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 4 Monday, October 3, 11
  • 5. Infrastructure Not in Cedar Stack CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 5 Monday, October 3, 11
  • 6. Network Interface DNS Seems to be 6 nginx reverse proxies + any dedicated IP/proxy ($100 / month) (proxy.heroku.com) Routing Mesh Routing software written in Erlang. (seems to have some secret sauce) If no live dyno is found for this appā€™s route, a new dyno is spawned. HTTP Caching < Stack Cedar: Varnish Reverse Proxy Caching via HTTP headers, HTTP 1.0 compatible. >= Cedar: No Reverse Proxy Caching, HTTP 1.1 Compatible, Routes directly to dynos: Non-blocking servers (Goliath / EventMaching) - Long Polling CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 6 Monday, October 3, 11
  • 7. Heroku Dyno A dyno is a single (isolated) process of any type, running on the Heroku platform Mongrel, Thin, Delayed Job, Resque, Workers... Dyno Manifold manages the resources. Any number of dynos / application w/ the latest code compiled and deployed. Crashed dynos are closed and restarted automatically. Dynos are isolated: LXC & Chroot for isolated user space / resources / ļ¬lesystem. [4] 512 Mb Ram. Cost per Dyno (dyno-hour) 1 Dyno for Free. $ 0.05 / hour = $ 35 / month / dyno --- 6 minutes = 0.1 dyno-hour = $ 0.005 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 7 Monday, October 3, 11
  • 8. Dynoā€™s Process Model of Cedar Dyno Manifold does the Process Management Starts / Stops / Restarts / Idles the processes / Sets conļ¬g Vars / Applies Code Releases All the possible Process Types (servers, workers,..) are described in a procļ¬le. Procļ¬le is a ļ¬le on the root of your app and describes any needed process that you want to run (and scale) web: bundle exec rails server -p $PORT worker: bundle exec rake jobs:work scraper: bundle exec ruby scraper.rb Foreman is a ruby Gem handling proļ¬les for the Development Environment. Scale Preview $ heroku scale web=3 worker=2 scraper=2 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 8 Monday, October 3, 11
  • 9. Database - SQL solutions. PostgreSQL Shared database PostgreSQL 8.3 - Dedicated database uses PostgreSQL 9. Continues Backups [3] Storing on EBS volumes of AmazonWS (ā€œWith this information in hand, we'll be taking a hard look on how to reduce our dependence on EBSā€) [3] External Connections are NOT allowed Goodies Backups - psqldump Database Sync with TAPS Is currently a DaaS for Heroku - encouraging polyglot CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 9 Monday, October 3, 11
  • 10. Database - noSQL solutions DaaS is (maybe) the future of complex web applications Heroku Supports encourages the polyglot concept Redis for your Ad Service / counters etc. Hadoop for your big data tables S3 for your Assets Memcache for transient data such as Sessions CouchDB for data that need to be replicated (your separate mobile app database) Neo4j for your super clever recommendation engine Currently most of theses DaaS offer an add-on for HEROKU. CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 10 Monday, October 3, 11
  • 11. Stacks & Frameworks Zooming in Cedar Stack OS: Ubuntu Server 10.04 (Lucid Lynx) - Ruby: MRI 1.9.2 - Bundler: 1.1pre5 - Node.js: 0.4.7 - NPM: 1.0.6 - JVM: OpenJDK 6 Migration between stacks is allowed >> heroku stack:migrate bamboo-mri-1.9.2 Rails 3, NodeJs, JAVA & Spring, Python (private beta), Clojure CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 11 Monday, October 3, 11
  • 12. Add ons Services Implement Herokuā€™s Add-ons API for automate provisioning MYSQL_URL=mysql://user:pass@mysqlhost.net/database Dyno Manifold will Restart all the running Dynos, including the new ENV variables. CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 12 Monday, October 3, 11
  • 13. Deploying. Based on Git. Heroku is a git remote for your code. $ git remote add heroku git@heroku.com:myapp.git When receiving a push (git push heroku master) starts the deployment process bundle install Remove unused ļ¬les, including the .git directory, anything in log and tmp, .gem ļ¬les in the bundled gems directory, and anything speciļ¬ed in .slugignore. Write the environment into the slug. (The slug is rebuilt any time a conļ¬g var or add-on is changed) Package into the ļ¬nal slug archive. Slug Size Matters: Larger Slug == slower distribution < 30 MB CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 13 Monday, October 3, 11
  • 14. Scaling Concept: More Dynos = Better Concurrency Unlimited Number of Dynos / Application. Command Line $ heroku scale web=3 worker=2 scraper=2 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 14 Monday, October 3, 11
  • 15. Scaling Concept: More Dynos = Better Concurrency Unlimited Number of Dynos / Application. Command Line Web Interface CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 15 Monday, October 3, 11
  • 16. Scaling Concept: More Dynos = Better Concurrency Unlimited Number of Dynos / Application. Command Line Web Interface Ruby Script (wait for it...) CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 16 Monday, October 3, 11
  • 17. Scaling Concept: More Dynos = Better Concurrency Unlimited Number of Dynos / Application. Command Line $ heroku scale web=3 worker=2 scraper=2 Web Interface Ruby Script (wait for it...) Mobile App (Nazumi App) CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 17 Monday, October 3, 11
  • 18. Scaling Concept: More Dynos = Better Concurrency Unlimited Number of Dynos / Application. Command Line $ heroku scale web=3 worker=2 scraper=2 Web Interface Ruby Script (wait for it...) Mobile App (Nazumi App) CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 18 Monday, October 3, 11
  • 19. Scaling Concept: More Dynos = Better Concurrency Unlimited Number of Dynos / Application. Command Line Web Interface Ruby Script (wait for it...) Mobile App (Nazumi App) Database Scaling Ika: $800/month, 50 connections, 7.5 GB of RAM, 4 compute units PostgreSQL 9 Baku: $3200/month, 128 connections, 34 GB of RAM, 13 cu Mecha: $6400/month, 256 connections, 68 GB of RAM, 26 cu Amazon RDS addon NoSQL solutions CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 19 Monday, October 3, 11
  • 20. Monitoring Heroku Logs heroku logs everything NginX - Routing Mesh - Every Dyno (web, worker, custom) $ heroku logs --tail $ heroku logs --source heroku --ps router $ heroku logs -s app -p worker.1 $ heroku logs --ps postgres Only for dedicated Database Add-ons New Relic Airbrake (HopToad) StillAlive CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 20 Monday, October 3, 11
  • 21. Heroku Billing Model 100% Based on itā€™s process model Dynos are billed per second at a rate of 0.05$ / hour First Dyno is FREE (Watch out: single Dyno Idling Policy can cause delays) Add-ons are billed per second. Databases are billed per hour. 1 web server + 1 worker + Shared Database (20GB) = 1x36 + 1x36 + 15 = 87$ /month CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 21 Monday, October 3, 11
  • 22. Heroku can be even more elastic Dyno #1 1 Dyno #2 Large Dyno #3 Elastic Dyno #4 Dyno #5 Dyno #6 ~ Dyno #7 Dyno #8 4.7 GB Dyno #9 ram Dyno #10 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 22 Monday, October 3, 11
  • 23. Heroku can be even more elastic Dyno #1 1 Dyno #2 Large Dyno #3 Elastic Dyno #4 Dyno #5 Dyno #6 ~ Dyno #7 Dyno #8 4.7 GB Dyno #9 ram Dyno #10 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 23 Monday, October 3, 11
  • 24. Heroku can be even more elastic Dyno #1 1 Dyno #2 Large Dyno #3 Elastic Dyno #4 Dyno #5 Dyno #6 ~ Dyno #7 Dyno #8 4.7 GB Dyno #9 ram Dyno #10 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 24 Monday, October 3, 11
  • 25. Heroku can be even more elastic Dyno #1 1 Dynos => $ 0.5/h 10 Dyno #2 Large 1 LARGE => $ 0.35/h Dyno #3 Elastic HEROKU = 42% more expensive Dyno #4 Dyno #5 Dyno #6 ~ Dyno #7 Dyno #8 4.7 GB Dyno #9 ram Dyno #10 CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 25 Monday, October 3, 11
  • 26. Heroku can be even more elastic Dyno #1 110 Dynos => $ 0.5/h Dyno #2 Large 1 LARGE => $ 0.35/h Dyno #3 Elastic Dyno #4 HEROKU = 42% more expensive Dyno #5 Dyno #6 ~ Dyno #7 Dyno #8 4.7 GB 0.33*1/2+0.33*1/5+0.33*1 = 56% dynamic Dyno #9 ram Dyno #10 usage 10 DYNAMIC Dynos => $ 0.28/h 1 LARGE => $ 0.35/h HEROKU = 25% cheaper CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 26 Monday, October 3, 11
  • 27. Use Heroku because: Itā€™s free You can have a look at almost everything without spending a penny. Itā€™s fast Rapid prototyping meets heroku It support open source solutions Scaling needs can show up any day You are better developer than administrator CloudCamp.org/Athens | 2011 | Savvas Georgiou | presenting Heroku 27 Monday, October 3, 11
  • 28. Code For dynamic Dyno management 28 Monday, October 3, 11
  • 29. Thank you Savvas Georgiou @savvasgeorgiou contact@savvas.me http://savvas.me 29 Monday, October 3, 11
  • 30. Reference [1] http://blog.heroku.com/archives/2011/7/12/matz_joins_heroku/ [2] http://cedar-versions.herokuapp.com/evil [3] https://status.heroku.com/incident/151 [4] http://devcenter.heroku.com/articles/dyno-isolation [5[ http://devcenter.heroku.com/articles/process-model [6] http://blog.heroku.com/archives/2010/7/20/nosql/ [7] https://addons.heroku.com/provider/resources/technical/how/provision/3 [8] http://blog.heroku.com/archives/2010/7/20/nosql/ 30 Monday, October 3, 11