SlideShare une entreprise Scribd logo
1  sur  23
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

Contenu connexe

Tendances

The Integrations Behind Connecting With Salesforce
The Integrations Behind Connecting With SalesforceThe Integrations Behind Connecting With Salesforce
The Integrations Behind Connecting With SalesforceAaronLieberman5
 
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 ArchitectureWSO2
 
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 PlatformKovair
 
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 PresentationNati Shalom
 
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 & reportsGSX Solutions
 
Applying Systems Thinking to Software Architecture
Applying Systems Thinking to Software ArchitectureApplying Systems Thinking to Software Architecture
Applying Systems Thinking to Software ArchitectureMatt McLarty
 
Xen Desktop And eG VDI Monitor
Xen Desktop And eG VDI MonitorXen Desktop And eG VDI Monitor
Xen Desktop And eG VDI Monitorjanejarvella
 
Windows Azure in Qatar
Windows Azure in QatarWindows Azure in Qatar
Windows Azure in Qatarguestb9112
 
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 completoElasticsearch
 
Salesforce ppt v07122013
Salesforce ppt v07122013Salesforce ppt v07122013
Salesforce ppt v07122013ilovehck
 
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 ArchitectureWSO2
 
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 completaElasticsearch
 
[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 GovernmentWSO2
 
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 ESBsWSO2
 

Tendances (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
 

En vedette

Saw slide share1
Saw slide share1Saw slide share1
Saw slide share1christeo008
 
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 touchNithya 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 touchNithya 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 touchNithya 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 touchNithya 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 strategyNithya 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 AppsBJ 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 2009BJ Fogg
 

En vedette (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
 

Similaire à 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 ComputingGiragadurai 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 MicroservicesJim (张建军) Zhang
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureKim 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 ArchitectureAshwini Kuntamukkala
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservicesAnil 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 DevOpsAmazon Web Services
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitectureABDEL 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.pptxPINGXIONG3
 
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, AnywhereVMware Tanzu
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing MicroservicesDavid 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 walCapgemini
 
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 CloudNagarro
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application ModernisationAjay 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
 

Similaire à 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...
 

Dernier

Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profileakrivarotava
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 

Dernier (20)

Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profile
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 

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

Notes de l'éditeur

  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.