Heroku

  • 1,181 views
Uploaded on

Talk about Heroku from WJAX 2013

Talk about Heroku from WJAX 2013

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,181
On Slideshare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
1
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