SlideShare a Scribd company logo
1 of 34
Download to read offline
Microservices, SOA and APIs:
Friends or Enemies?
Co-author:
Brian Petrini
(petrini@us.ibm.com)
Presenter/Author:
Kim Clark
(kim.clark@uk.ibm.com)
Evolving exposure of business function
Service Exposure
(enterprise)
Low Level APIs
(platform/package)
Application Integration
(application)
Service/API Exposure
(external known
consumers)
External API Exposure
(public)
Future?
Differentiating between web APIs, SOA, and integration
http://www.slideshare.net/kimjclark/ino-2739-impact2014integrationsoaapiv15
Related article on developerWorks
http://ibm.biz/ApiVsSoa
Digital Transformation Creates Multi-Modal IT
Digital
• Timeframe: Days/Weeks
• Scope: Strategic
• Sponsor: CMO
• Budget: $
• Complexity: Low
• Buying behavior: Self service
Enterprise
• Timeframe: Months/Years
• Scope: Strategic
• Sponsor: CIO
• Budget: $$$
• Complexity: High
• Buying behavior: Human engagement
Enterprise
IT
Digital
Teams
Explore, adopt, adapt with
rapid, iterative prototypes
Always on, always available
Security, control, and governance
Agenda
Defining microservices architecture
Is this different from Service Oriented Architecture (SOA)?
How is integration architecture changing? Where do
microservices fit in across the future landscape?
How to start an argument about microservices
3
What is microservices architecture
Monolithic
application
Microservices
application
Silo
Microservice
(component)
Microservice
(component)
Microservice
(component)
A microservice is a granular decoupled component within a broader application
Agility
Scalability
Resilience
Simplistically, microservices architecture is about breaking down large
silo applications into more manageable fully decoupled pieces
Microservice
component
Microservice
component
Microservice
component
Encapsulation is key. Related logic and data should remain together, and
which means drawing strong boundaries between microservices.
Monolithic application
Microservices application
Silo logic
Silo
data
Heterogeneous on the inside, homogeneous on the outside
Freedom to choose runtimes,
languages, datastores etc.
• Wise to encourage preferred
technologies.
• Convergence often happens
naturally.
Commonality is in the framework
in terms of:
• Interconnectivity
• Scalability
• Resilience
6
Microservices application
Microservice
(Node.js)
Microservice
(Java +
MongoDB)
Microservice
(Go +
CloudantDB)
Why Microservices?
Small scoped, independent, scalable components
Scaling
Elastic scalability
Workload orchestration
Agility
Faster iteration cycles
Bounded context (code and data)
Resilience
Reduced dependencies
Fail fast
7
Microservices: Why now? (technical standpoint)
• Internet/intranet/network maturity
• Lightweight runtimes (node.js, WAS Liberty etc.)
• Methods & tools (Agile, DevOps, TDD, CI, XP, Puppet, Chef…)
• Lightweight protocols (RESTful APIs, lightweight messaging)
• Simplified infrastructure
• OS virtualisation (hypervisors), containerisation (e.g. Docker),
infrastructure as a service (IaaS), workload virtualisation
(Kubernetes, Mesos, Spark…)
• Platform as a service
• Auto-scaling, workload management, SLA management,
messaging, caching, build management.
• Alternative data persistance models (NoSQL, MapReduce, BASE,
CQRS)
• Standardised code management (Github, …)
8
Microservice
component
Microservice
component
Microservice
component
WAS
LibertyNode.js
What that might look like in IBM technology?
(simplistic representation – NOT a reference architecture!)
Monolithic application
Microservices application
WAS ND
DB2
Mongo
Db
Cloudant
Cloudant
Node.js
IBM Bluemix
(PaaS)
Message
Hub
(Kafka)
JSON/
HTTP
Microservice
MicroserviceMicroservice
Microservice
Microservices inter-communication
Aim is decoupling for robustness
Messaging where possible
• Lightweight messaging
(e.g. AMQP, Kafka)
• Publish/subscribe
• Eventual consistency
Direct calls where necessary
Lightweight protocols
(e.g. JSON/HTTP)
• Load balancing/scaling via service
discovery
• Circuit breaker
• Caching
Microservices application
Microservice
Subscribe
JSON
/HTTP
Microservice
Microservice
Message
Hub
API
Microservice
Publish
API
JSON
/HTTP Publish
Service
Discovery
Application frameworks at the network level
Microservices simplify the
creation and maintenance of
applications by inheriting key non-
functional characteristics from
their environment.
Sounds familiar? Similar in
principle to application container
frameworks from the past (e.g.
JEE), but:
Different because
• Framework is agnostic to the
runtime/language used by
each microservice
• Microservices, and framework
components sit on the
network, rather than within an
application server Microservices application
Microservice
component
Microservice
component
Microservice
componentMicroservice
componentMicroservice
componentMicroservice
component
Framework provides
• Scaling
• Availability
• Caching
• Messaging
• Connectivity
• …and more
Note that from this perspective there is greater parity between microservices
architecture and application servers than there is with service oriented architecture11
Can everything become a microservice?
What about the things you can’t change?
• You can’t refactor all systems to microservices
• Most applications have an “if it ain’t broke, don’t fix it” policy
• Old systems may be unrealistic to re-engineer
• What if you can’t change the datastore?
• Are you doing microservices if your data remains in a silo?
• Can you manage without transactionality to the database?
• Will techniques like BASE, CQRS work?
• How do existing systems fit into a microservices architecture?
• How do you isolate yourself from their availability issues?
• What if they don’t scale as well as your microservices do?
12
Challenges with microservices
Automation
Automation is key to retaining agility: Test automation. Continuous integration and deployment
and more…
Managing and monitoring
How do you manage and monitor a vast network of microservices
Maintenance
Given the aim of freedom of language and runtime, will you have the breadth of skillsets to
maintain the microservices in the future.
Serialisation
Data has to get over the wire more often (however, serialisation has advanced massively in
recent years)
Latency
A request/response chained down a set of microservices must incur some extra latency from
network hops and serialisation.
Data sharing
Not all data can be split into a grid, some things are shared.
Real-time dependencies
What is the combined availability of all dependencies
Microservices calling other microservices synchronously need careful consideration.
Tends to creep, as one service built on top of another.
How does persistence work?
Pessimistic vs. Optimistic
How handle shared objects
Relational/NoSQL
ACID/BASE/CQRS/Event Sourcing?
13
Handling distributed objects
First law of distributed objects: Don’t distribute your objects!
http://martinfowler.com/bliki/FirstLaw.html
Microservices and the First Law of Distributed Objects
http://martinfowler.com/articles/distributed-objects-
microservices.html
Don’t go too granular too soon.
It is harder to gather up than to break out.
14
Are we really doing microservices?
Martin Fowler/James Lewis
1. Componentization
2. Organized around Business
Capabilities
3. Products not Projects
4. Smart endpoints and dumb pipes
5. Decentralized Governance
6. Decentralized Data Management
7. Infrastructure Automation
8. Design for failure
9. Evolutionary Design
http://martinfowler.com/articles/microser
vices.html
15
12 factor apps
I. Codebase
II. Dependencies
III. Config
IV. Backing Services
V. Build, release, run
VI. Processes
VII. Port binding
VIII. Concurrency
IX. Disposability
X. Dev/prod parity
XI. Logs
XII. Admin processes
http://12factor.net
Are we really doing microservices or just aligning with some of the
microservices principles?
Consider the adoption paths of SOA, XP, agile, devops etc. These often come
with an “all or nothing” message, but can you take on the whole package?
Agenda
Defining microservices architecture
Is this different from Service Oriented Architecture (SOA)?
How is integration architecture changing? Where do
microservices fit in across the future landscape?
How to start an argument about microservices
16
Microservice
component
Common misconception resulting from the term “microservice”
Monolithic application Microservices application
Exposed services/APIs
Microservice
component
Microservice
component
Exposed services/APIs
Silo
component
Microservices are just more fine grained web services
APIs are microservices
“micro” refers to the granularity of the components,
not the granularity of the exposed interfaces
x 1 x 3
x 4x 4
Is “microservices architecture” is really
“micro-component architecture”?
Application
SOA relates to enterprise service exposure *
Application ApplicationApplication
Service oriented architecture (SOA)
and microservices architecture relate to different scopes
Microservice
application
µService
µServiceµService
µService
Microservices relate to
application architecture
* this simple distinction can be contentious depending on your definition of SOA
“Microservices, SOA, and APIs: Friends or enemies?”
http://ibm.biz/MicroservicesVsSoa
What was SOA really about?
Integration or Components?
Opinion 1: “SOA is about how to achieve
integration often to aging complex back end
systems in order to expose services”
In this case SOA is primarily a connectivity
problem with little relationship to
microservices architecture and certainly at a
different scope.
Opinion 2: “SOA is about re-factoring your IT
landscape into components that better align with
the business needs and expose the services that it
requires”
Here the connectivity problem is pushed down to
the applications and the focus of SOA is on
realignment of to the business needs. The service
components look more like applications, and we
might consider microservices as “more granular
SOA”, or even “SOA done right”.
System of
Record
Integration Hub
Adapter Adapter
Exposure Gateway
Exposed Services/APIs
System of
Record
System of
Record
Adapter
Exposed Services/APIs
System of
Record
Adapter
Service
Component
Service
Component
Service
Component
Exposure Gateway
However, SOA, despite it’s broader intent, resulted mostly in interface related technology (e.g. WS-*, ESBs).
Microservices architecture is more specific on how components should be implemented, and benefits from more
real examples of frameworks, and platforms in this area than SOA did at an equivalent time in it’s history. 19
What does a large scale integration landscape look like
Systems of engagement
• Modern languages/runtimes
• Agile
• Simple modern connectivity
Systems of record
• Older technology
• Harder to change
• Harder to integrate with
Integration Hub
Integration Hub
Adapter Adapter
“Systems of
Engagement”
Applications
Exposure Gateway (internal)
“Systems of
Record”
Applications
Mature large enterprise
(simplified)
Exposure Gateway (external)
Adapter Adapter
“Hub and Spoke”
integration
“Enterprise
Service Bus?”
“Web API
Gateway”
Why such split opinions on microservices vs SOA?
21
Integration Hub
Integration Hub
Adapter Adapter
Engagement
Applications
SaaS
Application
BusinessPartner
Systemsof
Record
Business
Partner
Exposure Gateway (external)
Mature large enterprise
Microservices are just one style of application
Exposing services is an integration and data challenge
Green field online start-up
Much of landscape could be microservice based
The landscape is as (micro)service oriented architecture
Exposure Gateway (external)
Microservice
application
µService
µServiceµService
µService
Exposure Gateway (internal)
µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
EnterpriseBoundary
EnterpriseBoundary
Adapter Adapter
Where do we typically see microservices in large organisations today?
22
Systems
ofRecord
Integration Hub
Integration Hub
Adapter Adapter
Engagement
Applications
Microservice
applications
SaaSApplications
(external)
Adapter
Externally Exposed Services/APIs
Exposure Gateway (internal)
Exposure Gateway (external)
BusinessPartners
Mapping to example IBM products
23
SystemsofRecord
(Internalcoreapplications)
Integration Hub
Integration Hub
Adapter Adapter
Engagement
Applications
Microservice
applications
SaaSApplications
(external)
Adapter
Externally Exposed Services/APIs
Exposure Gateway (internal)
Exposure Gateway (external)
BusinessPartners
WebSphere
Application
Server (WAS)
IBM API Connect or
IBM Integration Bus
IBM Integration Bus
IBM Integration Bus
WAS Liberty,
Node.js, MongoDb,
Cloudant etc.
on IBM Bluemix
IBM API Connect +
IBM DataPower
Gateway
IBM API Connect
IBM MQ feeding
events IBM
Message Hub in
Bluemix, or IIB
talking directly to
Kafka APIs
Where might we see microservice principles in use going forward?
24
Systems
ofRecord
Integration Hub
Integration Hub
Adapter Adapter
Engagement
Applications
Microservice
applications
SaaSApplications
(external)
Adapter
Externally Exposed Services/APIs
Exposure Gateway (internal)
Exposure Gateway (external)
BusinessPartners
Agenda
Defining microservices architecture
Is this different from Service Oriented Architecture (SOA)?
How is integration architecture changing? Where do
microservices fit in across the future landscape?
How to start an argument about microservices
25
Integration Domain
Enterprise Ownership Boundary
The Integration Domain of the Hybrid Enterprise
Dedicated CloudPublic CloudSaaS
Customers Business Partners
Appl. Appl.Appl.Appl.Appl.Appl.
Appl. Appl. Appl. Appl.
On-Premise
Appl.Appl. Appl.Appl. Appl.
Local Cloud
Appl. Appl.
ApplicationApplication
Decentralising synchronous integration
Engagement
Applications
System
of
Record
Integration
Public API
Enterprise API
API Gateway
System
of RecordSystem
of
Record
Integration
EnterpriseBoundary
Exposure Gateway (external)
SaaS
Application
Business
Partner
In a perfect world…
• Application teams self-
administer exposure of their
own APIs
• Application teams handle their
own integration needs
• Access to external APIs is
governed using the same
mechanisms used to govern
access to internal APIs.
• Application logic is firmly seated
with the application teams
• API monitoring/diagnostics
would be gathered consistently
across the organisation
• Security models would be
implemented more consistently
ApplicationApplication
So where is the ESB now?
Where might we find microservices here?
What about event driven integration?
What is an application boundary
in an microservices world?
Similar to application boundaries
today because
• Group related functionality
• Enable more coarse grained
ownership and responsibility (in
addition to full ownership at the
microservice level)
Different because
• Application sub-components
(microservices) are truly
independent.
• Application boundaries can be
easily changed – it’s primarily
about the right ownership
• Application boundaries can spread
across network boundaries (e.g.
between clouds)…but should they!
28
µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
µService
Microservice
component
Inter-microservice vs. inter-application communication
Microservices
application
Microservice
component
Microservice
component
Inter-microservice communication
• Lightweight protocols: HTTP,
application messaging
• Runtime component registry
• Client-side load balancing and circuit
breaker patterns
Microservices
application
Exposure Gateway
Inter-application communication
• Enterprise protocols: Managed API
gateways, enterprise messaging
• Design time developer portals
• Gateway load balancing and throttling
JSON/HTTP RESTful communication styles may
be present in both types of communication, but
their implementation may be radically different.
JSON/HTTP
Agenda
Defining microservices architecture
Is this different from Service Oriented Architecture (SOA)?
How is integration architecture changing? Where do
microservices fit in across the future landscape?
How to start an argument about microservices
30
Caution with comparisons
(or “how to start an argument”!)
Comparisons that make some level of sense
Microservice architecture vs. Service oriented architecture
Trying to achieve many of the same things (enable the creation of re-usable business
functions as isolated components), but at a very different scale. SOA evolved to become
focused on the enterprise scale (though some would say that wasn’t the original intent).
Microservices, is primarily at the application scale.
Microservice component vs. Service component
Both describe the actual implementation of a business function. They differ primarily in
granularity, but also arguably in maintainability, agility etc.
Confusing comparisons
Microservices vs. SOA
Microservices are components. SOA is an architecture. What you’re probably trying to
compare is Microservices Architecture with SOA (see above).
Microservices vs. APIs
APIs are a interface. A mechanism for exposing business function. Microservices are the
component architecture used to implement those business functions. It makes no sense to
directly compare them.
Microservice vs. Service
“Service” means different things to different people. Needs to be qualified. Service
Implementation? Service exposure? Service definition? The same could be said for
microservice. Need to be specific.
31
Questions?
32
http://www.slideshare.net/kimjclark/presentations
https://www.linkedin.com/in/kimjulianclark
Thank You

More Related Content

What's hot

What's hot (20)

MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Deep-dive into Microservice Outer Architecture
Deep-dive into Microservice Outer ArchitectureDeep-dive into Microservice Outer Architecture
Deep-dive into Microservice Outer Architecture
 
Microservices approach for Websphere commerce
Microservices approach for Websphere commerceMicroservices approach for Websphere commerce
Microservices approach for Websphere commerce
 
TIBCO Latest Interview Questions with Answers by Garuda Trainings
TIBCO Latest Interview Questions with Answers by Garuda TrainingsTIBCO Latest Interview Questions with Answers by Garuda Trainings
TIBCO Latest Interview Questions with Answers by Garuda Trainings
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principles
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Microservice Architecture 101
Microservice Architecture 101Microservice Architecture 101
Microservice Architecture 101
 
Microservices with .Net - NDC Sydney, 2016
Microservices with .Net - NDC Sydney, 2016Microservices with .Net - NDC Sydney, 2016
Microservices with .Net - NDC Sydney, 2016
 
A Decade of Microservices
A Decade of MicroservicesA Decade of Microservices
A Decade of Microservices
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Lightweight ESB Alternatives
Lightweight ESB AlternativesLightweight ESB Alternatives
Lightweight ESB Alternatives
 
DEVNET-1184 Microservices Patterns
DEVNET-1184	Microservices PatternsDEVNET-1184	Microservices Patterns
DEVNET-1184 Microservices Patterns
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Microservices
MicroservicesMicroservices
Microservices
 
Microservice architecture-api-gateway-considerations
Microservice architecture-api-gateway-considerationsMicroservice architecture-api-gateway-considerations
Microservice architecture-api-gateway-considerations
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
 
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
 

Viewers also liked

Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocity
Sam Newman
 

Viewers also liked (20)

Hybrid integration reference architecture
Hybrid integration reference architectureHybrid integration reference architecture
Hybrid integration reference architecture
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocity
 
Dockercon State of the Art in Microservices
Dockercon State of the Art in MicroservicesDockercon State of the Art in Microservices
Dockercon State of the Art in Microservices
 
MicroServices at Netflix - challenges of scale
MicroServices at Netflix - challenges of scaleMicroServices at Netflix - challenges of scale
MicroServices at Netflix - challenges of scale
 
Hia 1691-using iib-to_support_api_economy
Hia 1691-using iib-to_support_api_economyHia 1691-using iib-to_support_api_economy
Hia 1691-using iib-to_support_api_economy
 
What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...
 
Microservices Workshop All Topics Deck 2016
Microservices Workshop All Topics Deck 2016Microservices Workshop All Topics Deck 2016
Microservices Workshop All Topics Deck 2016
 
WhatsNewIBMIntegrationBus10FP4
WhatsNewIBMIntegrationBus10FP4WhatsNewIBMIntegrationBus10FP4
WhatsNewIBMIntegrationBus10FP4
 
HAM 1032 Combining the Power of IBM API Management and IBM Integration Bus
HAM 1032 Combining the Power of IBM API Management and IBM Integration BusHAM 1032 Combining the Power of IBM API Management and IBM Integration Bus
HAM 1032 Combining the Power of IBM API Management and IBM Integration Bus
 
Hia 1689-techinical introduction-to_iib
Hia 1689-techinical introduction-to_iibHia 1689-techinical introduction-to_iib
Hia 1689-techinical introduction-to_iib
 
MicroService Architecture
MicroService ArchitectureMicroService Architecture
MicroService Architecture
 
Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...
 
ConnectorsForIntegration
ConnectorsForIntegrationConnectorsForIntegration
ConnectorsForIntegration
 
Hia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iibHia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iib
 
Real-world Microservices: Lessons from the Front Line - Zhamak Delghani, Thou...
Real-world Microservices: Lessons from the Front Line - Zhamak Delghani, Thou...Real-world Microservices: Lessons from the Front Line - Zhamak Delghani, Thou...
Real-world Microservices: Lessons from the Front Line - Zhamak Delghani, Thou...
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright Future
 
Microservices Done Right: Key Ingredients for Microservices Success
Microservices Done Right: Key Ingredients for Microservices SuccessMicroservices Done Right: Key Ingredients for Microservices Success
Microservices Done Right: Key Ingredients for Microservices Success
 
#1922 rest-push2 ap-im-v6
#1922 rest-push2 ap-im-v6#1922 rest-push2 ap-im-v6
#1922 rest-push2 ap-im-v6
 
Building microservices with Scala, functional domain models and Spring Boot
Building microservices with Scala, functional domain models and Spring BootBuilding microservices with Scala, functional domain models and Spring Boot
Building microservices with Scala, functional domain models and Spring Boot
 
The Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoftThe Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoft
 

Similar to Microservices: Where do they fit within a rapidly evolving integration architecture?

Similar to Microservices: Where do they fit within a rapidly evolving integration architecture? (20)

Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 
3298 microservices and how they relate to esb api and messaging - inter con...
3298   microservices and how they relate to esb api and messaging - inter con...3298   microservices and how they relate to esb api and messaging - inter con...
3298 microservices and how they relate to esb api and messaging - inter con...
 
[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises
 
CWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der walCWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der wal
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
Best Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with MicroservicesBest Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with Microservices
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing Strategies
 
Microservices Patterns with GoldenGate
Microservices Patterns with GoldenGateMicroservices Patterns with GoldenGate
Microservices Patterns with GoldenGate
 
The elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioThe elegant way of implementing microservices with istio
The elegant way of implementing microservices with istio
 
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
 
Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018
 
Microsoft Microservices
Microsoft MicroservicesMicrosoft Microservices
Microsoft Microservices
 
#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?
 
Microservices Corporate Style
Microservices Corporate StyleMicroservices Corporate Style
Microservices Corporate Style
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern Launguage
 
Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyond
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and Kafka
 
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and MoreA Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
 
Microservices Design Principles.pdf
Microservices Design Principles.pdfMicroservices Design Principles.pdf
Microservices Design Principles.pdf
 
agile microservices @scaibo
agile microservices @scaiboagile microservices @scaibo
agile microservices @scaibo
 

More from Kim Clark

2008-2014 Integration Design - Course Summary for slideshare.pdf
2008-2014 Integration Design - Course Summary for slideshare.pdf2008-2014 Integration Design - Course Summary for slideshare.pdf
2008-2014 Integration Design - Course Summary for slideshare.pdf
Kim Clark
 

More from Kim Clark (16)

Cloud native defined
Cloud native definedCloud native defined
Cloud native defined
 
2008-2014 Integration Design - Course Summary for slideshare.pdf
2008-2014 Integration Design - Course Summary for slideshare.pdf2008-2014 Integration Design - Course Summary for slideshare.pdf
2008-2014 Integration Design - Course Summary for slideshare.pdf
 
Interface characteristics - Kim Clark and Brian Petrini
Interface characteristics - Kim Clark and Brian PetriniInterface characteristics - Kim Clark and Brian Petrini
Interface characteristics - Kim Clark and Brian Petrini
 
Implementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for IntegrationImplementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for Integration
 
Automating agile integration
Automating agile integrationAutomating agile integration
Automating agile integration
 
Cloud native integration
Cloud native integrationCloud native integration
Cloud native integration
 
The resurgence of event driven architecture
The resurgence of event driven architectureThe resurgence of event driven architecture
The resurgence of event driven architecture
 
Agile Integration eBook from 2018
Agile Integration eBook from 2018Agile Integration eBook from 2018
Agile Integration eBook from 2018
 
Convergence of Integration and Application Development
Convergence of Integration and Application DevelopmentConvergence of Integration and Application Development
Convergence of Integration and Application Development
 
Scaling Integration
Scaling IntegrationScaling Integration
Scaling Integration
 
The evolving story for Agile Integration Architecture in 2019
The evolving story for Agile Integration Architecture in 2019The evolving story for Agile Integration Architecture in 2019
The evolving story for Agile Integration Architecture in 2019
 
Agile integration architecture in relation to APIs and messaging
Agile integration architecture in relation to APIs and messagingAgile integration architecture in relation to APIs and messaging
Agile integration architecture in relation to APIs and messaging
 
Multi-cloud integration architecture
Multi-cloud integration architectureMulti-cloud integration architecture
Multi-cloud integration architecture
 
Agile Integration Architecture: A Containerized and Decentralized Approach to...
Agile Integration Architecture: A Containerized and Decentralized Approach to...Agile Integration Architecture: A Containerized and Decentralized Approach to...
Agile Integration Architecture: A Containerized and Decentralized Approach to...
 
Where can you use serverless?  How does it relate to APIs, integration and mi...
Where can you use serverless?  How does it relate to APIs, integration and mi...Where can you use serverless?  How does it relate to APIs, integration and mi...
Where can you use serverless?  How does it relate to APIs, integration and mi...
 
Building enterprise depth APIs with the IBM hybrid integration portfolio
Building enterprise depth APIs with the IBM hybrid integration portfolioBuilding enterprise depth APIs with the IBM hybrid integration portfolio
Building enterprise depth APIs with the IBM hybrid integration portfolio
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Microservices: Where do they fit within a rapidly evolving integration architecture?

  • 1. Microservices, SOA and APIs: Friends or Enemies? Co-author: Brian Petrini (petrini@us.ibm.com) Presenter/Author: Kim Clark (kim.clark@uk.ibm.com)
  • 2. Evolving exposure of business function Service Exposure (enterprise) Low Level APIs (platform/package) Application Integration (application) Service/API Exposure (external known consumers) External API Exposure (public) Future? Differentiating between web APIs, SOA, and integration http://www.slideshare.net/kimjclark/ino-2739-impact2014integrationsoaapiv15 Related article on developerWorks http://ibm.biz/ApiVsSoa
  • 3. Digital Transformation Creates Multi-Modal IT Digital • Timeframe: Days/Weeks • Scope: Strategic • Sponsor: CMO • Budget: $ • Complexity: Low • Buying behavior: Self service Enterprise • Timeframe: Months/Years • Scope: Strategic • Sponsor: CIO • Budget: $$$ • Complexity: High • Buying behavior: Human engagement Enterprise IT Digital Teams Explore, adopt, adapt with rapid, iterative prototypes Always on, always available Security, control, and governance
  • 4. Agenda Defining microservices architecture Is this different from Service Oriented Architecture (SOA)? How is integration architecture changing? Where do microservices fit in across the future landscape? How to start an argument about microservices 3
  • 5. What is microservices architecture Monolithic application Microservices application Silo Microservice (component) Microservice (component) Microservice (component) A microservice is a granular decoupled component within a broader application Agility Scalability Resilience Simplistically, microservices architecture is about breaking down large silo applications into more manageable fully decoupled pieces
  • 6. Microservice component Microservice component Microservice component Encapsulation is key. Related logic and data should remain together, and which means drawing strong boundaries between microservices. Monolithic application Microservices application Silo logic Silo data
  • 7. Heterogeneous on the inside, homogeneous on the outside Freedom to choose runtimes, languages, datastores etc. • Wise to encourage preferred technologies. • Convergence often happens naturally. Commonality is in the framework in terms of: • Interconnectivity • Scalability • Resilience 6 Microservices application Microservice (Node.js) Microservice (Java + MongoDB) Microservice (Go + CloudantDB)
  • 8. Why Microservices? Small scoped, independent, scalable components Scaling Elastic scalability Workload orchestration Agility Faster iteration cycles Bounded context (code and data) Resilience Reduced dependencies Fail fast 7
  • 9. Microservices: Why now? (technical standpoint) • Internet/intranet/network maturity • Lightweight runtimes (node.js, WAS Liberty etc.) • Methods & tools (Agile, DevOps, TDD, CI, XP, Puppet, Chef…) • Lightweight protocols (RESTful APIs, lightweight messaging) • Simplified infrastructure • OS virtualisation (hypervisors), containerisation (e.g. Docker), infrastructure as a service (IaaS), workload virtualisation (Kubernetes, Mesos, Spark…) • Platform as a service • Auto-scaling, workload management, SLA management, messaging, caching, build management. • Alternative data persistance models (NoSQL, MapReduce, BASE, CQRS) • Standardised code management (Github, …) 8
  • 10. Microservice component Microservice component Microservice component WAS LibertyNode.js What that might look like in IBM technology? (simplistic representation – NOT a reference architecture!) Monolithic application Microservices application WAS ND DB2 Mongo Db Cloudant Cloudant Node.js IBM Bluemix (PaaS) Message Hub (Kafka) JSON/ HTTP
  • 11. Microservice MicroserviceMicroservice Microservice Microservices inter-communication Aim is decoupling for robustness Messaging where possible • Lightweight messaging (e.g. AMQP, Kafka) • Publish/subscribe • Eventual consistency Direct calls where necessary Lightweight protocols (e.g. JSON/HTTP) • Load balancing/scaling via service discovery • Circuit breaker • Caching Microservices application Microservice Subscribe JSON /HTTP Microservice Microservice Message Hub API Microservice Publish API JSON /HTTP Publish Service Discovery
  • 12. Application frameworks at the network level Microservices simplify the creation and maintenance of applications by inheriting key non- functional characteristics from their environment. Sounds familiar? Similar in principle to application container frameworks from the past (e.g. JEE), but: Different because • Framework is agnostic to the runtime/language used by each microservice • Microservices, and framework components sit on the network, rather than within an application server Microservices application Microservice component Microservice component Microservice componentMicroservice componentMicroservice componentMicroservice component Framework provides • Scaling • Availability • Caching • Messaging • Connectivity • …and more Note that from this perspective there is greater parity between microservices architecture and application servers than there is with service oriented architecture11
  • 13. Can everything become a microservice? What about the things you can’t change? • You can’t refactor all systems to microservices • Most applications have an “if it ain’t broke, don’t fix it” policy • Old systems may be unrealistic to re-engineer • What if you can’t change the datastore? • Are you doing microservices if your data remains in a silo? • Can you manage without transactionality to the database? • Will techniques like BASE, CQRS work? • How do existing systems fit into a microservices architecture? • How do you isolate yourself from their availability issues? • What if they don’t scale as well as your microservices do? 12
  • 14. Challenges with microservices Automation Automation is key to retaining agility: Test automation. Continuous integration and deployment and more… Managing and monitoring How do you manage and monitor a vast network of microservices Maintenance Given the aim of freedom of language and runtime, will you have the breadth of skillsets to maintain the microservices in the future. Serialisation Data has to get over the wire more often (however, serialisation has advanced massively in recent years) Latency A request/response chained down a set of microservices must incur some extra latency from network hops and serialisation. Data sharing Not all data can be split into a grid, some things are shared. Real-time dependencies What is the combined availability of all dependencies Microservices calling other microservices synchronously need careful consideration. Tends to creep, as one service built on top of another. How does persistence work? Pessimistic vs. Optimistic How handle shared objects Relational/NoSQL ACID/BASE/CQRS/Event Sourcing? 13
  • 15. Handling distributed objects First law of distributed objects: Don’t distribute your objects! http://martinfowler.com/bliki/FirstLaw.html Microservices and the First Law of Distributed Objects http://martinfowler.com/articles/distributed-objects- microservices.html Don’t go too granular too soon. It is harder to gather up than to break out. 14
  • 16. Are we really doing microservices? Martin Fowler/James Lewis 1. Componentization 2. Organized around Business Capabilities 3. Products not Projects 4. Smart endpoints and dumb pipes 5. Decentralized Governance 6. Decentralized Data Management 7. Infrastructure Automation 8. Design for failure 9. Evolutionary Design http://martinfowler.com/articles/microser vices.html 15 12 factor apps I. Codebase II. Dependencies III. Config IV. Backing Services V. Build, release, run VI. Processes VII. Port binding VIII. Concurrency IX. Disposability X. Dev/prod parity XI. Logs XII. Admin processes http://12factor.net Are we really doing microservices or just aligning with some of the microservices principles? Consider the adoption paths of SOA, XP, agile, devops etc. These often come with an “all or nothing” message, but can you take on the whole package?
  • 17. Agenda Defining microservices architecture Is this different from Service Oriented Architecture (SOA)? How is integration architecture changing? Where do microservices fit in across the future landscape? How to start an argument about microservices 16
  • 18. Microservice component Common misconception resulting from the term “microservice” Monolithic application Microservices application Exposed services/APIs Microservice component Microservice component Exposed services/APIs Silo component Microservices are just more fine grained web services APIs are microservices “micro” refers to the granularity of the components, not the granularity of the exposed interfaces x 1 x 3 x 4x 4 Is “microservices architecture” is really “micro-component architecture”?
  • 19. Application SOA relates to enterprise service exposure * Application ApplicationApplication Service oriented architecture (SOA) and microservices architecture relate to different scopes Microservice application µService µServiceµService µService Microservices relate to application architecture * this simple distinction can be contentious depending on your definition of SOA “Microservices, SOA, and APIs: Friends or enemies?” http://ibm.biz/MicroservicesVsSoa
  • 20. What was SOA really about? Integration or Components? Opinion 1: “SOA is about how to achieve integration often to aging complex back end systems in order to expose services” In this case SOA is primarily a connectivity problem with little relationship to microservices architecture and certainly at a different scope. Opinion 2: “SOA is about re-factoring your IT landscape into components that better align with the business needs and expose the services that it requires” Here the connectivity problem is pushed down to the applications and the focus of SOA is on realignment of to the business needs. The service components look more like applications, and we might consider microservices as “more granular SOA”, or even “SOA done right”. System of Record Integration Hub Adapter Adapter Exposure Gateway Exposed Services/APIs System of Record System of Record Adapter Exposed Services/APIs System of Record Adapter Service Component Service Component Service Component Exposure Gateway However, SOA, despite it’s broader intent, resulted mostly in interface related technology (e.g. WS-*, ESBs). Microservices architecture is more specific on how components should be implemented, and benefits from more real examples of frameworks, and platforms in this area than SOA did at an equivalent time in it’s history. 19
  • 21. What does a large scale integration landscape look like Systems of engagement • Modern languages/runtimes • Agile • Simple modern connectivity Systems of record • Older technology • Harder to change • Harder to integrate with Integration Hub Integration Hub Adapter Adapter “Systems of Engagement” Applications Exposure Gateway (internal) “Systems of Record” Applications Mature large enterprise (simplified) Exposure Gateway (external) Adapter Adapter “Hub and Spoke” integration “Enterprise Service Bus?” “Web API Gateway”
  • 22. Why such split opinions on microservices vs SOA? 21 Integration Hub Integration Hub Adapter Adapter Engagement Applications SaaS Application BusinessPartner Systemsof Record Business Partner Exposure Gateway (external) Mature large enterprise Microservices are just one style of application Exposing services is an integration and data challenge Green field online start-up Much of landscape could be microservice based The landscape is as (micro)service oriented architecture Exposure Gateway (external) Microservice application µService µServiceµService µService Exposure Gateway (internal) µService µService µService µService µService µService µService µService µService µService µService EnterpriseBoundary EnterpriseBoundary Adapter Adapter
  • 23. Where do we typically see microservices in large organisations today? 22 Systems ofRecord Integration Hub Integration Hub Adapter Adapter Engagement Applications Microservice applications SaaSApplications (external) Adapter Externally Exposed Services/APIs Exposure Gateway (internal) Exposure Gateway (external) BusinessPartners
  • 24. Mapping to example IBM products 23 SystemsofRecord (Internalcoreapplications) Integration Hub Integration Hub Adapter Adapter Engagement Applications Microservice applications SaaSApplications (external) Adapter Externally Exposed Services/APIs Exposure Gateway (internal) Exposure Gateway (external) BusinessPartners WebSphere Application Server (WAS) IBM API Connect or IBM Integration Bus IBM Integration Bus IBM Integration Bus WAS Liberty, Node.js, MongoDb, Cloudant etc. on IBM Bluemix IBM API Connect + IBM DataPower Gateway IBM API Connect IBM MQ feeding events IBM Message Hub in Bluemix, or IIB talking directly to Kafka APIs
  • 25. Where might we see microservice principles in use going forward? 24 Systems ofRecord Integration Hub Integration Hub Adapter Adapter Engagement Applications Microservice applications SaaSApplications (external) Adapter Externally Exposed Services/APIs Exposure Gateway (internal) Exposure Gateway (external) BusinessPartners
  • 26. Agenda Defining microservices architecture Is this different from Service Oriented Architecture (SOA)? How is integration architecture changing? Where do microservices fit in across the future landscape? How to start an argument about microservices 25
  • 27. Integration Domain Enterprise Ownership Boundary The Integration Domain of the Hybrid Enterprise Dedicated CloudPublic CloudSaaS Customers Business Partners Appl. Appl.Appl.Appl.Appl.Appl. Appl. Appl. Appl. Appl. On-Premise Appl.Appl. Appl.Appl. Appl. Local Cloud Appl. Appl.
  • 28. ApplicationApplication Decentralising synchronous integration Engagement Applications System of Record Integration Public API Enterprise API API Gateway System of RecordSystem of Record Integration EnterpriseBoundary Exposure Gateway (external) SaaS Application Business Partner In a perfect world… • Application teams self- administer exposure of their own APIs • Application teams handle their own integration needs • Access to external APIs is governed using the same mechanisms used to govern access to internal APIs. • Application logic is firmly seated with the application teams • API monitoring/diagnostics would be gathered consistently across the organisation • Security models would be implemented more consistently ApplicationApplication So where is the ESB now? Where might we find microservices here? What about event driven integration?
  • 29. What is an application boundary in an microservices world? Similar to application boundaries today because • Group related functionality • Enable more coarse grained ownership and responsibility (in addition to full ownership at the microservice level) Different because • Application sub-components (microservices) are truly independent. • Application boundaries can be easily changed – it’s primarily about the right ownership • Application boundaries can spread across network boundaries (e.g. between clouds)…but should they! 28 µService µService µService µService µService µService µService µService µService µService µService
  • 30. Microservice component Inter-microservice vs. inter-application communication Microservices application Microservice component Microservice component Inter-microservice communication • Lightweight protocols: HTTP, application messaging • Runtime component registry • Client-side load balancing and circuit breaker patterns Microservices application Exposure Gateway Inter-application communication • Enterprise protocols: Managed API gateways, enterprise messaging • Design time developer portals • Gateway load balancing and throttling JSON/HTTP RESTful communication styles may be present in both types of communication, but their implementation may be radically different. JSON/HTTP
  • 31. Agenda Defining microservices architecture Is this different from Service Oriented Architecture (SOA)? How is integration architecture changing? Where do microservices fit in across the future landscape? How to start an argument about microservices 30
  • 32. Caution with comparisons (or “how to start an argument”!) Comparisons that make some level of sense Microservice architecture vs. Service oriented architecture Trying to achieve many of the same things (enable the creation of re-usable business functions as isolated components), but at a very different scale. SOA evolved to become focused on the enterprise scale (though some would say that wasn’t the original intent). Microservices, is primarily at the application scale. Microservice component vs. Service component Both describe the actual implementation of a business function. They differ primarily in granularity, but also arguably in maintainability, agility etc. Confusing comparisons Microservices vs. SOA Microservices are components. SOA is an architecture. What you’re probably trying to compare is Microservices Architecture with SOA (see above). Microservices vs. APIs APIs are a interface. A mechanism for exposing business function. Microservices are the component architecture used to implement those business functions. It makes no sense to directly compare them. Microservice vs. Service “Service” means different things to different people. Needs to be qualified. Service Implementation? Service exposure? Service definition? The same could be said for microservice. Need to be specific. 31