Ruby On Google App Engine 2nd Athens Ruby Me


Published on

My presentation for the 2nd Athens Ruby Meetup about deploying Ruby apps on Google App Engine

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Ruby On Google App Engine 2nd Athens Ruby Me

  1. 1. Placeholder for a Two-Line Title International Theme Ruby on Google App Engine Panagiotis Papadopoulos - 2nd Athens Ruby Meetup
  2. 2. From Ruby to JRuby We know Ruby MRI but Ruby runs on JVM too <ul><ul><li>Like Ruby but runs on top of JVM </li></ul></ul><ul><ul><li>JRuby is mature </li></ul></ul><ul><ul><ul><li>Ruby Thread are java threads </li></ul></ul></ul><ul><ul><ul><li>GC is the bullet proof Java GC </li></ul></ul></ul><ul><ul><ul><li>Java Unicode </li></ul></ul></ul><ul><ul><ul><li>Compiled code </li></ul></ul></ul><ul><ul><ul><li>GC and threading work seamlessly </li></ul></ul></ul><ul><ul><ul><li>Huge variety of libaries </li></ul></ul></ul><ul><ul><ul><li>deploy RoR with a single .war </li></ul></ul></ul><ul><ul><li>But ... </li></ul></ul><ul><ul><ul><li>gems need native extensions </li></ul></ul></ul><ul><ul><ul><li>great performance needs JVM knowledge </li></ul></ul></ul>
  3. 3. Google App Engine What is App Engine <ul><ul><li>exciting </li></ul></ul><ul><ul><li>running on Google infrastructure </li></ul></ul><ul><ul><li>limited & has unique methodologies </li></ul></ul><ul><ul><li>Java & Python only </li></ul></ul><ul><ul><li>scaling to infinity </li></ul></ul><ul><ul><li>having an integrated enviroments </li></ul></ul><ul><ul><li>almost free </li></ul></ul>What is  What is not <ul><ul><li>Shared Hosting </li></ul></ul><ul><ul><li>VPS </li></ul></ul><ul><ul><li>a server to port my projects </li></ul></ul><ul><ul><li>run commodity software (ex. phpBB) </li></ul></ul><ul><ul><li>RDBMS </li></ul></ul><ul><ul><li>a technology for noobs </li></ul></ul>
  4. 4. Why do we need JRuby Because it can execute on App Engine JVM <ul><ul><li>Learn the GAE limitations and tool set </li></ul></ul><ul><ul><ul><li>no relational database although GQL make it easier </li></ul></ul></ul><ul><ul><ul><li>1000 files upload limit </li></ul></ul></ul><ul><ul><ul><li>not writable filesystem </li></ul></ul></ul><ul><ul><ul><li>no custom TCP, UDP connection </li></ul></ul></ul><ul><ul><ul><li>etc  </li></ul></ul></ul><ul><ul><ul><li>free up to 6.5 cpu hours </li></ul></ul></ul><ul><ul><ul><li>index everything (or most) </li></ul></ul></ul><ul><ul><li>So what is good? </li></ul></ul><ul><ul><ul><li>no worries about scaling </li></ul></ul></ul><ul><ul><ul><li>XMPP, Cron, Task Queue, Versions </li></ul></ul></ul><ul><ul><ul><li>integrated environment </li></ul></ul></ul><ul><ul><ul><li>free for most projects </li></ul></ul></ul><ul><ul><ul><li>really cool </li></ul></ul></ul>
  5. 5. Where is Ruby and where is Rails? Not so straightforward <ul><ul><li>a lot but tricky </li></ul></ul><ul><ul><li>ORM through DataMapper </li></ul></ul><ul><ul><li>memcache, actionmailer need patching </li></ul></ul><ul><ul><li>console </li></ul></ul>What works What does not work <ul><ul><li>native extensions </li></ul></ul><ul><ul><li>activerecord </li></ul></ul>
  6. 6. How do we start? You are luckier now but wait for Rails 3  <ul><ul><li>Appengine-Jruby for the rescue </li></ul></ul><ul><ul><ul><li>streamlines the process </li></ul></ul></ul><ul><ul><ul><li>fetched jruby-rack, jruby, appengine-java-skd </li></ul></ul></ul><ul><ul><ul><li>local server </li></ul></ul></ul><ul><ul><ul><li>console </li></ul></ul></ul><ul><ul><ul><li>deploy in a breeze </li></ul></ul></ul><ul><ul><li>Is that easy? </li></ul></ul><ul><ul><ul><li>not at all </li></ul></ul></ul><ul><ul><ul><li>you need to package gems into jars (warble) </li></ul></ul></ul><ul><ul><ul><li>jruby rack runs below rails/sinatra/merb </li></ul></ul></ul><ul><ul><ul><li>Java exceptions </li></ul></ul></ul><ul><ul><ul><li>restart server when testing :( </li></ul></ul></ul><ul><ul><li>Awesome admin environment, take a look </li></ul></ul>
  7. 7. Integration, control, versioning, stats, tickets all in a blink. PanosJee “ ”
  8. 8. More reading Don 't miss <ul><ul><li> </li></ul></ul><ul><ul><ul><li>lots of stuff I came across about jruby/gae </li></ul></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><ul><li>don 't start without it </li></ul></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><ul><li>major contributor </li></ul></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><ul><li>if you are serious about GAE and want a real app </li></ul></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><ul><li>ideal platform for Ruby on GAE </li></ul></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><ul><li>the awesome demo </li></ul></ul></ul>
  9. 9. Thank you!   Ruby Greece is maturing! ::
  1. A particular slide catching your eye?

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