SlideShare a Scribd company logo
MICROSERVICES
Session - I
Sowri Varanasi
17-11-2016
AGENDA
Part - I
• Prominent design/architecture philosophies
• Microservices vs. Monolithic
• Characteristics/Anatomy of Microservices
• Design considerations
• Case study: Kony Cloud Foundation
Part – II
• Data modelling
• CAP theorem, Scalability
• Security
• Monitoring
• Deployment
• Case study 2: Design of AWS
Design/Architecture Philosophies
Major philosophies
•OOP
•Model - View – Controller
•Dependency injection
Measure effectiveness of
design/architecture
•Cohesion - measures the
“strength of relationship”
between components.
•Coupling - is how much one
component knows about
the inner workings or inner
elements of another one
•High cohesion and low
coupling are desirable and
they need to be maximized
by any effective
design/architecture.
Non-functional requirements
•Scalability
•Fault tolerance
•Ease of integration &
deployment
•Ease of testing and
certifying software
•Maintainability
•Reusability
Use case: Cloud Foundation
Kony Account
Management
Customer
application
management
Kony
Product
Management
Kony Cloud
Management
Authorization
&
Authentication
Analytics
Use-cases
• Customer provided with “Kony
Account”.
• Customer need one or more
clouds.
• Every cloud should contain a set
of Products/features
• Customer can design services
and deploy
• Customers to be
authorized/authenticated for
actions
• Customer apps related analytics
MONOLITHICS vs.
MICROSERVICES
Monolithic: Definition
“Monolithic, means all in one piece. ”
“Monolithic software is designed to be self-contained; components
of the program are interconnected and interdependent. Each
component and its associated components must be present in
order for code to be executed or compiled.”
“Reusability is via libraries.”
Microservices: Definition
“Microservice architectural style is an approach to developing a
single application as a suite of small services, each running in its
own process and communicating with lightweight mechanisms”
“Services are built around business capabilities; independently
deployable by fully automated deployment machinery”
“minimal centralized management of these services, which may be
written in different programming languages and use different data
storage technologies”
-- James Lewis and Martin Fowler
Monolithic vs. Microservices
 Application split into “Layers” resulting in
hierarchy
 Single process boundary
 Small change – build and deploy entire app
 Horizontal scalability
 Homogeneous technology stack
 Applications are suites of services
 Each service in its own boundary
 Deploy only the service
 Service level scalability
 Heterogeneous technology stack
Microservices – Why traction now?
Cloud technologies Auto scaling Infrastructure as
code
Test driven
development
Scalability Small 2-pizza teamsEventual consistency Rapid Application
Development
Cloud Foundation: If designed as a
Monolithic
Multi-tenant
infrastructure
Administrative
functions
Account management
Metrics
Cloud Provisioning
Customer Billing
Zendesk interfacing
AWS interfacing
Multi-tenant
interfacing
App/service develop
& deploy
Auth
MICROSERVICES:
ANATOMY &
DESIGN
CONSIDERATIONS
Microservices: Anatomy
Service 1
Service caller
Service 2
Service
Contract/API
Communication
channel
Response
Error handling Auth
Communication
mode
Integration: How do Microservices
collaborate?
• Shared database – is it an
option?
 Only state is modified;
behaviour is compromised
(sharing behaviour not
data)
 Services “tightly” coupled
with data sharing
• Single source of Truth
• No shared data modifications
Accounts Provision
Kony Accounts
+
environments
Integration: Sync/Async
communication
Sync - Blocking
• Can Service A proceed after
calling Service B? NO
• Response expected in real-
time?
• Synchronous –
Request/response
collaboration
 Remote Procedure Call
(RPC)
 REST over HTTP
Async – Non-blocking
• Service A can proceed after call
to Service B and doesn’t need
wait? YES
• Async – event-driven
collaboration
• Decoupled, scalable systems
 Message Queue
 REST over HTTP (virtual
blocking)
 Enterprise Message Bus
Integration: Sync – REST over HTTP
• Identify type of call – Sync vs.
Virtual Async
 Input/output:
XML/JSON/Agreed data
exchange format
 Result: HTTP codes
• Standardization of behaviour –
PUT/POST/GET calls, JSON headers,
HTTP return codes
• Ambiguous 504
• Idempotent services
• Polling for long transactions
Accounts Provision
Provision Cloud
Accepted/200
Keep checking status
Success/Failure
Integration: Async – Message Queues
• Identify the topics/persistence type
 Input/output: XML/JSON/Agreed data
exchange format
 Result: Success messages
• How is response processed?
• What happens if caller is not available to
process?
• Messaging: One-to-one or one-to-many?
• Standardization of – queues, data exchange
formats
• Idempotent services
• No polling but not real time (response time
not guaranteed)
• Mechanisms to make sure all messages are
processed
Accounts Provision
Success/Failure
Provision Queue
Provision Status
Queue
Rabbit MQ or
lightweight
messaging system
* Desirable
Managing business process:
Orchestration
• Services have to drive other
services to achieve business
process
• Common controller to lead
remaining services
• Tight coupling of components
• Controller can become “Single
Point” failure
• Controller can track the success
and report
MBaaS
Console
Accounts
Provision
Server
Sync
Service interaction during
app/service publishing
Managing business process:
Choreography
• No common controller to lead
remaining services; interaction
purely event driven
• Loose coupling of components
• No controller to monitor business
process status across services
• Clear understanding of
responsibilities will give clarity;
otherwise interactions pretty brittle
• Admin UI to track chronology of
events would be extremely helpful.
Analytics dataflow from AWS Cloud to Metrics
Server Sync
Metrics
Metrics
UI
SQS
Lambda
Redshift
S3
Versioning
• Changes to Service interface impact
all consumers
• Maintain old interface until all
consumers are migrated
• Consumers - Wrappers to limit the
impact
• Graceful migration of consumers
 Backward compatible
 Multiple concurrent service
versions – “expand/contract
design pattern”
• Multiple versions - REST interfaces –
version in URI
• Co-existence of versions increases
maintenance effort
S1 S2
S3
v1 v2
S1 S2
S3
v1 v2
S1 S2
S3
v2
Other best design practices
• Correlation ID – to trace the request across process
boundaries
• Common logging/issue reporting infrastructure
• Monitoring health of all subcomponents to ensure end-to-end
functioning
• Common subsystem to deal with Third-party SaaS offerings
Cloud Foundation: Microservice
Architecture
Kony
Product Management
MBaaS
Console
Auth Server/Sync Metrics
Accounts
Provision
Orch
Multi-tenant
Zendesk
AWS Cloud
** Simplified architecture; might slightly deviate from original
References
• Martin Fowler: Microservices
• Sam Newman: Building Microservices
Thank You

More Related Content

What's hot

The Integrations Behind Connecting With Salesforce
The Integrations Behind Connecting With SalesforceThe Integrations Behind Connecting With Salesforce
The Integrations Behind Connecting With Salesforce
AaronLieberman5
 
WSO2Con 2016: Breaking Down Silos with Service Oriented Architecture
WSO2Con 2016: Breaking Down Silos with Service Oriented ArchitectureWSO2Con 2016: Breaking Down Silos with Service Oriented Architecture
WSO2Con 2016: Breaking Down Silos with Service Oriented Architecture
WSO2
 
Understanding Microservice Architecture WSO2Con Asia 2016
Understanding Microservice Architecture WSO2Con Asia 2016 Understanding Microservice Architecture WSO2Con Asia 2016
Understanding Microservice Architecture WSO2Con Asia 2016
Sagara Gunathunga
 
Omnibus - Kovair Proprietary ESB Platform
Omnibus - Kovair Proprietary ESB  PlatformOmnibus - Kovair Proprietary ESB  Platform
Omnibus - Kovair Proprietary ESB Platform
Kovair
 
Hyper-V Integration with other System Center 2012 Components
Hyper-V Integration with other System Center 2012 ComponentsHyper-V Integration with other System Center 2012 Components
Hyper-V Integration with other System Center 2012 ComponentsPaulo Freitas
 
Reference Architecture for Shared Services Hosting_SunilBabu_V2.0
Reference Architecture for Shared Services Hosting_SunilBabu_V2.0Reference Architecture for Shared Services Hosting_SunilBabu_V2.0
Reference Architecture for Shared Services Hosting_SunilBabu_V2.0Sunil Babu
 
CloudCrowd gigaSpaces Presentation
CloudCrowd gigaSpaces PresentationCloudCrowd gigaSpaces Presentation
CloudCrowd gigaSpaces Presentation
Nati Shalom
 
XaaS Overview
XaaS OverviewXaaS Overview
Ms exchange workshop GSX Exchange server performance & reports
Ms exchange workshop GSX Exchange server performance & reportsMs exchange workshop GSX Exchange server performance & reports
Ms exchange workshop GSX Exchange server performance & reports
GSX Solutions
 
Applying Systems Thinking to Software Architecture
Applying Systems Thinking to Software ArchitectureApplying Systems Thinking to Software Architecture
Applying Systems Thinking to Software Architecture
Matt McLarty
 
Xen Desktop And eG VDI Monitor
Xen Desktop And eG VDI MonitorXen Desktop And eG VDI Monitor
Xen Desktop And eG VDI Monitor
janejarvella
 
Windows Azure in Qatar
Windows Azure in QatarWindows Azure in Qatar
Windows Azure in Qatar
guestb9112
 
Elastic APM: Amplía tus logs y métricas para ver el panorama completo
Elastic APM: Amplía tus logs y métricas para ver el panorama completoElastic APM: Amplía tus logs y métricas para ver el panorama completo
Elastic APM: Amplía tus logs y métricas para ver el panorama completo
Elasticsearch
 
Mule saas
Mule saasMule saas
Mule saas
mohit nadendla
 
Salesforce ppt v07122013
Salesforce ppt v07122013Salesforce ppt v07122013
Salesforce ppt v07122013
ilovehck
 
WSO2Con ASIA 2016: Moulding Your Enterprise with Resource Oriented Architecture
WSO2Con ASIA 2016: Moulding Your Enterprise with Resource Oriented ArchitectureWSO2Con ASIA 2016: Moulding Your Enterprise with Resource Oriented Architecture
WSO2Con ASIA 2016: Moulding Your Enterprise with Resource Oriented Architecture
WSO2
 
Elastic APM: Combinalo con tus logs y métricas para una visibilidad completa
Elastic APM: Combinalo con tus logs y métricas para una visibilidad completaElastic APM: Combinalo con tus logs y métricas para una visibilidad completa
Elastic APM: Combinalo con tus logs y métricas para una visibilidad completa
Elasticsearch
 
[WSO2Con EU 2017] Implementing Data Exchange Infrastructure in Government
[WSO2Con EU 2017] Implementing Data Exchange Infrastructure in Government[WSO2Con EU 2017] Implementing Data Exchange Infrastructure in Government
[WSO2Con EU 2017] Implementing Data Exchange Infrastructure in Government
WSO2
 
Le monitoring d'infrastructure de l'ingestion aux données : un jeu d'enfants !
Le monitoring d'infrastructure de l'ingestion aux données : un jeu d'enfants !Le monitoring d'infrastructure de l'ingestion aux données : un jeu d'enfants !
Le monitoring d'infrastructure de l'ingestion aux données : un jeu d'enfants !
Elasticsearch
 
[WSO2Con EU 2017] Extending Your Enterprise Integration Patterns Beyond ESBs
[WSO2Con EU 2017] Extending Your Enterprise Integration Patterns Beyond ESBs[WSO2Con EU 2017] Extending Your Enterprise Integration Patterns Beyond ESBs
[WSO2Con EU 2017] Extending Your Enterprise Integration Patterns Beyond ESBs
WSO2
 

What's hot (20)

The Integrations Behind Connecting With Salesforce
The Integrations Behind Connecting With SalesforceThe Integrations Behind Connecting With Salesforce
The Integrations Behind Connecting With Salesforce
 
WSO2Con 2016: Breaking Down Silos with Service Oriented Architecture
WSO2Con 2016: Breaking Down Silos with Service Oriented ArchitectureWSO2Con 2016: Breaking Down Silos with Service Oriented Architecture
WSO2Con 2016: Breaking Down Silos with Service Oriented Architecture
 
Understanding Microservice Architecture WSO2Con Asia 2016
Understanding Microservice Architecture WSO2Con Asia 2016 Understanding Microservice Architecture WSO2Con Asia 2016
Understanding Microservice Architecture WSO2Con Asia 2016
 
Omnibus - Kovair Proprietary ESB Platform
Omnibus - Kovair Proprietary ESB  PlatformOmnibus - Kovair Proprietary ESB  Platform
Omnibus - Kovair Proprietary ESB Platform
 
Hyper-V Integration with other System Center 2012 Components
Hyper-V Integration with other System Center 2012 ComponentsHyper-V Integration with other System Center 2012 Components
Hyper-V Integration with other System Center 2012 Components
 
Reference Architecture for Shared Services Hosting_SunilBabu_V2.0
Reference Architecture for Shared Services Hosting_SunilBabu_V2.0Reference Architecture for Shared Services Hosting_SunilBabu_V2.0
Reference Architecture for Shared Services Hosting_SunilBabu_V2.0
 
CloudCrowd gigaSpaces Presentation
CloudCrowd gigaSpaces PresentationCloudCrowd gigaSpaces Presentation
CloudCrowd gigaSpaces Presentation
 
XaaS Overview
XaaS OverviewXaaS Overview
XaaS Overview
 
Ms exchange workshop GSX Exchange server performance & reports
Ms exchange workshop GSX Exchange server performance & reportsMs exchange workshop GSX Exchange server performance & reports
Ms exchange workshop GSX Exchange server performance & reports
 
Applying Systems Thinking to Software Architecture
Applying Systems Thinking to Software ArchitectureApplying Systems Thinking to Software Architecture
Applying Systems Thinking to Software Architecture
 
Xen Desktop And eG VDI Monitor
Xen Desktop And eG VDI MonitorXen Desktop And eG VDI Monitor
Xen Desktop And eG VDI Monitor
 
Windows Azure in Qatar
Windows Azure in QatarWindows Azure in Qatar
Windows Azure in Qatar
 
Elastic APM: Amplía tus logs y métricas para ver el panorama completo
Elastic APM: Amplía tus logs y métricas para ver el panorama completoElastic APM: Amplía tus logs y métricas para ver el panorama completo
Elastic APM: Amplía tus logs y métricas para ver el panorama completo
 
Mule saas
Mule saasMule saas
Mule saas
 
Salesforce ppt v07122013
Salesforce ppt v07122013Salesforce ppt v07122013
Salesforce ppt v07122013
 
WSO2Con ASIA 2016: Moulding Your Enterprise with Resource Oriented Architecture
WSO2Con ASIA 2016: Moulding Your Enterprise with Resource Oriented ArchitectureWSO2Con ASIA 2016: Moulding Your Enterprise with Resource Oriented Architecture
WSO2Con ASIA 2016: Moulding Your Enterprise with Resource Oriented Architecture
 
Elastic APM: Combinalo con tus logs y métricas para una visibilidad completa
Elastic APM: Combinalo con tus logs y métricas para una visibilidad completaElastic APM: Combinalo con tus logs y métricas para una visibilidad completa
Elastic APM: Combinalo con tus logs y métricas para una visibilidad completa
 
[WSO2Con EU 2017] Implementing Data Exchange Infrastructure in Government
[WSO2Con EU 2017] Implementing Data Exchange Infrastructure in Government[WSO2Con EU 2017] Implementing Data Exchange Infrastructure in Government
[WSO2Con EU 2017] Implementing Data Exchange Infrastructure in Government
 
Le monitoring d'infrastructure de l'ingestion aux données : un jeu d'enfants !
Le monitoring d'infrastructure de l'ingestion aux données : un jeu d'enfants !Le monitoring d'infrastructure de l'ingestion aux données : un jeu d'enfants !
Le monitoring d'infrastructure de l'ingestion aux données : un jeu d'enfants !
 
[WSO2Con EU 2017] Extending Your Enterprise Integration Patterns Beyond ESBs
[WSO2Con EU 2017] Extending Your Enterprise Integration Patterns Beyond ESBs[WSO2Con EU 2017] Extending Your Enterprise Integration Patterns Beyond ESBs
[WSO2Con EU 2017] Extending Your Enterprise Integration Patterns Beyond ESBs
 

Viewers also liked

Saw slide share1
Saw slide share1Saw slide share1
Saw slide share1
christeo008
 
Workshop on Sencha Touch - Part 4 - Views in sencha touch
Workshop on Sencha Touch - Part 4 - Views in sencha touchWorkshop on Sencha Touch - Part 4 - Views in sencha touch
Workshop on Sencha Touch - Part 4 - Views in sencha touch
Nithya Sivakumar
 
Workshop on Sencha Touch - Part 3 - MVC in sencha touch
Workshop on Sencha Touch - Part 3 - MVC in sencha touchWorkshop on Sencha Touch - Part 3 - MVC in sencha touch
Workshop on Sencha Touch - Part 3 - MVC in sencha touch
Nithya Sivakumar
 
Workshop on Sencha Touch - Part 2 - First application in sencha touch
Workshop on Sencha Touch - Part 2 - First application in sencha touchWorkshop on Sencha Touch - Part 2 - First application in sencha touch
Workshop on Sencha Touch - Part 2 - First application in sencha touch
Nithya Sivakumar
 
Workshop on Sencha Touch - Part 5 - UI components in sencha touch
Workshop on Sencha Touch - Part 5 - UI components in sencha touchWorkshop on Sencha Touch - Part 5 - UI components in sencha touch
Workshop on Sencha Touch - Part 5 - UI components in sencha touch
Nithya Sivakumar
 
A step-by-step guide to mobile application development strategy
A step-by-step guide to mobile application development strategyA step-by-step guide to mobile application development strategy
A step-by-step guide to mobile application development strategy
Nithya Sivakumar
 
10 Million In 10 Weeks -- What Stanford Learned Building Facebook Apps
10 Million In 10 Weeks -- What Stanford Learned Building Facebook Apps10 Million In 10 Weeks -- What Stanford Learned Building Facebook Apps
10 Million In 10 Weeks -- What Stanford Learned Building Facebook Apps
BJ Fogg
 
BJ Fogg - The New Rules of Persuasion - Brussels 2009
BJ Fogg - The New Rules of Persuasion - Brussels 2009BJ Fogg - The New Rules of Persuasion - Brussels 2009
BJ Fogg - The New Rules of Persuasion - Brussels 2009
BJ Fogg
 

Viewers also liked (8)

Saw slide share1
Saw slide share1Saw slide share1
Saw slide share1
 
Workshop on Sencha Touch - Part 4 - Views in sencha touch
Workshop on Sencha Touch - Part 4 - Views in sencha touchWorkshop on Sencha Touch - Part 4 - Views in sencha touch
Workshop on Sencha Touch - Part 4 - Views in sencha touch
 
Workshop on Sencha Touch - Part 3 - MVC in sencha touch
Workshop on Sencha Touch - Part 3 - MVC in sencha touchWorkshop on Sencha Touch - Part 3 - MVC in sencha touch
Workshop on Sencha Touch - Part 3 - MVC in sencha touch
 
Workshop on Sencha Touch - Part 2 - First application in sencha touch
Workshop on Sencha Touch - Part 2 - First application in sencha touchWorkshop on Sencha Touch - Part 2 - First application in sencha touch
Workshop on Sencha Touch - Part 2 - First application in sencha touch
 
Workshop on Sencha Touch - Part 5 - UI components in sencha touch
Workshop on Sencha Touch - Part 5 - UI components in sencha touchWorkshop on Sencha Touch - Part 5 - UI components in sencha touch
Workshop on Sencha Touch - Part 5 - UI components in sencha touch
 
A step-by-step guide to mobile application development strategy
A step-by-step guide to mobile application development strategyA step-by-step guide to mobile application development strategy
A step-by-step guide to mobile application development strategy
 
10 Million In 10 Weeks -- What Stanford Learned Building Facebook Apps
10 Million In 10 Weeks -- What Stanford Learned Building Facebook Apps10 Million In 10 Weeks -- What Stanford Learned Building Facebook Apps
10 Million In 10 Weeks -- What Stanford Learned Building Facebook Apps
 
BJ Fogg - The New Rules of Persuasion - Brussels 2009
BJ Fogg - The New Rules of Persuasion - Brussels 2009BJ Fogg - The New Rules of Persuasion - Brussels 2009
BJ Fogg - The New Rules of Persuasion - Brussels 2009
 

Similar to Microservices session 1

Modern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale ComputingModern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale Computing
Giragadurai Vallirajan
 
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
Jim (张建军) Zhang
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
MahmoudZidan41
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
Kim Clark
 
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
AFAS Software
 
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JSFestUA
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
Ashwini Kuntamukkala
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
Anil Allewar
 
Transform Enterprise IT Infrastructure with AWS DevOps
Transform Enterprise IT Infrastructure with AWS DevOpsTransform Enterprise IT Infrastructure with AWS DevOps
Transform Enterprise IT Infrastructure with AWS DevOps
Amazon Web Services
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitecture
ABDEL RAHMAN KARIM
 
Cloud Computing & Business Intelligence
Cloud Computing & Business IntelligenceCloud Computing & Business Intelligence
Cloud Computing & Business IntelligenceSudip Chatterjee
 
Event-Driven Serverless Architecture - the next big thing in the cloud (Cleme...
Event-Driven Serverless Architecture - the next big thing in the cloud (Cleme...Event-Driven Serverless Architecture - the next big thing in the cloud (Cleme...
Event-Driven Serverless Architecture - the next big thing in the cloud (Cleme...
Codit
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
PINGXIONG3
 
DevOps-training-in-chandigarh-Join-now--
DevOps-training-in-chandigarh-Join-now--DevOps-training-in-chandigarh-Join-now--
DevOps-training-in-chandigarh-Join-now--
asmeerana605
 
Get the Message Across: Seamlessly Transport Data to Apps, Anywhere
Get the Message Across: Seamlessly Transport Data to Apps, AnywhereGet the Message Across: Seamlessly Transport Data to Apps, Anywhere
Get the Message Across: Seamlessly Transport Data to Apps, Anywhere
VMware Tanzu
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
David Chou
 
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
Capgemini
 
Testing the Migration of Monolithic Applications to Microservices on the Cloud
Testing the Migration of Monolithic Applications to Microservices on the CloudTesting the Migration of Monolithic Applications to Microservices on the Cloud
Testing the Migration of Monolithic Applications to Microservices on the Cloud
Nagarro
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
Ajay Kumar Uppal
 
Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...
Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...
Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...
DineshKumar746335
 

Similar to Microservices session 1 (20)

Modern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale ComputingModern Software Architecture - Cloud Scale Computing
Modern Software Architecture - Cloud Scale Computing
 
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
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
 
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
 
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Transform Enterprise IT Infrastructure with AWS DevOps
Transform Enterprise IT Infrastructure with AWS DevOpsTransform Enterprise IT Infrastructure with AWS DevOps
Transform Enterprise IT Infrastructure with AWS DevOps
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitecture
 
Cloud Computing & Business Intelligence
Cloud Computing & Business IntelligenceCloud Computing & Business Intelligence
Cloud Computing & Business Intelligence
 
Event-Driven Serverless Architecture - the next big thing in the cloud (Cleme...
Event-Driven Serverless Architecture - the next big thing in the cloud (Cleme...Event-Driven Serverless Architecture - the next big thing in the cloud (Cleme...
Event-Driven Serverless Architecture - the next big thing in the cloud (Cleme...
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
 
DevOps-training-in-chandigarh-Join-now--
DevOps-training-in-chandigarh-Join-now--DevOps-training-in-chandigarh-Join-now--
DevOps-training-in-chandigarh-Join-now--
 
Get the Message Across: Seamlessly Transport Data to Apps, Anywhere
Get the Message Across: Seamlessly Transport Data to Apps, AnywhereGet the Message Across: Seamlessly Transport Data to Apps, Anywhere
Get the Message Across: Seamlessly Transport Data to Apps, Anywhere
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
 
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
 
Testing the Migration of Monolithic Applications to Microservices on the Cloud
Testing the Migration of Monolithic Applications to Microservices on the CloudTesting the Migration of Monolithic Applications to Microservices on the Cloud
Testing the Migration of Monolithic Applications to Microservices on the Cloud
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
 
Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...
Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...
Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...
 

Recently uploaded

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
varshanayak241
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 

Recently uploaded (20)

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 

Microservices session 1

  • 1. MICROSERVICES Session - I Sowri Varanasi 17-11-2016
  • 2. AGENDA Part - I • Prominent design/architecture philosophies • Microservices vs. Monolithic • Characteristics/Anatomy of Microservices • Design considerations • Case study: Kony Cloud Foundation Part – II • Data modelling • CAP theorem, Scalability • Security • Monitoring • Deployment • Case study 2: Design of AWS
  • 3. Design/Architecture Philosophies Major philosophies •OOP •Model - View – Controller •Dependency injection Measure effectiveness of design/architecture •Cohesion - measures the “strength of relationship” between components. •Coupling - is how much one component knows about the inner workings or inner elements of another one •High cohesion and low coupling are desirable and they need to be maximized by any effective design/architecture. Non-functional requirements •Scalability •Fault tolerance •Ease of integration & deployment •Ease of testing and certifying software •Maintainability •Reusability
  • 4. Use case: Cloud Foundation Kony Account Management Customer application management Kony Product Management Kony Cloud Management Authorization & Authentication Analytics Use-cases • Customer provided with “Kony Account”. • Customer need one or more clouds. • Every cloud should contain a set of Products/features • Customer can design services and deploy • Customers to be authorized/authenticated for actions • Customer apps related analytics
  • 6. Monolithic: Definition “Monolithic, means all in one piece. ” “Monolithic software is designed to be self-contained; components of the program are interconnected and interdependent. Each component and its associated components must be present in order for code to be executed or compiled.” “Reusability is via libraries.”
  • 7. Microservices: Definition “Microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms” “Services are built around business capabilities; independently deployable by fully automated deployment machinery” “minimal centralized management of these services, which may be written in different programming languages and use different data storage technologies” -- James Lewis and Martin Fowler
  • 8. Monolithic vs. Microservices  Application split into “Layers” resulting in hierarchy  Single process boundary  Small change – build and deploy entire app  Horizontal scalability  Homogeneous technology stack  Applications are suites of services  Each service in its own boundary  Deploy only the service  Service level scalability  Heterogeneous technology stack
  • 9. Microservices – Why traction now? Cloud technologies Auto scaling Infrastructure as code Test driven development Scalability Small 2-pizza teamsEventual consistency Rapid Application Development
  • 10. Cloud Foundation: If designed as a Monolithic Multi-tenant infrastructure Administrative functions Account management Metrics Cloud Provisioning Customer Billing Zendesk interfacing AWS interfacing Multi-tenant interfacing App/service develop & deploy Auth
  • 12. Microservices: Anatomy Service 1 Service caller Service 2 Service Contract/API Communication channel Response Error handling Auth Communication mode
  • 13. Integration: How do Microservices collaborate? • Shared database – is it an option?  Only state is modified; behaviour is compromised (sharing behaviour not data)  Services “tightly” coupled with data sharing • Single source of Truth • No shared data modifications Accounts Provision Kony Accounts + environments
  • 14. Integration: Sync/Async communication Sync - Blocking • Can Service A proceed after calling Service B? NO • Response expected in real- time? • Synchronous – Request/response collaboration  Remote Procedure Call (RPC)  REST over HTTP Async – Non-blocking • Service A can proceed after call to Service B and doesn’t need wait? YES • Async – event-driven collaboration • Decoupled, scalable systems  Message Queue  REST over HTTP (virtual blocking)  Enterprise Message Bus
  • 15. Integration: Sync – REST over HTTP • Identify type of call – Sync vs. Virtual Async  Input/output: XML/JSON/Agreed data exchange format  Result: HTTP codes • Standardization of behaviour – PUT/POST/GET calls, JSON headers, HTTP return codes • Ambiguous 504 • Idempotent services • Polling for long transactions Accounts Provision Provision Cloud Accepted/200 Keep checking status Success/Failure
  • 16. Integration: Async – Message Queues • Identify the topics/persistence type  Input/output: XML/JSON/Agreed data exchange format  Result: Success messages • How is response processed? • What happens if caller is not available to process? • Messaging: One-to-one or one-to-many? • Standardization of – queues, data exchange formats • Idempotent services • No polling but not real time (response time not guaranteed) • Mechanisms to make sure all messages are processed Accounts Provision Success/Failure Provision Queue Provision Status Queue Rabbit MQ or lightweight messaging system * Desirable
  • 17. Managing business process: Orchestration • Services have to drive other services to achieve business process • Common controller to lead remaining services • Tight coupling of components • Controller can become “Single Point” failure • Controller can track the success and report MBaaS Console Accounts Provision Server Sync Service interaction during app/service publishing
  • 18. Managing business process: Choreography • No common controller to lead remaining services; interaction purely event driven • Loose coupling of components • No controller to monitor business process status across services • Clear understanding of responsibilities will give clarity; otherwise interactions pretty brittle • Admin UI to track chronology of events would be extremely helpful. Analytics dataflow from AWS Cloud to Metrics Server Sync Metrics Metrics UI SQS Lambda Redshift S3
  • 19. Versioning • Changes to Service interface impact all consumers • Maintain old interface until all consumers are migrated • Consumers - Wrappers to limit the impact • Graceful migration of consumers  Backward compatible  Multiple concurrent service versions – “expand/contract design pattern” • Multiple versions - REST interfaces – version in URI • Co-existence of versions increases maintenance effort S1 S2 S3 v1 v2 S1 S2 S3 v1 v2 S1 S2 S3 v2
  • 20. Other best design practices • Correlation ID – to trace the request across process boundaries • Common logging/issue reporting infrastructure • Monitoring health of all subcomponents to ensure end-to-end functioning • Common subsystem to deal with Third-party SaaS offerings
  • 21. Cloud Foundation: Microservice Architecture Kony Product Management MBaaS Console Auth Server/Sync Metrics Accounts Provision Orch Multi-tenant Zendesk AWS Cloud ** Simplified architecture; might slightly deviate from original
  • 22. References • Martin Fowler: Microservices • Sam Newman: Building Microservices

Editor's Notes

  1. Major paradigm shifts OOP – Data abstraction, encapsulation, inheritance, polymorphism Spring framework for Dependency injection
  2. Google – search functionality + web crawler + page rank and other processing Facebook – New feed + authentication + recommendation engine + advertisement
  3. Idempotent - clients can make that same call repeatedly while producing the same result
  4. Point-to-point or Publish/Subscribe Durability - messages may be kept in memory, written to disk, or even committed to a DBMS if the need for reliability indicates a more resource-intensive solution. Message purging policies - queues or messages may have a "time to live" Delivery policies - do we need to guarantee that a message is delivered at least once, or no more than once? Queuing criteria - when should a message be considered "enqueued"? When one queue has it? Or when it has been forwarded to at least one remote queue? Or to all queues? Receipt notification - A publisher may need to know when some or all subscribers have received a message.