Eberhard Wolff
Freelance Consultant / Trainer
Head Technology Advisory Board
adesso AG
HISTORY & ORIGIN

Eberhard Wolff - @ewolff
History & Origin
§ Originally started as Ruby PaaS
§ Now: Support for Node.js, Clojure,
Grails, Scala and Python
§ Acqu...
Programming Model
§ Jetty, Tomcat or Play! web server
§ Worker for background activities
§ Standard Java Programming Mo...
Scaling / High Availability 
§ Servers must be manually started for
scaling
§ Failed servers will be restarted

Eberhard...
TOOLS

Eberhard Wolff - @ewolff
Command Line Tool
§ heroku
§ E.g. creates new applications
§ Other management functions
addons
o  logs
o  etc.
o 

E...
Deployment
§  heroku tool creates an empty git repository
§  Deploy new versions with git
§  Build (maven) done by Hero...
DEMO

Eberhard Wolff - @ewolff
Code Changes
Took the Spring application
Converted to PostgreSQL
<bean class="java.net.URI" id="dbUrl">	
<constructor-arg	...
Eberhard Wolff - @ewolff
Eberhard Wolff - @ewolff
Eberhard Wolff - @ewolff
Alternative: Eclipse PlugIn or Web

Eberhard Wolff - @ewolff
Full Stack Java EE 
No Java EE build pack available
Would need WAR with Java EE libs
Problem: JNDI DataSource

Eberhard Wo...
FLEXIBILITY

Eberhard Wolff - @ewolff
Flexibility
§  Dynos: processes run on Heroku
§  Procfile defines command line to start a
“Dyno”
§  Can be tuned and ch...
Restrictions
§ Max source and build artifact size:
200MB
§ No sticky sessions
§ Dynos may not use more than
512MB RAM
§...
PLATFORM AND OTHER
SERVICES
Eberhard Wolff - @ewolff
Platform
§ Amazon Web Services
§ US East region
§ EU West beta
§ Proven foundation
§ Can use AWS resources as part of...
Other Services
§ Heroku supports Add-ons
§ Postgresql and memcached by
Heroku
§ Many 3rd party
§ E.g. relational datab...
Heroku: Highlights
§ Very flexible: Supports many
different environments
§ Broad range of additional services
§ Also co...
Upcoming SlideShare
Loading in...5
×

Heroku

1,342

Published on

Talk about Heroku from WJAX 2013

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,342
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
4
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Heroku"

  1. 1. Eberhard Wolff Freelance Consultant / Trainer Head Technology Advisory Board adesso AG
  2. 2. HISTORY & ORIGIN Eberhard Wolff - @ewolff
  3. 3. History & Origin § Originally started as Ruby PaaS § Now: Support for Node.js, Clojure, Grails, Scala and Python § Acquired by Salesforce.com Eberhard Wolff - @ewolff
  4. 4. Programming Model § Jetty, Tomcat or Play! web server § Worker for background activities § Standard Java Programming Model Eberhard Wolff - @ewolff
  5. 5. Scaling / High Availability § Servers must be manually started for scaling § Failed servers will be restarted Eberhard Wolff - @ewolff
  6. 6. TOOLS Eberhard Wolff - @ewolff
  7. 7. Command Line Tool § heroku § E.g. creates new applications § Other management functions addons o  logs o  etc. o  Eberhard Wolff - @ewolff
  8. 8. Deployment §  heroku tool creates an empty git repository §  Deploy new versions with git §  Build (maven) done by Heroku §  Build automatically deployed §  No specialized tools needed – git is enough §  Integration with Atlassian Bamboo or Travis possible §  Alternative: WAR deployment Eberhard Wolff - @ewolff
  9. 9. DEMO Eberhard Wolff - @ewolff
  10. 10. Code Changes Took the Spring application Converted to PostgreSQL <bean class="java.net.URI" id="dbUrl"> <constructor-arg value="#{systemEnvironment['DATABASE_URL']}" /> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="url" value="#{ 'jdbc:postgresql://' + @dbUrl.getHost() + í ':' + @dbUrl.getPort() + @dbUrl.getPath() }" /> <property name="username" value="#{ @dbUrl.getUserInfo().split(':')[0] }" /> <property name="password" value="#{ @dbUrl.getUserInfo().split(':')[1] }" /> </bean> Eberhard Wolff - @ewolff
  11. 11. Eberhard Wolff - @ewolff
  12. 12. Eberhard Wolff - @ewolff
  13. 13. Eberhard Wolff - @ewolff
  14. 14. Alternative: Eclipse PlugIn or Web Eberhard Wolff - @ewolff
  15. 15. Full Stack Java EE No Java EE build pack available Would need WAR with Java EE libs Problem: JNDI DataSource Eberhard Wolff - @ewolff
  16. 16. FLEXIBILITY Eberhard Wolff - @ewolff
  17. 17. Flexibility §  Dynos: processes run on Heroku §  Procfile defines command line to start a “Dyno” §  Can be tuned and changed §  Can create custom “Buildpack” to run entirely different environments §  Available as Open Source e.g. for Ruby, PHP, Erlang, EmacsLisp… Eberhard Wolff - @ewolff
  18. 18. Restrictions § Max source and build artifact size: 200MB § No sticky sessions § Dynos may not use more than 512MB RAM § I.e. max JVM heap about 400MB Eberhard Wolff - @ewolff
  19. 19. PLATFORM AND OTHER SERVICES Eberhard Wolff - @ewolff
  20. 20. Platform § Amazon Web Services § US East region § EU West beta § Proven foundation § Can use AWS resources as part of the solution § 750h per month free Eberhard Wolff - @ewolff
  21. 21. Other Services § Heroku supports Add-ons § Postgresql and memcached by Heroku § Many 3rd party § E.g. relational databases, NoSQL databases, logging, caches… § Configuration passed to service via environment variables Eberhard Wolff - @ewolff
  22. 22. Heroku: Highlights § Very flexible: Supports many different environments § Broad range of additional services § Also covers build § https://github.com/ewolff/newsapplication-heroku Eberhard Wolff - @ewolff
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×