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

Migrating Legacy Projects to Node

Avatar for Katie Roberts Katie Roberts
September 09, 2015

Migrating Legacy Projects to Node

Case study of how BBC Food has used Node.js

Avatar for Katie Roberts

Katie Roberts

September 09, 2015

Other Decks in Technology

Transcript

  1. !  Development  Lead  working  for  Knowledge  and   Learning  at

     the  BBC   !  Developer  for  over  10  years     !  I  <heart>  JavaScript   About  Me  
  2. ! Around  2  million  unique  users  per  week   !

    Food  is  one  of  BBC  Online's  oldest  products   !  Food  has  a  database  of  over  11,000  recipes   ! Food  site  sends  over  100,000  SMS  messages  per  year   ! Currently  live  site  is  built  in  PHP   Food  facts  
  3. !  Code  developed  6  years  ago   !  Not  responsive

      !  BBC  moving  to  Continuous  Delivery  model  using  AWS   !  Want  to  be  able  to  add  new  features  to  the  site   !  Decommissioning  of  old  services   !  Patch  up  existing  code  and  move  on?   Why  change  at  all?  
  4. !  Wider  BBC  moving  to  Node   !  Speed  up

     development   !  Non-­‐blocking  data  calls   !  Node  has  active  community   !  Node  is  great  for  Microservices   Why  node?  
  5. Microservices  and  the   Decommissioning  of  content   BBC  Key

     Value  store  being  decommissioned   Content  for  Food  Homepage,  recipes  index,  seasons…  
  6. ! Must  work  with  existing  products     ! Must

     not  require  major  rework  in  existing  products  to   work     What  are  the  requirements?  
  7. ! DynamoDB   ! Heston  translation  service   ! Provides

     REST  api  for  AWS  SDK   ! Allows  legacy  products  to  put  content  into  DynamoDB   Solution  
  8. PHP food application admin application Forge AWS GET GET PUT

    DELETE Heston Translation Service GET PUT DELETE DynamoDB
  9. ! “Run  alongside”  approach   ! Refreshed  current  mobile  css

      ! Recreating  the  current  look  and  feel  of  the  site  –   whilst  underlying  it  with  new  capabilities   ! Delivering  route  by  route  rather  than  a  big  bang   How  are  we  migrating  the  food  app?  
  10. Routing   GET /food GET /food/recipes www.bbc.co.uk vserver Traffic Management

    /food /recipes/search food/recipes PHP application Node application GET /food/recipes/search
  11. ! “Run  alongside”  approach   ! Refreshed  current  mobile  css

      ! Recreating  the  current  look  and  feel  of  the  site  –   whilst  underlying  it  with  new  capabilities   ! Delivering  route  by  route  rather  than  a  big  bang   ! Delivering  highest  value  content  first   How  are  we  migrating?  
  12. ! Small  number  of  moving  parts   ! Development  of

     components  which  allow  us  to   “composite”  pages     ! Regular  releases  to  live  –  even  though  not  public   facing  yet   Approach  notes  
  13. ! NFRs    -­‐  improved  load  time     !

    “Lego  brick”  development     ! Development  time  is  reduced     ! Same  stack  development  for  both  the  front  and   backend   ! …   What  improvements  have  we  seen?