RubyConf Brazil 2011
Upcoming SlideShare
Loading in...5
×
 

RubyConf Brazil 2011

on

  • 357 views

Talk given in SaoPaulo in 2011 for 45mins.

Talk given in SaoPaulo in 2011 for 45mins.

Focussing on servver side mash-ups and our use of them in a Strangler pattern

Statistics

Views

Total Views
357
Views on SlideShare
353
Embed Views
4

Actions

Likes
0
Downloads
0
Comments
0

3 Embeds 4

http://www.linkedin.com 2
http://www.slashdocs.com 1
http://www.docshut.com 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

RubyConf Brazil 2011 RubyConf Brazil 2011 Presentation Transcript

  • Content  Fabrics  Or  the  lost  art  of  server  side  mash-­‐ups.  
  • Me
  • @nigelfds   github.com/nigelfds  
  • test tech optimize our approachXD release How? offshore & Consulting distributed Services Delivery App dev ThoughtWorks support Products ALM opensource cruise mingle twist
  • Melbourne  Australia  
  • Mash-­‐ups  right?  
  • uh..  not  really.    
  • mess  The  world  of  big  enterprise    
  • Content  producBon  End  users   StaBc  files   served  from     Apache  Content  Teams   CMS  system   (Alfresco)  
  • StaBc  InformaBon  Business  Processes   Tomcat   Another  App   Yet  another  app   Rails  on  JRuby  
  • The  problem:  Picking  a  soluBon    
  • DuplicaBon  vs  Coupling  
  • hQp://site.com/applicaBon   Alfresco   CMS   Rails  on  JRuby    End  users  
  • The  Strangler  PaQern  
  • Inspired  by  Linked  In   Tomcat   Sitemesh  Request   JRuby-­‐Rack   Rails   Alfresco  CMS  Response   Rails  apps  deployed  as   wars   Webfabric  
  • RefreshingRefreshing
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Booking - <%= yield :title %></title> <%= fetch("/website/content/integration-template.html").head %> <%= yield :javascripts %> </head> <body> <%= fetch("/website/content/integration-template.html").div(header) %> <div class="pagelayout single-column-content”> <div class="maincontent"> <%= render shared/progress_bar %> <div class="grid_24"> <%= yield %> </div> </div> <%= fetch("/website/content/integration-template.html").div(footer) %> </div> </body></html>
  • Evolving     to  the  next  version  
  • The  problem:    Content  scaling  
  • The  general  soluBon  in  compuBng  to  speed  up  access  to  the  same  informaBon  is  to  use  caches.    
  • Scaling  by  Caching  
  • Scaling  using   content   freshness  
  • <div  class="pagelayout  single-­‐column-­‐content">              <%=  fetch("/travel/news?filter=SaoPaulo").div(content)  %>              <div  class="maincontent">    <div  class="grid_24">                            <%=  yield  %>                                          </div>              </div>  </div>  
  • Server  side  example  Travel  Booking   News  Updates  Rails  App   Rails  App   Get /travel/news?filter=SaoPaulo Accept: application/vnd.company.news+html If-None-Match:… Cache-Control:…Travel  Booking   News  Updates  Rails  App   Rails  App   <a class="related" href=”/travel/news/13404492/”>Latest Travel News</ a>
  • Client  side  example  JavaScript  in   News  Updates  page   Rails  App   Get /travel/news/13404492/ Accept: text/html, */* If-None-Match:… Cache-Control:…Travel  Booking   News  Updates  Rails  App   Rails  App   <div> <label>…<> <input name="email”/> <label>…<> <input name=”password”/> … </div>
  • The  problem:  ConBnuous  incremental   deployments    
  • MigraBng  content  
  • Batch  process    
  • Too  many  files  
  • Products  manufactured  by  one  company,  that  are  packaged  and  sold  by  other  companies  under  different  brand  names.  
  • Enabling  mulBple  teams  
  • hQp://marBnfowler.com/bliki/StranglerApplicaBon.html  hQp://marBnfowler.com/bliki/SegmentaBonByFreshness.html  hQp://microformats.org/wiki/rest/ahah  hQp://www.sitemesh.org/overview.html  hQp://code.google.com/p/webfabric/