Your SlideShare is downloading. ×
Heroku
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Heroku

1,260
views

Published on

Talk about Heroku from WJAX 2013

Talk about Heroku from WJAX 2013

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Eberhard Wolff Freelance Consultant / Trainer Head Technology Advisory Board adesso AG
  • 2. HISTORY & ORIGIN Eberhard Wolff - @ewolff
  • 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. Programming Model § Jetty, Tomcat or Play! web server § Worker for background activities § Standard Java Programming Model Eberhard Wolff - @ewolff
  • 5. Scaling / High Availability § Servers must be manually started for scaling § Failed servers will be restarted Eberhard Wolff - @ewolff
  • 6. TOOLS Eberhard Wolff - @ewolff
  • 7. Command Line Tool § heroku § E.g. creates new applications § Other management functions addons o  logs o  etc. o  Eberhard Wolff - @ewolff
  • 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. DEMO Eberhard Wolff - @ewolff
  • 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. Eberhard Wolff - @ewolff
  • 12. Eberhard Wolff - @ewolff
  • 13. Eberhard Wolff - @ewolff
  • 14. Alternative: Eclipse PlugIn or Web Eberhard Wolff - @ewolff
  • 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. FLEXIBILITY Eberhard Wolff - @ewolff
  • 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. 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. PLATFORM AND OTHER SERVICES Eberhard Wolff - @ewolff
  • 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. 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. 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