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

Chronicle of a SOA foretold (Magma Conf Version)

Chronicle of a SOA foretold (Magma Conf Version)

Rails is no longer the new kid on the block. Basecamp was launched on February 4, 2004 and the '1 minute blog video' is a distant memory for many Ruby developers. Most new comers dont 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 whether DHH likes it or not. The silver lining is that Ruby is still very relevant and way better suited for SOA's and we'll see why.

kidpollo

June 10, 2013
Tweet

More Decks by kidpollo

Other Decks in Technology

Transcript

  1. • 24 Story of a SOA Foretold Francisco Viramontes @kidpollo

    Thaks Eric Saxby, Jon Dean, and Edwin Cruz for ruining my talk. I hate you! 2 #JK #YOLO #LOVE Friday, June 7, 13
  2. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 3 Me • @kidpollo • Senor Engineer @ Get Satisfaction • I <3 Ruby • Mentor • Entrepreneur wannabe Friday, June 7, 13
  3. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io Magma & me Friday, June 7, 13
  4. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io Magma & me Friday, June 7, 13
  5. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 6 Magma & me Friday, June 7, 13
  6. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 16 parties 7 4 years 2 cities 2 jobs 1 hurricane 200+ Mosquito bites 3.5 talks ∞Beers Friday, June 7, 13
  7. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 8 I take pictures and like good food Some will say I am a hipster Friday, June 7, 13
  8. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 9 Friday, June 7, 13
  9. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 10 SOA Service Oriented Architectures ‣ Well defined ‣ Built as components ‣ Can be re-used ‣ Loosely coupled Friday, June 7, 13
  10. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 11 Ruby is no longer a kid (quiz) ‣ February 24, 1993 ? ‣ December 21, 1995 ? ‣ February 4, 2004 ? ‣ 2.0 ? ‣ 4.0 ? Friday, June 7, 13
  11. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 12 Rails is SOA ready Friday, June 7, 13
  12. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 13 The Novella Friday, June 7, 13
  13. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 14 Can Rails scale? http://canrailsscale.com/ NO Friday, June 7, 13
  14. 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.” 15 Friday, June 7, 13
  15. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 16 I CAN HAZ JOB? Friday, June 7, 13
  16. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 17 Ruby is in big companies Friday, June 7, 13
  17. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 18 Ruby is in the cloud Friday, June 7, 13
  18. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 19 Ruby is everywhere MRuby Friday, June 7, 13
  19. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 20 Ruby is above and beyond Friday, June 7, 13
  20. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 21 Rails is ... Friday, June 7, 13
  21. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 22 Video http://www.youtube.com/v/E99FnoYqoII?end=129&version=3 Friday, June 7, 13
  22. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 23 Rails is ola ke ase? Friday, June 7, 13
  23. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 24 Default Stack Friday, June 7, 13
  24. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 25 The SF Burrito Friday, June 7, 13
  25. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 26 My Stack Friday, June 7, 13
  26. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 27 SOA Taquiza! Friday, June 7, 13
  27. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 28 Now lets get a closer look Friday, June 7, 13
  28. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 29 • Its all about scale • A brand new GC • Great performance increase • Some new syntax sparkles • API compatible with 1.9 Ruby 2.0 Friday, June 7, 13
  29. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 30 Rails 4.x SOA Friday, June 7, 13
  30. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 31 Strong Parameters Friday, June 7, 13
  31. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 32 Routing Concerns Friday, June 7, 13
  32. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 34 Russian Doll (Torta de tamal) catching Friday, June 7, 13
  33. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 35 SOA also applies to code • PORO • Classes are your friends • Single responsibility principle • Resilient to change • Easy to test Friday, June 7, 13
  34. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 36 PORO Hipster approved Friday, June 7, 13
  35. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 37 Single responsibility principle Friday, June 7, 13
  36. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 38 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/ Friday, June 7, 13
  37. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 39 Friday, June 7, 13
  38. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 40 Versioning from the start • Catching • Documentation • Lifecycle • Dependencies Friday, June 7, 13
  39. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 41 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 Friday, June 7, 13
  40. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 42 Friday, June 7, 13
  41. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 43 Whats wrong? Friday, June 7, 13
  42. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 44 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 Friday, June 7, 13
  43. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 45 Async all the stuffs Friday, June 7, 13
  44. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 46 Measure everything • Usage • Performance • Trace • Logs http://asciicasts.com/episodes/249-notifications-in-rails-3 Friday, June 7, 13
  45. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 47 https://github.com/rails-api/rails-api Api as a first class citizen Friday, June 7, 13
  46. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 48 Magma Pattern? Hmmm seriously what do we call this? Friday, June 7, 13
  47. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 49 Now make your own SOA diagram Friday, June 7, 13
  48. Chronicle of a SOA Foretold • 50 Francisco Viramontes ·

    @kidpollo · http://kidpo.io 50 Friday, June 7, 13