merging microservices architecture with soa practices

Post on 14-Jul-2015

486 Views

Category:

Internet

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

VP Platform EvangelismChris Haddad

Merging microservices architecture

with SOA practices

15 September 2014

2

About the Presenter•Chris Haddad

๏ VP Platform 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 portfolio 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

Agenda

•Service Success and Service Angst

• Are microservices the answer?

•Microservice Mindset

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

• What DevOps practices overcome microservice deployment roadblocks

• When microservices create fragile instead of antifragile building blocks

3

Service Success – Extend Legacy Reach

4

Service Success – Extend Business Reach

Service Success – Useful Service Blocks

6

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 Anti-Patterns Prevail?Symptoms

๏Isolation, Uniqueness, Duplication

๏Tight Coupling and Build Again

Cause

๏Lack of Trust - Not Invented Here [NIH]

๏Shared Service Invisibility

๏ Teams do not know about a service

๏ Non-functional and functional requirements are not well documented

9

Tired of Big SOA?๏ Set up a cross-functional SOA Working Group

๏ Develop a SOA Adoption Plan

๏ Define Target Service Portfolio

๏ 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 Practices

๏ Institute SOA Governance Processes

๏ Establish New Incentives that Reward Good Behavior

๏ Identify Candidate Projects

๏ Establish Priorities

๏ Reassess Your Software 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 software applications as suites of independently deployable services.”

Common Characteristics

๏organization around business capability

๏automated deployment

๏intelligence in the endpoints

๏decentralized control of languages and data

Source: Martin Fowler http://martinfowler.com/articles/microservices.html

14

Microservices Scope๏ Coarse Grained, Atomic, Business Capability

๏ Example

๏ Customer Profile

๏ Product Catalogue

๏ Shopping Cart

๏ Account Activity

๏ Ratings

๏ Recommendations / Reviews

15

SOA == Microservices๏ Services expose a business capability

๏ Factor applications 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 Mediation

๏Not prescriptive on the back-end implementation pattern

17

Micro-services

๏Services Deployed at the Edge

๏Teams aligned with Business Units

๏Dumb Infrastructure

๏Prescribes back-end implementation pattern

“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, routing, linking data)

๏ How to micro-size a business capability (granularity, user experience composition)

๏ 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 Evolution

๏ Agility, Creative Experimentation, and Dynamic Composition

๏ Silos are good (if Micro-serviced)

๏ Containerization 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 practices overcome microservice deployment roadblocks

•When microservices create fragile instead of antifragile building blocks

20

DevOps PracticesMicroservices Pre-requisites

๏ Business Domain Responsibility Decomposition

๏ User Interface Integration

๏ Communication 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 http://www.infoq.com/presentations/Breaking-the-Monolith

21

DevOpS PatternsLoosely couple

๏ Bounded Context

๏ Tolerant Reader

๏ Consumer driven Contracts

๏ Ubiquitous Language

22

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

DevOpS PatternsLoosely 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 practices overcome microservice deployment roadblocks

•When microservices create fragile instead of antifragile building blocks

24

Fragility and Anti-Fragility“Anti-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 Anti-Fragility“Anti-fragility does not merely withstand a shock but actually improves because of it.”

Achieve High Availability in Distributed Systems through:

๏Redundancy

๏Failover

Traditional Service way

๏ Dedicated active-active, active-passive instances

Micro-services way

๏ Dynamic instance provisioning, graceful degradation26

Fragility and Anti-Fragility๏ Redundancy Strategies

๏ Clustering – maintain session state

๏ Service Farms – identical active nodes

๏ Infrastructure

๏ Load Balancers – route to available nodes

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

27

Fragility and Anti-Fragility๏ Failover Strategies

๏ Load Balancers – route to available nodes

๏ Watchdog Health Monitors - identify break points

๏ Circuit breakers [https://github.com/Netflix/Hystrix ]

๏ Infrastructure

๏ Intelligent Content Routing

๏ Topics / Queues

๏ Management Scripts – restart service instances

๏ PaaS Service Management

28

Start Small

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

๏ Identify relationship between services and business capabilities

๏ Build a top-down and bottoms-up data model

๏ Work with your Enterprise Architecture Team

29

SOA & Microservices Reconciliation๏ When to create services

๏ Create a service when sharing a business capability

๏ When to create APIs

๏ Sharing a service outside a domain of control

๏ Targeting the widest possible reach and consumption

๏ Offering the service across native web infrastructure

๏ Maximizing asymmetric evolution between service clients, interface, and implementation.

๏ When to create and use microservices

๏ Building an application crossing domains

๏ Rationalizing and consolidating your SOA portfolio

30

31

Accelerate Your IT Business Strategy with WSO2 Services

top related