+ All Categories
Home > Technology > Microservices and SOA

Microservices and SOA

Date post: 16-Apr-2017
Category:
Upload: capgemini
View: 2,461 times
Download: 2 times
Share this document with a friend
33
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Microservices and SOA CON7364 Luis Weir Oracle Ace Director Principal, Capgemini Robert Wunderlich Sr. Principal Product Manager September 22, 2016
Transcript
Page 1: Microservices and SOA

Copyright©2016, Oracleand/oritsaffiliates.Allrightsreserved.|

MicroservicesandSOACON7364

LuisWeirOracleAceDirectorPrincipal,Capgemini

RobertWunderlichSr.PrincipalProductManager

September22,2016

Page 2: Microservices and SOA

3Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

Table of Contents

What is a Microservice1

Microservices vs. SOA2

Reference Architecture3

Use Cases4

Page 3: Microservices and SOA

Introduction

Page 4: Microservices and SOA

5Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

Resume

I am very passionate about technology. I have be the lead authored of two books (Oracle SOA Governance 11g Implementation and Oracle API Management 12cImplementation), I am a regular blogger and speaker in major conferences and events. A well-known industry expert especially when it comes to Oracle middlewaretechnologies I am also an OTN certified SOA black belt.

Luis Weir Oracle Ace Director – Cloud Principal at Capgemini UKI am an Oracle Ace Director, Cloud Principal and a Thought Leader specialised in Oracle Fusion Middleware & Oracle PaaS. With more than 15years of experience implementing IT solutions across the globe, I have been exposed to a wide wide variety of business problems many of whichI’ve helped solved by adopting SOA architectural styles such as traditional SOA, API management and now Microservices. My current focus is inassisting organisations define and implement solutions and strategies that can help them realise the benefits that such technologies have to offer.

2nd Place1st OTN Cloud

HackathonJune, 2016

CloudContribution Award

SOA CommunityMarch, 2016

Latest Media:§ Oracle Magazine May/June 2016

(http://bit.ly/1RTCAU3)§ Systematic Approach for Migrating to Oracle Cloud

SaaS (http://bit.ly/1Xr6acs)§ Oracle Magazine Jan/Feb 2016 (http://ora.cl/Vhh)§ API Management Implementation

(http://ora.cl/Gcw)§ A Word About Microservices and SOA

(http://bit.ly/25Dk5go)

Page 5: Microservices and SOA

What is a MicroserviceThe three aspects of Microservices according to me!!

Page 6: Microservices and SOA

7Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

What is a Microservice?

Functional decomposition of systems into manageable and independently

deployable components, Microservice Architectures by Dr. Andreas Schroeder

(http://bit.ly/1TOGZK8)

“Loosely coupled service oriented architecture with bounded context”,– Adrian Cockcroft, April 2015

Page 7: Microservices and SOA

8Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

The three aspects of Microservices Architecture (according to me!)

OrganisationalTechnical

Architectural

Page 8: Microservices and SOA

9Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

Technical

Deployed independentlyRun on its own process

Scales independentlyIsolates faults

Is stateless Owns its data

Microservice

Page 9: Microservices and SOA

10Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

Architectural

Microservice

Single responsibilityBounded context

ChoreographedAPI gateways

Polyglot Smart endpoint anddump pipe

Page 10: Microservices and SOA

11Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

You build it you run it

Organisational

Microservice

Small teamsTeams organized around business capabilities

Products not projects

Culture of automation Decentralised governance

Page 11: Microservices and SOA

Microservice vs. SOAKey differences and communalities

Page 12: Microservices and SOA

13Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

Inspiration from Martin Fowler’s Microservices presentation at GOTO conference, Berlin November 2014 (minute 14)https://www.youtube.com/watch?v=wgdBVIX9ifA

Microservices vs SOA

“The value of the term microservices is that it allows to put a label on a useful subset of the SOA terminology”, Martin Fowler (minute 14), GOTO conference, Berlin November 2014

SOATypically adopted to deliver horizontal

integrations

TraditionalSOA

(i.e. AIA)

Best for vertical integrations

Not for integration.

Best for building modern systems

APIManagement

MicroservicesArchitecture

Wrong comparison… The difference lies in the realisation style to implement SOA

Page 13: Microservices and SOA

14Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

Microservices vs SOA – Technical Stack

Modern Monolith

Any Hardware

Hardware Resources

Host OS

Hypervisor (type 1 or 2)

Guest OS (VMs)

Bin/Libs (MREs, Interpreters, etc)

Application Server

Application (ie. ESB)

Services

Container Engine

Relational Database

Legacy Monolith

Mainframe (ie IBM System Z, S/360)

Storage(ie. DB2, IMS/DB)

Hypervisor (ie. PR/SM –Type 1)

Hardware Resources(ie. DADB, IDMS,IEDN)

Operating System(ie. z/OS, z/VSE)

Batch Services(ie JCL,JES,3rd p.)

Application Services (ie. CICS)

Microservice Architecture

Any Hardware

Hardware Resources

Host OS

Guest OS (VMs)

Scala Java

Ruby

Node

Jolie

Services

Container Engine

Bin/Libs

Bin/LibsBin/LibsBin/Libs

Container EngineBin/LibsHypervisor (type 1 or 2)

Mongo

Cassandra

Oracle HBase

Neo4j

Page 14: Microservices and SOA

15Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

Architectural

Pattern Traditional SOA MSAMonolith pattern (http://bit.ly/1Gjr2Y0) Yes NoPolyglot Programming & Persistence(http://bit.ly/18BvDIj & http://bit.ly/1XYiak2)

Not traditionally (use of Suites) Yes

API gateway pattern (http://bit.ly/1WTyNLJ) Yes YesOrchestration (http://bit.ly/1U0SWil) Yes NoChoreography (http://bit.ly/1ssALZQ) No YesEvent Collaboration (http://bit.ly/25Dk7oE) Yes YesCanonical Schema (http://bit.ly/1r6KkfK) Very common NoSchema centralization (http://bit.ly/1sVlqkc) Very common NoDecouple Contract (http://bit.ly/1O8mVpm) Yes Could be….Bounded Context (http://bit.ly/1o7AK8B) Some times YesUbiquitous Language (http://bit.ly/1c8nXQe) Some times YesBulkhead (http://bit.ly/1c8nXQe) Not really… YesTolerant Reader (http://bit.ly/1aa4mr9) Some times YesClient-side Service Discovery(http://bit.ly/1OunUyq)

Initially only (service registry) Recommended

Server-side Service Discovery(http://bit.ly/1X3RmzA)

Yes Yes

ESB Pattern (http://bit.ly/1ZlSKeT) Yes Across bounded contexts (dump pipe)

Page 15: Microservices and SOA

16Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

Choreography vs Orchestration – Which one is which?

Page 16: Microservices and SOA

17Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

Bounded Context

“Gather together those things that change for the same reason, and separate those things that change for different reasons” – The single responsibility principle by Robert C. Martin, November 2009, http://bit.ly/1VDgw79

“Domain driven design (DDD) divides up a large system into Bounded Contexts, each of which can have a unified model –essentially a way of structuring Multiple Canonical Models.”

Opportunity

PipelineTerritory

Customer

Product

Customer

Product

Ticket

Defect

ProductVersion

Sales Person

Sales Context Support Context

Use Bounded Context to Separate Concerns

Bounded context by Martin Follower, January 2014http://martinfowler.com/bliki/BoundedContext.html

Page 17: Microservices and SOA

18Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

How to eat the Elephant?

One piece a the time!Understand the problem. Slice and dice your elephant by defining boundaries in the business capabilities. Modernise one piece at the time. Starting small

Replenishm

ent O

rders

SalesOrders

Logistics

Tracking

Page 18: Microservices and SOA

19Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

Recommend

Domain Driven Design & Microservices by Eric Evans

https://www.youtube.com/watch?v=yPvef9R3k-M

Goto Berlin, Nov 2014

Principles of MicroservicesBy Sam Newman

https://www.youtube.com/watch?v=PFQnNFe27kU

Devoxx Belgium, Nov 2015

Page 19: Microservices and SOA

20Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

Organisational

Traditional Operations Model

Development and support teams organized by technologies resulting in siloes(Conway’s law in action)

SOA

Supp

ort

Team

DB

Supp

ort

Team

UI

Supp

ort

team

UIDev Team

DatabaseDev Teams

SOADev Team

Proj

ect T

eam

s

ComsGaps

MSA Operations Model

Multi-disciplinary [small] teams organized by business capability resulting in modular systems

CustomerUI

DBMW

OrdersUI

DBMW

ItemsUI

DBMW

ShipmentUI

DBMW

DevOps / Continuous Delivery

CustomerMicroservice

OrdersMicroservice

ItemsMicroservice

ShipmentMicroservice

Page 20: Microservices and SOA

21Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

Recommend

Modeling Microservices at Spotify with Petter Mahlen

http://tinyurl.com/msaspotify

At a microservices talk in March in Sweden, Petter Mahlen, Backend Infrastructure Engineer at Spotify, spoke to a packed house at Jfokusabout microservices.

Page 21: Microservices and SOA

Reference ArchitectureA reference architecture suitable for SOA 2.0:Microservices, API Management and Integration

Page 22: Microservices and SOA

23Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

SOA 2.0 Reference Architecture

SYSTEMS OF ENGAGEMENT

SaaS

API Applications

CX HCM ERP EPM Legacy, etc

Business APIs

Single Purpose APIs

Special Purpose APIs Presentation APIs Partner [B2B] APIsPublic [Consumer] APIs

Microservices

SYSTEMS OF RECORDS SYSTEMS OF INNOVATION

SYSTEMS O

FDIFFERENTIATIO

N

$

API

Message Pipe

Page 23: Microservices and SOA

24Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

SOA 2.0 Capability Model

Message Pipe

MicroservicesAPI Applications

Single Purpose APIs

Business APIs

AuthN/AuthZ/API Key Validation Policy Enforcement HTTP Routing Calls Aggregation Light Transformation

Light Scripting In-memory Cache Rate Limiting/Throttling Streaming REST/SOAP Conversions

System AuthN/AuthZ Connectivity Adapters Connection & Session Management

Data Transformation Complex Orchestrations & Logic

Protocol/Transport Conversions

Federated AuthN/AuthZ API Key Validation Call Aggregation Tailored Contracts Thread Protection

Thread Protection Client Backend Logic Scripting Platform/Backend APIs Push Nots/Websockets Polyglot Consumer SDKs

Polyglot Programming Polyglot Persistency Single Responsibility

Choreography Stack Independence Auto Scaling

Message routing Light transformation Reliable Messaging Push Listener Queuing/De-queuing

Page 24: Microservices and SOA

25Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

API Applications

SOA 2.0 In the Oracle Cloud PaaS

Microservices

Message Pipe

Single Purpose APIs

Business APIs

Java CloudSOA Cloud App Container & Container Cloud

Java Cloud App Container CloudMobile Cloud

API Platform Cloud

API Platform Cloud

Integration Cloud Messaging Cloud

DB and NoSQL Clouds

Page 25: Microservices and SOA

Use CaseModern application based no Microservice Architecture with integration to on-premises legacy systems for synchronization

Page 26: Microservices and SOA

27Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

Conceptual Solution Architecture

Order & FulfillmentDomain

Customer RelationsDomain

ERPDomain(P2C, R2C,HR, GL,Billing, etc.)

API Gateway(s)

MicroserviceArchitecture

MicroserviceArchitecture

Message Pipe

Mobile Apps

Adapter

Adapter

Contact Customer

Shipment

Order Product

Web Apps Applications

AsyncCommunication

SyncCommunication Managed API Microservice Monolith ServiceChoreographyBounded Context

Page 27: Microservices and SOA

28Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

Connectivity Agent

Modern Application in Oracle PaaS

Frontend Application

Application Container

Cloud PaaS

API Gateway

API Platform

Business API

Validate API-Key

Limits & throttleUser Authn Route Respond

Integration Flows`

Integration Cloud

Dequeue ConnectTransform

Customer Data Hub

PLSQL

DB Adapter

On-premises

Microservice

Container Cloud

Node.JS Container

Main Node Application

Connectivity Modules

Microservice Storage

NoSQL Cloud

JSON Objects

https://xxx

1

HTML5/JS

2

[PUT] {json}

9

Integration Flows

Messaging Cloud

REST API Queue

3

4

7

{json}

http 200

{json ack}

{json ack}

{json}

{json}

{json}http 200

56

10

11

12 sqlnet

https§ Registers agent§ Opens connection

https

8

1) User access URL and renders page

2) User performs action in client side (i.e.. Updatepersonal details) which triggers an API [PUT] request

3) A customer business API resource is invoked i.e.. [PUT]/ customers/{person id}. The person update details are passed inthe HTTP body as a JSON. API key and user token are also passed

4) Request is validated (key, user token), policies applied and if successful request PUT request is routed to the relevant customer microservice endpoint

5, 6, 7) The microservice (implemented in Node.JS) executes the business logic which results in updating the customer personal details JSON object in the NoSQL database and also triggering an update event by calling the messaging cloud API. A HTTP 200 response is send back if all goes OK

8, 9) A HTTP 200 response is send back with a small JSON object in the body with an acknowledgment (i.e. { status: “no errors” }

10, 11, 12) Once ICS detects a new message in the topic, it deques the message, transforms it and via the connectivity agent, calls the relevant PLSQL API to update the customer record

Frontend APIsNode Main App

Express ModulesOracle JET Modules

Page 28: Microservices and SOA

29Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

ConclusionWhy adopt Microservices?

Page 29: Microservices and SOA

30Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

Conclusion - Why adopt Microservices Architecture (I)

Modularity

Eat the elephant one piece at the time. Phased implementation approach. Starting small. Small teams owning full lifecycle of their piece (a business capability)

Segmented complexity

Separate a big problem into smaller problems handled by small teams ensures mental models are retained avoiding a “legacy in the making”

Ease of deployment/speed

Moving away from entire system deployment (i.e. “one line change to a million-line-long monolithic”). Deploy services independently and fast (i.e. with containers) and introduce automation (continuous delivery)

Page 30: Microservices and SOA

31Copyright © Capgemini and Sogeti 2016. All Rights Reserved

Microservices and SOA | Oracle OpenWorld | San Francisco | September 18-22, 2016

Conclusion - Why adopt Microservices Architecture (II)

Scalability & resilience

Scale independently and possibly on-demand. Bulkheads to isolate problems and avoid whole system failures (avoiding the cascade effect), Then purposely test resilience

Breaking organizational silos

Organize small teams based on business capabilities in order to avoid organizational silos being reflected in the way systems are built (Conway's law)

Enabling cloud transition

Building container-based modular applications whilst adhering to basic principles (like 12 factor, Lehman’s law, and the reactive manifesto) cloud adoption is a real option

Page 31: Microservices and SOA

The information contained in this presentation is proprietary.Copyright © 2016 Capgemini and Sogeti. All rights reserved.

Rightshore® is a trademark belonging to Capgemini.

www.capgemini.comwww.sogeti.com

About Capgemini and SogetiWith more than 180,000 people in over 40 countries, Capgemini is a global leader inconsulting, technology and outsourcing services. The Group reported 2015 globalrevenues of EUR 11.9 billion. Together with its clients, Capgemini creates and deliversbusiness, technology and digital solutions that fit their needs, enabling them to achieveinnovation and competitiveness. A deeply multicultural organization, Capgemini hasdeveloped its own way of working, the Collaborative Business Experience™, anddraws on Rightshore®, its worldwide delivery model.

Learn more about us at www.capgemini.com.

Sogeti is a leading provider of technology and software testing,specializing in Application, Infrastructure and Engineering Services.Sogeti offers cutting-edge solutions around Testing, BusinessIntelligence & Analytics, Mobile, Cloud and Cyber Security. Sogetibrings together more than 23,000 professionals in 15 countries and hasa strong local presence in over 100 locations in Europe, USA and India.Sogeti is a wholly-owned subsidiary of Cap Gemini S.A., listed on theParis Stock Exchange.

Page 32: Microservices and SOA

Copyright©2016, Oracleand/oritsaffiliates.Allrightsreserved.| Confidential– OracleInternal/Restricted/HighlyRestricted 33

Page 33: Microservices and SOA

Recommended