Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Chronicle of a SOA foretold

kidpollo
February 27, 2013

Chronicle of a SOA foretold

Ruby or Rails is no longer the new kid on the block. Ruby was conceived on February 24, 1993 and was first published on December 21, 1995. Currently we are at Ruby 2.0. The first killer app, Basecamp, was launched on February 4, 2004 and the '1 minute blog video' is a distant memory for many Ruby developers. Most new comers don't know Chunky Bacon and Why the lucky stiff!

Rails has just gone through its awkward teen years full of drama and tears. Like any teenager, Rails was influenced by a lot of external forces. Rails 4 is about to launch and it’s more than clear what the path is; SOA, such a grown up, scary acronym, right? One of those buzz words that cool Ruby developers hated. But guess what? Ruby apps are now big and in the enterprise. The silver lining is that Ruby is still very relevant and way better suited for SOA's and we'll see why.

kidpollo

February 27, 2013
Tweet

More Decks by kidpollo

Other Decks in Technology

Transcript

  1. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 2 Me • @kidpollo • Senor Engineer @ Get Satisfaction • I <3 Ruby • Mentor • Entrepreneur wannabe
  2. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 3 I take pictures and like good food Some will say I am a hipster
  3. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 5 SOA Service Oriented Architectures ‣ Well defined ‣ Built as components ‣ Can be re-used ‣ Loosely coupled
  4. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 6 Ruby is no longer a kid ‣ February 24, 1993 ‣ December 21, 1995 ‣ February 4, 2004 ‣ 2.0 ‣ 4.0
  5. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 7 Rails is SOA ready
  6. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 8 The Novella
  7. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 9 Can Rails scale? http://canrailsscale.com/ NO
  8. Story of a SOA Foretold Francisco Viramontes @kidpollo • 24

    -Matz “Ruby is simple in appearance, but is very complex inside, just like our human body.” 10
  9. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 11 I CAN HAZ JOB?
  10. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 12 Ruby is in big companies
  11. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 13 Ruby is in the cloud
  12. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 14 Ruby is everywhere MRuby
  13. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 15 Ruby is above and beyond
  14. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 16 Rails is ...
  15. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 17 Video http://www.youtube.com/v/E99FnoYqoII?end=129&version=3
  16. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 18 Rails is ola ke ase?
  17. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 19 Default Stack
  18. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 20 My Stack
  19. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 21 The SF Burrito
  20. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 22 SOA Taquiza!
  21. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 23 Now lets get a closer look
  22. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 24 • Its all about scale • A brand new GC • Great performance increase • Some new syntax sparkles • API compatible with 1.9 Ruby 2.0
  23. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 25 Rails 4.x SOA
  24. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 26 Strong Parameters
  25. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 27 Routing Concerns
  26. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 29 Russian Doll (Torta de tamal) catching
  27. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 30 SOA also applies to code • PORO • Classes are your friends • Single responsibility principle • Resilient to change • Easy to test
  28. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 31 PORO
  29. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 32 Single responsibility principle
  30. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 33 Skinny Models • Keep callback logic separate (decouple) • Extract business logic to classes • Don’t mix Authorization with validations http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/
  31. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 35 Authentication as a middleware • Rollout your own • Warden rocks! • Disable session based auth • Share across your services • Oauth 2.0 https://github.com/kidpollo/warden-oauth2
  32. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 37 Authorization that does not suck! • Rollout your own • Use plain classes • Pundit rocks! • Don't mix with validations • Share across services https://github.com/elabs/pundit
  33. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 38 Whats wrong?
  34. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 39 Versioning from the start • Catching • Documentation • Lifecycle • Dependencies
  35. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 40 Measure everything • Usage • Performance • Trace • Logs http://asciicasts.com/episodes/249-notifications-in-rails-3
  36. Chronicle of a SOA Foretold • 43 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 41 Now make your own SOA diagram