SlideShare a Scribd company logo
Heroku
Rails Hosting in the Cloud
What is cloud
 computing?
Cloud Computing

• Companies don‘t own the physical
  infrastructure
• Computing time and storage is rented from
  a third party
Advantages

• Variable costs instead of capital
  expenditure
  • Costs lining up with real usage
  • Real usage lining up with sales volume
• Higher flexibility
Disadvantages


• You have to trust a third party
• Limitations for exotic configurations
The Cloud rocks

Deployment sucks
co sts
   agility      low            scala
                                    bility


        The Cloud rocks
abso
    rb p                                ur ity
         eaks                       s ec
                reliability
Set up new     Deal with
      instances     outages

Deployment sucks
                  Persist
     Balancing    storag
                          ant
Load                      e
Automate or die
Rails Usergroup Hamburg: Heroku
Customers




               contract


Dyno, SQL-Storage, Caching,…

               management


  ECS, S3, EBS, SimpleDB, …
Customers




       contract                        contract



                       manages
                                   ECS, S3, EBS, SimpleDB,
AppServer, SQL, etc.                          …
The Heroku stack
Rails Usergroup Hamburg: Heroku
OS and Ruby

• default: Debian 4 + Ruby 1.8.6
• optional:
 • Debian 5 + REE 1.8.7
 • Debian 5 + Ruby 1.9.1
Dynos
App servers, background processes
Database
Shared or dedicated,
based on PostgreSQL
Add-Ons
• Amazon RDS          • Websolr
• Bundles (Backups)   • Memcache
• Cron                • AMQP
Integration
• Custom domains   • New Relic
• DNS servers      • Sendgrid
• Deploy hooks     • SSL certificates
• Exceptional      • ...
Read Only FS

• Caching → Header + Reverse Proxy
• Uploads → S3
• SQLite → PostgreSQL
• Ferret indices → use SOLR service
Interaction with
     heroku
Git based workflow

• gem install heroku
• heroku create
• git push heroku master
• heroku rake db:migrate
git push → build slug



                                     }
• checkout master branch
• download, build and install gems       slug
• delete .git, log/*, tmp/* and
  everything in .slugignore
Gem management


• .gems manifest file
• bundler (experimental)
Database management

• Uses values from database.yml
• Export to heroku → db:push
• Import from heroku → db:pull
Other features

• heroku
 • console (interactive/single commands)
 • rake
Conclusion
Cons
• Oversimplification
 • Predefined sets of OS and Ruby version
 • No ssh access
 • No choice of physical location
 • Only predefined tools available
• For larger setups: pretty expensive
• Porting apps may be hard
Pros

• Very simple start
• Low costs in the beginning / for small apps
• Offers simple management of complex
  apps, if developed with the heroku stack in
  mind
I do recommend
  Heroku for any new
projects that were built
with heroku restrictions
in mind, because it can‘t
     get any simpler!
Questions?

Follow me!
 @ralph

More Related Content

PPTX
Cloud Storage in Azure, AWS and Google Cloud
PPTX
Leveraging OpenStack Cinder for Peak Application Performance
PDF
AWS to Bare Metal: Motivation, Pitfalls, and Results
PPTX
Big Data, Big Projects, Big Mistakes: How to Jumpstart and Deliver with Success
PDF
The Secret Guide to Cloud Performance - Cloudlook
PDF
Ceph and Apache CloudStack
PDF
Presentation for IGDCloud meetup: The clouds arena AWS ver. others
PPTX
Windows Azure Virtual Machines
Cloud Storage in Azure, AWS and Google Cloud
Leveraging OpenStack Cinder for Peak Application Performance
AWS to Bare Metal: Motivation, Pitfalls, and Results
Big Data, Big Projects, Big Mistakes: How to Jumpstart and Deliver with Success
The Secret Guide to Cloud Performance - Cloudlook
Ceph and Apache CloudStack
Presentation for IGDCloud meetup: The clouds arena AWS ver. others
Windows Azure Virtual Machines

What's hot (18)

PPTX
Windows Azure Virtual Machines And Virtual Networks
PDF
Cloud Computing: AWS for Lean Startups
PPTX
Cnam azure 2014 web sites et integration continue
PPTX
Sql saturday azure storage by Anton Vidishchev
PDF
AWS simple storage service
PDF
Dell openstack cloud with inktank ceph – large scale customer deployment
PPTX
Storage as a service OpenStack
PDF
Percona Live 4/14/15: Leveraging open stack cinder for peak application perfo...
PPTX
Cnam azure 2014 storage
PDF
How to collect and utilize logs at Kubernetes with Elastic Stack
PPTX
Windows Azure Blob Storage
PDF
12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES
PDF
CEPH technical analysis 2014
PPTX
GDG Ternopil TechTalks Web #1 2015 - Data storages in Microsoft Azure
PPTX
Windows Azure Virtual Machines
PDF
Running Cassandra in AWS
PDF
Disaggregating Ceph using NVMeoF
PPTX
Why GoGrid Wins Over Rackspace (RAX)
Windows Azure Virtual Machines And Virtual Networks
Cloud Computing: AWS for Lean Startups
Cnam azure 2014 web sites et integration continue
Sql saturday azure storage by Anton Vidishchev
AWS simple storage service
Dell openstack cloud with inktank ceph – large scale customer deployment
Storage as a service OpenStack
Percona Live 4/14/15: Leveraging open stack cinder for peak application perfo...
Cnam azure 2014 storage
How to collect and utilize logs at Kubernetes with Elastic Stack
Windows Azure Blob Storage
12.07.2017 Docker Meetup - POSTGRE SQL ON KUBERNETES
CEPH technical analysis 2014
GDG Ternopil TechTalks Web #1 2015 - Data storages in Microsoft Azure
Windows Azure Virtual Machines
Running Cassandra in AWS
Disaggregating Ceph using NVMeoF
Why GoGrid Wins Over Rackspace (RAX)
Ad

Similar to Rails Usergroup Hamburg: Heroku (20)

PPTX
Postgres Plus Cloud Database
PPTX
What are clouds made from
PPTX
Running Open Source Solutions on Windows Azure
PDF
AWS Well Architected-Info Session WeCloudData
PPTX
Running Oracle EBS in the cloud (DOAG TECH17 edition)
PPTX
Is Private Cloud Right for Your Organization?
PPTX
Developing in the Cloud
PDF
Getting it Right: OpenStack Private Cloud Storage
PPT
Cloud computing by amazon
PPTX
Storage Requirements and Options for Running Spark on Kubernetes
PDF
Radical Innovations In Storage for Multi-Tenant Infrastructure
PDF
OpenStack Cinder, Implementation Today and New Trends for Tomorrow
PPTX
Spark volume requirements 2018
PDF
Real world cloud formation feb 2014 final
PPTX
Migrating enterprise workloads to AWS
PPTX
DotNetNuke on Azure Cloud Servers
PPTX
The impact of cloud NSBCon NY by Yves Goeleven
PDF
PaaS with Java
PPTX
ServerTemplates - The Next Generation
PPTX
What's New for the Windows Azure Developer? Lots!!
Postgres Plus Cloud Database
What are clouds made from
Running Open Source Solutions on Windows Azure
AWS Well Architected-Info Session WeCloudData
Running Oracle EBS in the cloud (DOAG TECH17 edition)
Is Private Cloud Right for Your Organization?
Developing in the Cloud
Getting it Right: OpenStack Private Cloud Storage
Cloud computing by amazon
Storage Requirements and Options for Running Spark on Kubernetes
Radical Innovations In Storage for Multi-Tenant Infrastructure
OpenStack Cinder, Implementation Today and New Trends for Tomorrow
Spark volume requirements 2018
Real world cloud formation feb 2014 final
Migrating enterprise workloads to AWS
DotNetNuke on Azure Cloud Servers
The impact of cloud NSBCon NY by Yves Goeleven
PaaS with Java
ServerTemplates - The Next Generation
What's New for the Windows Azure Developer? Lots!!
Ad

Rails Usergroup Hamburg: Heroku

Editor's Notes

  • #5: * no capital expenditure * low barriers to entry * low risk (cancel contract any time) * e.g. fire up test systems for load tests and pay by the hour * utility like electricity
  • #6: * e.g. Amazon and possibly your management provider can read your data * XING uses SSDs to quickly serve small image files (not possible with Amazon)
  • #8: * agility/scalability: fire up instances automatically * low costs: variable costs, low risk * security: experts take care of backups, it‘s their core business * reliability: replicate data between cloud providers, fire up instances on the other if one is down
  • #10: The cloud does not make any sense without automation.
  • #12: * no direct contact between customers and amazon * heroku could switch the hosting provider any time without anyone noticing
  • #13: * customer has 2 contracts: one with scalarium, one with amazon * scalarium is tailored specifically to aws
  • #15: * Reverse Proxy: Nginx * HTTP Cache: Varnish * Routing Mesh: Custom, written in Erlang * SQL: PostgreSQL * Memcache
  • #18: * shared: multiple users on 1 powerful computing unit ** better for peaks ** impacts by other users * dedicated: 1 dedicated computing unit * database.yml will be replaced automatically on deployment
  • #23: heroku create: git remote add heroku git@heroku.com:my_app.git http://my-url-35.heroku.com/
  • #24: .slugignore format like .gitignore
  • #25: * current bundler version on heroku: 0.9.11
  • #29: * No Ruby 1.9.2 -> no Rails 3 beta3 * e.g. no Redis * every custom tool must be manually managed, out of the Heroku scope * technical term confusion, e.g. bundle and migration