Published on September 17, 2014
Merging microservices architecture with SOA prac9ces Chris Haddad VP Pla&orm Evangelism 15 September 2014
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 View slide
Service Success – Extend Legacy Reach 4 View slide
Service Success – Extend Business Reach
Service Success – Useful Service Blocks 6 Customer Account Inventory Product Payment Order Invoice Fulfillment
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/
Common Service Angst
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
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
Can we MicroSize SOA? 11
Be Like Mike! – aka NetFlix 12
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/
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
Microservices Scope ๏ Coarse Grained, Atomic, Business Capability ๏ Example ๏ Customer Profile ๏ Product Catalogue ๏ Shopping Cart ๏ Account Ac9vity ๏ Ra9ngs ๏ Recommenda9ons / Reviews 15
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
31 Accelerate Your IT Business Strategy with WSO2 Services
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
Contact us !
Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...
In this presentation we will describe our experience developing with a highly dyna...
Presentation to the LITA Forum 7th November 2014 Albuquerque, NM
Un recorrido por los cambios que nos generará el wearabletech en el futuro
Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...
Architecture Soa. Articles, ... Enterprise Integration, Cloud, SOA, EAI, IT Mgmt Practices. ... BPM Solution Architecture at IBM Singapore Past SOA & ...
... 50 offices by merging with Toowoomba’s leading real estate ... Merging micrservices architecture with SOA Practices . 3,047 Views. Kmax. Merging ...
... whether this is just Service Oriented Architecture (SOA) ... practices are becoming ... start with a microservices architecture.