Top Banner
VP Pla&orm Evangelism Chris Haddad Merging microservices architecture with SOA prac9ces 15 September 2014
33

Merging micrservices architecture with SOA Practices

Nov 01, 2014

Download

Technology

WSO2

-
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Merging micrservices architecture with SOA Practices

VP  Pla&orm  Evangelism  Chris  Haddad  

Merging  microservices  architecture    

with  SOA  prac9ces  

15  September  2014  

Page 2: Merging micrservices architecture with SOA Practices

2

About  the  Presenter  • Chris Haddad ๏  VP  Pla?orm  Evangelism  

๏  F500/G2000  Advisor  

๏  Cloudy  DevOps  for  Dev  guy  

๏  API  Strategy  and  SOA  Roadmap  consultant  

๏  Former  Gartner  research  team  leader    

Architect ๏  SaaS  and  PaaS  

๏  Service  por?olio  and  infrastructure  

๏  Data  management  

๏  Java,  .NET,  JavaScript,  Open  Source  

Learn more about me •  Follow me @cobiacomm on Twitter •  Blog: http://blog.cobia.net/cobiacomm

•  Decks: http://www.slideshare.net/cobiacomm/ •  Profle: http://www.linkedin.com/in/cobiacomm/

•  On Google+ too

Page 3: Merging micrservices architecture with SOA Practices

Agenda  

• Service  Success  and  Service  Angst  

• Are  microservices  the  answer?  

• Microservice  Mindset  

• How  to  properly  define,  decouple,  and  size  a  microservice.  

• What  DevOps  prac9ces  overcome  microservice  deployment  roadblocks  

• When  microservices  create  fragile  instead  of  an9fragile  building  blocks  

3  

Page 4: Merging micrservices architecture with SOA Practices

Service  Success  –  Extend  Legacy  Reach  

4  

Page 5: Merging micrservices architecture with SOA Practices

Service  Success  –  Extend  Business  Reach  

Page 6: Merging micrservices architecture with SOA Practices

Service  Success  –  Useful  Service  Blocks  

6  

Customer  

Account  

Product  

Inventory  

Payment  

Order  

Invoice   Fulfillment  

Page 7: Merging micrservices architecture with SOA Practices

Service  Success  –  Agility  at  Scale  

๏  How  do  you  measure  agility?  

๏  Have  services  increased  your  agility?  

๏  Does  IT  service  agility  exist?  

http://blog.cobia.net/cobiacomm/2013/03/19/accelerating-business-agility-with-app-factory-devops-paas/

Page 8: Merging micrservices architecture with SOA Practices

   Common                  Service                        Angst  

Page 9: Merging micrservices architecture with SOA Practices

Do  SOA  An9-­‐Pa_erns  Prevail?  Symptoms  

๏  Isola9on,  Uniqueness,  Duplica9on  

๏  Tight  Coupling  and  Build  Again  

Cause  

๏  Lack  of  Trust    -­‐  Not  Invented  Here  [NIH]  

๏  Shared  Service  Invisibility  

๏  Teams  do  not  know  about  a  service  

๏  Non-­‐func9onal  and  func9onal  requirements  are  not  well  documented  

9  

Page 10: Merging micrservices architecture with SOA Practices

Tired  of  Big  SOA?  ๏  Set  up  a  cross-­‐func9onal  SOA  Working  Group  

๏  Develop  a  SOA  Adop9on  Plan  

๏  Define  Target  Service  Por?olio  

๏  Develop  a  Business  Case  

๏  Plan  and  Fund  Development  of  SOA  Infrastructure  

๏  Establish  New  Roles  

๏  Plan  Training  and  Mentoring  for  Staff  

๏  Develop  Corporate  Policies,  Guidelines,  and  Best  Prac9ces  

๏  Ins9tute  SOA  Governance  Processes  

๏  Establish  New  Incen9ves  that  Reward  Good  Behavior  

๏  Iden9fy  Candidate  Projects  

๏  Establish  Priori9es  

๏  Reassess  Your  Sogware  Development  LifeCycle  (SDLC)  

 

10  

Page 11: Merging micrservices architecture with SOA Practices

Can  we  MicroSize  SOA?  

11  

Page 12: Merging micrservices architecture with SOA Practices

Be  Like  Mike!  –  aka  NetFlix  

12  

Page 13: Merging micrservices architecture with SOA Practices

Microservices  to  the  Rescue  

Microservices  Defined  

๏  A  small  problem  domain  

๏  Built  and  deployed  by  itself  

๏  Runs  in  its  own  process  

๏  Integrates  via  well-­‐known  interfaces  

๏  Owns  its  own  data  storage  

 

13  Source: http://www.brunton-spall.co.uk/post/2014/05/21/what-is-a-microservice-and-why-does-it-matter/

Page 14: Merging micrservices architecture with SOA Practices

Microservices  to  the  Rescue  “designing  so<ware  applica?ons  as  suites  of  independently  deployable  services.”  

Common  Characteris9cs    

๏  organiza9on  around  business  capability  

๏  automated  deployment  

๏  intelligence  in  the  endpoints  

๏  decentralized  control  of  languages  and  data  

Source:  Mar9n  Fowler  h_p://mar9nfowler.com/ar9cles/microservices.html    

14  

Page 15: Merging micrservices architecture with SOA Practices

Microservices  Scope  ๏  Coarse  Grained,  Atomic,  Business  Capability  

๏  Example  

๏  Customer  Profile  

๏  Product  Catalogue  

๏  Shopping  Cart  

๏  Account  Ac9vity  

๏  Ra9ngs  

๏  Recommenda9ons  /  Reviews  

 15  

Page 16: Merging micrservices architecture with SOA Practices

SOA  ==  Microservices  ๏  Services  expose  a  business  capability  

๏  Factor  applica9ons  into  composable  services    

๏  Re-­‐use  service  building  blocks  

๏  DRY  (Don’t  Repeat  Yourself)  

๏  Shared  service  delivery  

๏  “Microservices  is  SOA,  for  those  who  know  what  SOA  is”  Source:  Steve  Jones  

16  

Page 17: Merging micrservices architecture with SOA Practices

SOA  !=  Microservices  

SOA  

๏  Services  Deployed  in  a  Shared  Bus  

๏  One  Team  Goal  

๏  Centralize  Media9on  

๏  Not  prescrip9ve  on  the  back-­‐end  implementa9on  pa_ern  

17  

Micro-­‐services  

๏  Services  Deployed  at  the  Edge  

๏  Teams  aligned  with  Business  Units  

๏  Dumb  Infrastructure  

๏  Prescribes  back-­‐end  implementa9on  pa_ern  

“SOA is a lame enterprise approach, whereas microservices are a cool hacker approach.” Source: Ycombinator

Page 18: Merging micrservices architecture with SOA Practices

Microservice  Roadblocks  

๏  How  big  is  a  micro-­‐service?  (UX-­‐first  approach,  data  domain  approach)  

๏  How  decoupled  is  a  micro-­‐service?  (Dependencies,  versioning,  rou9ng,  linking  data)  

๏  How  to  micro-­‐size  a  business  capability    (granularity,  user  experience  composi9on)  

๏  How  to  take  a  RESTful  approach  towards  managing  micro-­‐service  dependencies    (DNS,  /etcd,  load  balancing)  

18  

Page 19: Merging micrservices architecture with SOA Practices

Microservice  Myths  and  Legends  ๏  The  NetFlix  Legend  –  QoS  and  rapid  delivery    

๏  Micro-­‐services  Foster  Rapid  Evolu9on  

๏  Agility,  Crea9ve  Experimenta9on,  and  Dynamic  Composi9on  

๏  Silos  are  good  (if  Micro-­‐serviced)  

๏  Containeriza9on  Panacea  

๏  Lifecycle  Complexity  is  Overblown  

๏  Micro-­‐services  don’t  require  SOA  principles  to  succeed  

19  

Page 20: Merging micrservices architecture with SOA Practices

Agenda  

• How  to  properly  define,  decouple,  and  size  a  microservice.  

• What  DevOps  prac9ces  overcome  microservice  deployment  roadblocks  

• When  microservices  create  fragile  instead  of  an9fragile  building  blocks  

20  

Page 21: Merging micrservices architecture with SOA Practices

DevOps  Prac9ces  Microservices  Pre-­‐requisites  

๏  Business  Domain  Responsibility  Decomposi9on  

๏  User  Interface  Integra9on  

๏  Communica9on  Protocols  

๏  Data  Formats  

๏  Redundant  Data  

๏  Business  Intelligence  Interfaces  

๏  Root  Cause  Analysis  (Logging,  Monitoring)  

๏  High  Availability  and  Fault  Tolerance  

๏  Dynamic  Service  Management  

Adapted  From:  Stefan  Tilkov  h_p://www.infoq.com/presenta9ons/Breaking-­‐the-­‐Monolith    21  

Page 22: Merging micrservices architecture with SOA Practices

DevOpS  Pa_erns  Loosely  couple  

๏  Bounded  Context  

๏  Tolerant  Reader  

๏  Consumer  driven  Contracts  

๏  Ubiquitous  Language  

22  

Source: Martin Folwer http://martinfowler.com/articles/microservices.html#MicroservicesAndSoa

Page 23: Merging micrservices architecture with SOA Practices

DevOpS  Pa_erns  Loosely  couple  

๏  Bounded  Context  

๏  Tolerant  Reader  

๏  Consumer  driven  Contracts  

๏  Ubiquitous  Language  

๏  Silos  per  business  capability  

๏  Separate  database  per  product  

23  

Source: Martin Folwer http://martinfowler.com/articles/microservices.html#MicroservicesAndSoa

Page 24: Merging micrservices architecture with SOA Practices

Agenda  

• How  to  properly  define,  decouple,  and  size  a  microservice.  

• What  DevOps  prac9ces  overcome  microservice  deployment  roadblocks  

• When  microservices  create  fragile  instead  of  an9fragile  building  blocks  

24  

Page 25: Merging micrservices architecture with SOA Practices

Fragility  and  An9-­‐Fragility  “An9-­‐fragility  does  not  merely  withstand  a  shock  but  actually  improves  because  of  it.”  

๏  Redundancy    

๏  Clustering,  Service  Farms  

๏  Failover    

๏  Watchdog  monitors  ,  Circuit  breakers  

25  

Page 26: Merging micrservices architecture with SOA Practices

Fragility  and  An9-­‐Fragility  “An9-­‐fragility  does  not  merely  withstand  a  shock  but  actually  improves  because  of  it.”  

Achieve  High  Availability  in  Distributed  Systems  through:  

๏  Redundancy    

๏  Failover    

Tradi9onal  Service  way  

๏    Dedicated  ac9ve-­‐ac9ve,  ac9ve-­‐passive  instances  

Micro-­‐services  way  

๏    Dynamic  instance  provisioning,  graceful  degrada9on  26  

Page 27: Merging micrservices architecture with SOA Practices

Fragility  and  An9-­‐Fragility  ๏  Redundancy  Strategies  

๏  Clustering  –  maintain  session  state  

๏  Service  Farms  –  iden9cal  ac9ve  nodes  

๏  Infrastructure  

๏  Load  Balancers  –  route  to  available  nodes  

๏  Elas9c  service  provisioning  –  spin  up/down  based  on  load  and  availability  

27  

Page 28: Merging micrservices architecture with SOA Practices

Fragility  and  An9-­‐Fragility  ๏  Failover  Strategies  

๏  Load  Balancers  –  route  to  available  nodes  

๏  Watchdog  Health  Monitors    -­‐  iden9fy  break  points  

๏  Circuit  breakers      [h_ps://github.com/Ne?lix/Hystrix  ]  

๏  Infrastructure  

๏  Intelligent  Content  Rou9ng    

๏  Topics  /  Queues  

๏  Management  Scripts  –  restart  service  instances  

๏  PaaS  Service  Management  

28  

Page 29: Merging micrservices architecture with SOA Practices

Start  Small  

๏  Implement  SOA  principles  on  a  project-­‐by-­‐project  basis    

๏  Iden9fy  rela9onship  between  services  and  business  capabili9es    

๏  Build  a  top-­‐down  and  bo_oms-­‐up  data  model  

๏  Work  with  your  Enterprise  Architecture  Team  

29  

Page 30: Merging micrservices architecture with SOA Practices

SOA  &  Microservices  Reconcilia9on  ๏  When  to  create  services  

๏  Create  a  service  when  sharing  a  business  capability    

๏  When  to  create  APIs    

๏  Sharing  a  service  outside  a  domain  of  control  

๏  Targe9ng  the  widest  possible  reach  and  consump9on  

๏  Offering  the  service  across  na9ve  web  infrastructure  

๏  Maximizing  asymmetric  evolu9on  between  service  clients,  interface,  and  implementa9on.    

๏  When  to  create  and  use  microservices  

๏  Building  an  applica9on  crossing  domains  

๏  Ra9onalizing  and  consolida9ng  your  SOA  por?olio  

30  

Page 31: Merging micrservices architecture with SOA Practices

31  

Accelerate  Your  IT  Business  Strategy    with  WSO2  Services  

Page 32: Merging micrservices architecture with SOA Practices

References  ๏  SOA  and  API  Convergence  Strategy  and  Tac7cs  

๏  Promo7ng  service  reuse  within  your  enterprise  and  maximizing  SOA  success  

๏  REST  Easy:  API  Design,  Evolu7on,  and  Connec7on  

๏  Mar7n  Fowler  on  Microservices  

๏  Stefan  Tilkov,  Breaking  the  Monolith  

๏  Brunton  Sprall:  What  is  a  microservice  and  why  does  it  maJer  

32  

Page 33: Merging micrservices architecture with SOA Practices

Contact  us  !