SlideShare a Scribd company logo
Modern Microservices
Architecture with Docker
Alon Fliess
Chief Software Architect
Microsoft Regional Director
alonf@codevalue.net
http://alonfliess.me
1
Eran Stiller
Cloud Division Leader
Senior Software Architect
erans@codevalue.net
http://stiller.co.il/blog
Agenda
Software Architecture
Micro Services Architecture
Containers & Docker
Azure Container Services
Demo
2
About Alon
Chief Architect & Co-Founder at CodeValue
More than 25 years of hands-on experience
Microsoft Regional Director & Microsoft MVP
Active member of Microsoft Advisory Councils
Renowned speaker at both international and
domestic events
3
About Eran
Cloud Division Leader & Co-Founder at CodeValue
Software architect, consultant and instructor
Microsoft Azure MVP
More than 10 years of hands-on experience
Expert in large-scale, server-side, highly-concurrent
systems
Co-Founder of Azure Israel Meetup
4
About CodeValue & OzCode
CodeValue – Inspiring Code. Creating Value.
A consultancy and software development firm
High quality software projects and managed services
Valuable training and mentoring
Advanced software technology and methodology consulting
OzCode – an innovative VS debugging extension
Helps identify and fix bugs during C# development
Saves time and effort
Makes the debugging process easy and simple
6
Software Architecture
What a Modern Architect SHOULD Know
7
SRS
UML
Use
Cases
User
Stories
Risk
Mitigations
Design
Redis
SRP
7
Client
Server
Schema
OOP
SQL
SOA
NoSQL
Encapsulation
Data
JSON
ETL
Reporting
AWS
BASE
Queue
XML
Cloud
Big Data
ACID
Micro
Services
Architecture
Distributed
Cache
REST
Idempotency
BI
Map
Reduce
NLB
HTTP
Indexing
CDN
Search
Security
Log
HPC
Authentication
Docker
Containers
HA
DRPub/Sub
UI/UX
CQRS
MEAN
ORM
Push
Notifications
What a Modern Architect MUST Know
Understand the requirements
Understand the constraints
Low coupling
High cohesion
Balance of size & number of components
Volatility
Workplace politics
Software Architecture
The system structure
Built from software components
The relationship between components
The properties of both components and relations
Software architecture is about making fundamental
structural choices
Which are costly to change once implemented
Designing software architecture is a mix of art and science!
Software Architecture Goals
Defining a structured solution that
Meets all the technical and operational requirements
Captures the non-volatile (hard to change) decisions
Focuses on important elements of the system (context)
Provide a solid foundation for a successful software product
Answer the requirements:
Functional
Non-Functional (quality attributes)
Constraints
10
Cohesion
The degree to which a module
performs one and only one function
Strive for high cohesion
A module can be:
Library (assembly, shared module, DLL)
File
Class
Method
COM/CORBA component
(Micro) Service
Any reusable element
11
Coupling
The degree to which each program module
relies on each of the other modules
Low coupling often correlates with
high cohesion, and vice versa
Low coupling is
A sign of a well-structured computer system
Good design
When combined with high cohesion
Supports high readability, maintainability, extendibility, and
reusability
Micro Service Architecture == High Cohesion & Low Coupling
12
Why Should I Care About Coupling
Tightly coupled systems tend to exhibit the following
developmental characteristics
A change in one module usually forces a ripple (cascading) effect
of changes in other modules
Assembly of modules might require more effort and/or time due
to the increased inter-module dependency
A particular module might be harder to reuse and/or test because
dependent modules must be included
The DevOps process becomes a nightmare!!!
13
Fan-In Fan-Out and Stable Module
One way to examine module stability (i.e. low coupling and high
cohesion) is by looking at its fan-in fan-out and other dependencies
Fan-In
The number of users of the module
Fan-Out
The number of modules that the current module is being used by
A stable module is a module that has high fun-in and low fan-out
This module can be easily reused
14
Just The Right Number Of Modules
15
number of modules
Module
integration cost
module development cost
The cost of
the software
Modern Software Project Challenges
16
We need to do more with less
More functional requirements and better quality
attributes
(Many) more end users
(Many) more servers to manage with less operators
More changes with less or even no maintenance
downtime
The 24/7 Challenge
How do you update a system running
24/7/365?
How do you keep the application servers
responsive?
How do you keep all application servers
synced?
How do you update the data/schema?
How do you update all your clients’ software?
Web, Mobile, Desktop…
How do you rollback on error?
How do you rollback data?
How do you know there is an error?
17
The 24/7 Challenge
Plan ahead
DevOps
Architect
Low Coupling, High Cohesion
Schema/API Versioning
Use supporting platforms
Cloud
Containers
18
Microservices Architecture (MSA) - Wikipedia
“Microservices is a specialization of and implementation approach for
service-oriented architectures (SOA) used to build flexible,
independently deployable software systems”
“Services are small in size, messaging enabled, bounded by contexts,
autonomously developed, independently deployable, decentralized
and built and released with automated processes”
“The benefit of distributing different responsibilities of the system into
different smaller services is that it enhances the cohesion and
decreases the coupling”
19
MSA Criticism
The architecture introduces additional complexity
such as:
Network latency
Message formats and versioning nightmare
Load balancing and fault tolerance management
Testing and deployment are more complicated
20
MSA Drawbacks Solution
Plan ahead
DevOps
Architect
Low Coupling, High Cohesion
Schema/API Versioning
Use supporting platforms
Cloud
Containers
21
22
Modern Microservices Architecture
with Docker
Docker, Docker, Docker
Containers have been around for many years
Docker Inc. did not invent them
They created open source software to build and manage containers
Docker makes containers easy
Even I can create and run them
Docker is a container format and a set of tools
Docker CLI, Docker Engine, Docker Swarm, Docker Compose, Docker Machine
and more…
Docker is an eco-system
23
Server
Host OS
Hypervisor
Server
Host OS
Docker Engine
Guest
OS
Guest
OS
Guest
OS
Bins/Libs Bins/Libs Bins/Libs
App A App A’ App B
Bins/Libs Bins/Libs
AppA
AppA’
AppB
AppB’
AppB
AppB’
AppB
AppB’
Containers are isolated,
but share OS and, where
appropriate,
bins/libraries
Bins/Libs
Developer Workstation
Docker Host
Container
Container
Container
Developer Workstation
Docker Engine
Container
Container
Container
Container
Container
Container
Developer Workstation
Container
Container
ContainerContainer
Container
Container
Container
Container
Container
App1
App2
Demo Architecture
33
Web Portal
RedisTwitter Reader
Queue
Twitter
Twitter Analyzer
Queue
Aggregator
Pub/Sub
Microsoft Cognitive Services
Demo Architecture
34
RedisTwitter Reader
Web Portal
Load Balancer
Queue
Twitter
Queue
Aggregator
Pub/Sub
Microsoft Cognitive Services
Twitter Analyzer
Demo
35
https://github.com/estiller/tweet-analyzer-demo
Summary
Software Architecture
Micro services Architecture
Containers & Docker
Azure Container Services
Demo
39
41

More Related Content

What's hot

Enterprise Application Integration
Enterprise Application IntegrationEnterprise Application Integration
Enterprise Application Integration
Computing Cage
 
Client server s/w Engineering
Client server s/w EngineeringClient server s/w Engineering
Client server s/w Engineering
Rajan Shah
 
Santhosh_Informatica_Administrator(2)
Santhosh_Informatica_Administrator(2)Santhosh_Informatica_Administrator(2)
Santhosh_Informatica_Administrator(2)
santhosh kumar
 
Lab jam websphere message broker labs
Lab jam   websphere message broker labsLab jam   websphere message broker labs
Lab jam websphere message broker labs
Eng Binary
 
Getting started with Enterprise Application Integration (EAI) using Enterpris...
Getting started with Enterprise Application Integration (EAI) using Enterpris...Getting started with Enterprise Application Integration (EAI) using Enterpris...
Getting started with Enterprise Application Integration (EAI) using Enterpris...
Tamim Khan
 
Isas _Q3 _Soft_Topic3_enterprise_application_architecture
Isas _Q3 _Soft_Topic3_enterprise_application_architectureIsas _Q3 _Soft_Topic3_enterprise_application_architecture
Isas _Q3 _Soft_Topic3_enterprise_application_architecture
Tuấn Anh Nguyễn
 
From Model to Implementation II
From Model to Implementation IIFrom Model to Implementation II
From Model to Implementation II
Reem Alattas
 
Ecms altanai bisht , college 3rd year
Ecms   altanai bisht , college 3rd yearEcms   altanai bisht , college 3rd year
Ecms altanai bisht , college 3rd year
ALTANAI BISHT
 
DistributedMediaApplicationProject
DistributedMediaApplicationProjectDistributedMediaApplicationProject
DistributedMediaApplicationProject
Lakshmi Sreejith
 
ClearCase Version Importer - a migration tool to Rational Team Concert SCM
ClearCase Version Importer - a migration tool to Rational Team Concert SCMClearCase Version Importer - a migration tool to Rational Team Concert SCM
ClearCase Version Importer - a migration tool to Rational Team Concert SCM
IBM Rational software
 
J2EE Technology Mapping-21-may-2014
J2EE Technology Mapping-21-may-2014J2EE Technology Mapping-21-may-2014
J2EE Technology Mapping-21-may-2014
Nguyen Tung
 
Using Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT ChallengesUsing Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT Challenges
IBM UrbanCode Products
 
integeration
integerationintegeration
integeration
Shuaibullah Abbasi
 
The Bluemix Quadruple Threat
The Bluemix Quadruple ThreatThe Bluemix Quadruple Threat
The Bluemix Quadruple Threat
Ram Vennam
 
WebSphere Message Broker Training Agenda
WebSphere Message Broker Training AgendaWebSphere Message Broker Training Agenda
WebSphere Message Broker Training Agenda
Vijaya Raghava Vuligundam
 
Microservices-101
Microservices-101Microservices-101
Microservices-101
Subhashish Bhattacharjee
 
Php Web Frameworks
Php Web FrameworksPhp Web Frameworks
Php Web Frameworks
Shreyans Jasoriya
 
Deploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode DeployDeploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Claudia Ring
 
ICTA Technology Meetup 01 - Enterprise Application Integration
ICTA Technology Meetup 01 - Enterprise Application IntegrationICTA Technology Meetup 01 - Enterprise Application Integration
ICTA Technology Meetup 01 - Enterprise Application Integration
Crishantha Nanayakkara
 
Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Continuous Delivery, DevOps, Cloud - New Requirements for New ArchitecturesContinuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Eberhard Wolff
 

What's hot (20)

Enterprise Application Integration
Enterprise Application IntegrationEnterprise Application Integration
Enterprise Application Integration
 
Client server s/w Engineering
Client server s/w EngineeringClient server s/w Engineering
Client server s/w Engineering
 
Santhosh_Informatica_Administrator(2)
Santhosh_Informatica_Administrator(2)Santhosh_Informatica_Administrator(2)
Santhosh_Informatica_Administrator(2)
 
Lab jam websphere message broker labs
Lab jam   websphere message broker labsLab jam   websphere message broker labs
Lab jam websphere message broker labs
 
Getting started with Enterprise Application Integration (EAI) using Enterpris...
Getting started with Enterprise Application Integration (EAI) using Enterpris...Getting started with Enterprise Application Integration (EAI) using Enterpris...
Getting started with Enterprise Application Integration (EAI) using Enterpris...
 
Isas _Q3 _Soft_Topic3_enterprise_application_architecture
Isas _Q3 _Soft_Topic3_enterprise_application_architectureIsas _Q3 _Soft_Topic3_enterprise_application_architecture
Isas _Q3 _Soft_Topic3_enterprise_application_architecture
 
From Model to Implementation II
From Model to Implementation IIFrom Model to Implementation II
From Model to Implementation II
 
Ecms altanai bisht , college 3rd year
Ecms   altanai bisht , college 3rd yearEcms   altanai bisht , college 3rd year
Ecms altanai bisht , college 3rd year
 
DistributedMediaApplicationProject
DistributedMediaApplicationProjectDistributedMediaApplicationProject
DistributedMediaApplicationProject
 
ClearCase Version Importer - a migration tool to Rational Team Concert SCM
ClearCase Version Importer - a migration tool to Rational Team Concert SCMClearCase Version Importer - a migration tool to Rational Team Concert SCM
ClearCase Version Importer - a migration tool to Rational Team Concert SCM
 
J2EE Technology Mapping-21-may-2014
J2EE Technology Mapping-21-may-2014J2EE Technology Mapping-21-may-2014
J2EE Technology Mapping-21-may-2014
 
Using Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT ChallengesUsing Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT Challenges
 
integeration
integerationintegeration
integeration
 
The Bluemix Quadruple Threat
The Bluemix Quadruple ThreatThe Bluemix Quadruple Threat
The Bluemix Quadruple Threat
 
WebSphere Message Broker Training Agenda
WebSphere Message Broker Training AgendaWebSphere Message Broker Training Agenda
WebSphere Message Broker Training Agenda
 
Microservices-101
Microservices-101Microservices-101
Microservices-101
 
Php Web Frameworks
Php Web FrameworksPhp Web Frameworks
Php Web Frameworks
 
Deploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode DeployDeploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode Deploy
 
ICTA Technology Meetup 01 - Enterprise Application Integration
ICTA Technology Meetup 01 - Enterprise Application IntegrationICTA Technology Meetup 01 - Enterprise Application Integration
ICTA Technology Meetup 01 - Enterprise Application Integration
 
Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Continuous Delivery, DevOps, Cloud - New Requirements for New ArchitecturesContinuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures
 

Similar to Modern Microservices Architecture with Docker

To Microservice or Not to Microservice?
To Microservice or Not to Microservice?To Microservice or Not to Microservice?
To Microservice or Not to Microservice?
Eran Stiller
 
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Cloud Native Day Tel Aviv
 
Think Small To Go Big - Introduction To Microservices
Think Small To Go Big - Introduction To MicroservicesThink Small To Go Big - Introduction To Microservices
Think Small To Go Big - Introduction To Microservices
Ryan Baxter
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
PLovababu
 
Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?
Phil Estes
 
Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices
confluent
 
Middle ware Technologies
Middle ware TechnologiesMiddle ware Technologies
Middle ware Technologies
prakashk453625
 
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and MoreA Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
Simform
 
Containing your microservice sprawl
Containing your microservice sprawlContaining your microservice sprawl
Containing your microservice sprawl
LibbySchulze
 
Microservice final final
Microservice final finalMicroservice final final
Microservice final final
gaurav shukla
 
Forrester Research on Optimizing Globally Distributed Software Development Us...
Forrester Research on Optimizing Globally Distributed Software Development Us...Forrester Research on Optimizing Globally Distributed Software Development Us...
Forrester Research on Optimizing Globally Distributed Software Development Us...
WANdisco Plc
 
Middleware Technologies
Middleware Technologies Middleware Technologies
Middleware Technologies
prakashk453625
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitecture
ABDEL RAHMAN KARIM
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
SelmaJelovac1
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD Pipeline
DevOps.com
 
Docker with Micro Service and WebServices
Docker with Micro Service and WebServicesDocker with Micro Service and WebServices
Docker with Micro Service and WebServices
Sunil Yadav
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
David Chou
 
Distributed architecture (SAD)
Distributed architecture (SAD)Distributed architecture (SAD)
Distributed architecture (SAD)
Khubaib Ahmad Kunjahi
 
Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native Meetup
Matt Ray
 
Introduction to the Microsoft Azure Cloud.pptx
Introduction to the Microsoft Azure Cloud.pptxIntroduction to the Microsoft Azure Cloud.pptx
Introduction to the Microsoft Azure Cloud.pptx
EverestMedinilla2
 

Similar to Modern Microservices Architecture with Docker (20)

To Microservice or Not to Microservice?
To Microservice or Not to Microservice?To Microservice or Not to Microservice?
To Microservice or Not to Microservice?
 
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
 
Think Small To Go Big - Introduction To Microservices
Think Small To Go Big - Introduction To MicroservicesThink Small To Go Big - Introduction To Microservices
Think Small To Go Big - Introduction To Microservices
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
 
Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?
 
Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices
 
Middle ware Technologies
Middle ware TechnologiesMiddle ware Technologies
Middle ware Technologies
 
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and MoreA Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
 
Containing your microservice sprawl
Containing your microservice sprawlContaining your microservice sprawl
Containing your microservice sprawl
 
Microservice final final
Microservice final finalMicroservice final final
Microservice final final
 
Forrester Research on Optimizing Globally Distributed Software Development Us...
Forrester Research on Optimizing Globally Distributed Software Development Us...Forrester Research on Optimizing Globally Distributed Software Development Us...
Forrester Research on Optimizing Globally Distributed Software Development Us...
 
Middleware Technologies
Middleware Technologies Middleware Technologies
Middleware Technologies
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitecture
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD Pipeline
 
Docker with Micro Service and WebServices
Docker with Micro Service and WebServicesDocker with Micro Service and WebServices
Docker with Micro Service and WebServices
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
 
Distributed architecture (SAD)
Distributed architecture (SAD)Distributed architecture (SAD)
Distributed architecture (SAD)
 
Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native Meetup
 
Introduction to the Microsoft Azure Cloud.pptx
Introduction to the Microsoft Azure Cloud.pptxIntroduction to the Microsoft Azure Cloud.pptx
Introduction to the Microsoft Azure Cloud.pptx
 

More from Eran Stiller

Architecting at Scale with the Advice Process
Architecting at Scale with the Advice ProcessArchitecting at Scale with the Advice Process
Architecting at Scale with the Advice Process
Eran Stiller
 
Application Evolution Strategy
Application Evolution StrategyApplication Evolution Strategy
Application Evolution Strategy
Eran Stiller
 
Developing and Deploying Microservices with Project Tye
Developing and Deploying Microservices with Project TyeDeveloping and Deploying Microservices with Project Tye
Developing and Deploying Microservices with Project Tye
Eran Stiller
 
API Design in the Modern Era - Architecture Next 2020
API Design in the Modern Era - Architecture Next 2020API Design in the Modern Era - Architecture Next 2020
API Design in the Modern Era - Architecture Next 2020
Eran Stiller
 
Bot-Tender: A Chat Bot Walks into a Bar (2020)
Bot-Tender: A Chat Bot Walks into a Bar (2020)Bot-Tender: A Chat Bot Walks into a Bar (2020)
Bot-Tender: A Chat Bot Walks into a Bar (2020)
Eran Stiller
 
Why Don’t You Understand Me? Build Intelligence into Your Apps
Why Don’t You Understand Me? Build Intelligence into Your AppsWhy Don’t You Understand Me? Build Intelligence into Your Apps
Why Don’t You Understand Me? Build Intelligence into Your Apps
Eran Stiller
 
Windows Containers - Microsoft Ignite The Tour
Windows Containers - Microsoft Ignite The TourWindows Containers - Microsoft Ignite The Tour
Windows Containers - Microsoft Ignite The Tour
Eran Stiller
 
Architecting Multitenant SaaS Applications with Azure - Microsoft Ignite The ...
Architecting Multitenant SaaS Applications with Azure - Microsoft Ignite The ...Architecting Multitenant SaaS Applications with Azure - Microsoft Ignite The ...
Architecting Multitenant SaaS Applications with Azure - Microsoft Ignite The ...
Eran Stiller
 
Bot Framework - Microsoft Ignite The Tour
Bot Framework - Microsoft Ignite The TourBot Framework - Microsoft Ignite The Tour
Bot Framework - Microsoft Ignite The Tour
Eran Stiller
 
It's a Serverless World
It's a Serverless WorldIt's a Serverless World
It's a Serverless World
Eran Stiller
 
Keynote - From Monolith to Microservices - Lessons Learned in the Real World
Keynote - From Monolith to Microservices - Lessons Learned in the Real WorldKeynote - From Monolith to Microservices - Lessons Learned in the Real World
Keynote - From Monolith to Microservices - Lessons Learned in the Real World
Eran Stiller
 
Architecting a Serverless IoT System in the Cloud
Architecting a Serverless IoT System in the CloudArchitecting a Serverless IoT System in the Cloud
Architecting a Serverless IoT System in the Cloud
Eran Stiller
 
6 Lessons I Learned on my Journey from Monolith to Microservices
6 Lessons I Learned on my Journey from Monolith to Microservices6 Lessons I Learned on my Journey from Monolith to Microservices
6 Lessons I Learned on my Journey from Monolith to Microservices
Eran Stiller
 
IoT in Action Keynote - CodeValue
IoT in Action Keynote - CodeValueIoT in Action Keynote - CodeValue
IoT in Action Keynote - CodeValue
Eran Stiller
 
Net Conf Israel - Intro & Building Cloud Native Apps with .NET Core 3.0 and K...
Net Conf Israel - Intro & Building Cloud Native Apps with .NET Core 3.0 and K...Net Conf Israel - Intro & Building Cloud Native Apps with .NET Core 3.0 and K...
Net Conf Israel - Intro & Building Cloud Native Apps with .NET Core 3.0 and K...
Eran Stiller
 
Create Your Own Serverless PKI with .NET & Azure Key Vault
Create Your Own Serverless PKI with .NET & Azure Key VaultCreate Your Own Serverless PKI with .NET & Azure Key Vault
Create Your Own Serverless PKI with .NET & Azure Key Vault
Eran Stiller
 
Cloud Native Development on Azure
Cloud Native Development on AzureCloud Native Development on Azure
Cloud Native Development on Azure
Eran Stiller
 
Today, the Cloud Is Your Advantage
Today, the Cloud Is Your AdvantageToday, the Cloud Is Your Advantage
Today, the Cloud Is Your Advantage
Eran Stiller
 
Build 2019 Recap
Build 2019 RecapBuild 2019 Recap
Build 2019 Recap
Eran Stiller
 
Bot-Tender: A Chat Bot Walks into a Bar (Microsoft Tech Days Sweden 2018)
Bot-Tender: A Chat Bot Walks into a Bar (Microsoft Tech Days Sweden 2018)Bot-Tender: A Chat Bot Walks into a Bar (Microsoft Tech Days Sweden 2018)
Bot-Tender: A Chat Bot Walks into a Bar (Microsoft Tech Days Sweden 2018)
Eran Stiller
 

More from Eran Stiller (20)

Architecting at Scale with the Advice Process
Architecting at Scale with the Advice ProcessArchitecting at Scale with the Advice Process
Architecting at Scale with the Advice Process
 
Application Evolution Strategy
Application Evolution StrategyApplication Evolution Strategy
Application Evolution Strategy
 
Developing and Deploying Microservices with Project Tye
Developing and Deploying Microservices with Project TyeDeveloping and Deploying Microservices with Project Tye
Developing and Deploying Microservices with Project Tye
 
API Design in the Modern Era - Architecture Next 2020
API Design in the Modern Era - Architecture Next 2020API Design in the Modern Era - Architecture Next 2020
API Design in the Modern Era - Architecture Next 2020
 
Bot-Tender: A Chat Bot Walks into a Bar (2020)
Bot-Tender: A Chat Bot Walks into a Bar (2020)Bot-Tender: A Chat Bot Walks into a Bar (2020)
Bot-Tender: A Chat Bot Walks into a Bar (2020)
 
Why Don’t You Understand Me? Build Intelligence into Your Apps
Why Don’t You Understand Me? Build Intelligence into Your AppsWhy Don’t You Understand Me? Build Intelligence into Your Apps
Why Don’t You Understand Me? Build Intelligence into Your Apps
 
Windows Containers - Microsoft Ignite The Tour
Windows Containers - Microsoft Ignite The TourWindows Containers - Microsoft Ignite The Tour
Windows Containers - Microsoft Ignite The Tour
 
Architecting Multitenant SaaS Applications with Azure - Microsoft Ignite The ...
Architecting Multitenant SaaS Applications with Azure - Microsoft Ignite The ...Architecting Multitenant SaaS Applications with Azure - Microsoft Ignite The ...
Architecting Multitenant SaaS Applications with Azure - Microsoft Ignite The ...
 
Bot Framework - Microsoft Ignite The Tour
Bot Framework - Microsoft Ignite The TourBot Framework - Microsoft Ignite The Tour
Bot Framework - Microsoft Ignite The Tour
 
It's a Serverless World
It's a Serverless WorldIt's a Serverless World
It's a Serverless World
 
Keynote - From Monolith to Microservices - Lessons Learned in the Real World
Keynote - From Monolith to Microservices - Lessons Learned in the Real WorldKeynote - From Monolith to Microservices - Lessons Learned in the Real World
Keynote - From Monolith to Microservices - Lessons Learned in the Real World
 
Architecting a Serverless IoT System in the Cloud
Architecting a Serverless IoT System in the CloudArchitecting a Serverless IoT System in the Cloud
Architecting a Serverless IoT System in the Cloud
 
6 Lessons I Learned on my Journey from Monolith to Microservices
6 Lessons I Learned on my Journey from Monolith to Microservices6 Lessons I Learned on my Journey from Monolith to Microservices
6 Lessons I Learned on my Journey from Monolith to Microservices
 
IoT in Action Keynote - CodeValue
IoT in Action Keynote - CodeValueIoT in Action Keynote - CodeValue
IoT in Action Keynote - CodeValue
 
Net Conf Israel - Intro & Building Cloud Native Apps with .NET Core 3.0 and K...
Net Conf Israel - Intro & Building Cloud Native Apps with .NET Core 3.0 and K...Net Conf Israel - Intro & Building Cloud Native Apps with .NET Core 3.0 and K...
Net Conf Israel - Intro & Building Cloud Native Apps with .NET Core 3.0 and K...
 
Create Your Own Serverless PKI with .NET & Azure Key Vault
Create Your Own Serverless PKI with .NET & Azure Key VaultCreate Your Own Serverless PKI with .NET & Azure Key Vault
Create Your Own Serverless PKI with .NET & Azure Key Vault
 
Cloud Native Development on Azure
Cloud Native Development on AzureCloud Native Development on Azure
Cloud Native Development on Azure
 
Today, the Cloud Is Your Advantage
Today, the Cloud Is Your AdvantageToday, the Cloud Is Your Advantage
Today, the Cloud Is Your Advantage
 
Build 2019 Recap
Build 2019 RecapBuild 2019 Recap
Build 2019 Recap
 
Bot-Tender: A Chat Bot Walks into a Bar (Microsoft Tech Days Sweden 2018)
Bot-Tender: A Chat Bot Walks into a Bar (Microsoft Tech Days Sweden 2018)Bot-Tender: A Chat Bot Walks into a Bar (Microsoft Tech Days Sweden 2018)
Bot-Tender: A Chat Bot Walks into a Bar (Microsoft Tech Days Sweden 2018)
 

Recently uploaded

Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
Drona Infotech
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Envertis Software Solutions
 
Top 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptxTop 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptx
devvsandy
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
YousufSait3
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 

Recently uploaded (20)

Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
 
Top 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptxTop 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptx
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 

Modern Microservices Architecture with Docker

  • 1. Modern Microservices Architecture with Docker Alon Fliess Chief Software Architect Microsoft Regional Director alonf@codevalue.net http://alonfliess.me 1 Eran Stiller Cloud Division Leader Senior Software Architect erans@codevalue.net http://stiller.co.il/blog
  • 2. Agenda Software Architecture Micro Services Architecture Containers & Docker Azure Container Services Demo 2
  • 3. About Alon Chief Architect & Co-Founder at CodeValue More than 25 years of hands-on experience Microsoft Regional Director & Microsoft MVP Active member of Microsoft Advisory Councils Renowned speaker at both international and domestic events 3
  • 4. About Eran Cloud Division Leader & Co-Founder at CodeValue Software architect, consultant and instructor Microsoft Azure MVP More than 10 years of hands-on experience Expert in large-scale, server-side, highly-concurrent systems Co-Founder of Azure Israel Meetup 4
  • 5. About CodeValue & OzCode CodeValue – Inspiring Code. Creating Value. A consultancy and software development firm High quality software projects and managed services Valuable training and mentoring Advanced software technology and methodology consulting OzCode – an innovative VS debugging extension Helps identify and fix bugs during C# development Saves time and effort Makes the debugging process easy and simple
  • 7. What a Modern Architect SHOULD Know 7 SRS UML Use Cases User Stories Risk Mitigations Design Redis SRP 7 Client Server Schema OOP SQL SOA NoSQL Encapsulation Data JSON ETL Reporting AWS BASE Queue XML Cloud Big Data ACID Micro Services Architecture Distributed Cache REST Idempotency BI Map Reduce NLB HTTP Indexing CDN Search Security Log HPC Authentication Docker Containers HA DRPub/Sub UI/UX CQRS MEAN ORM Push Notifications
  • 8. What a Modern Architect MUST Know Understand the requirements Understand the constraints Low coupling High cohesion Balance of size & number of components Volatility Workplace politics
  • 9. Software Architecture The system structure Built from software components The relationship between components The properties of both components and relations Software architecture is about making fundamental structural choices Which are costly to change once implemented Designing software architecture is a mix of art and science!
  • 10. Software Architecture Goals Defining a structured solution that Meets all the technical and operational requirements Captures the non-volatile (hard to change) decisions Focuses on important elements of the system (context) Provide a solid foundation for a successful software product Answer the requirements: Functional Non-Functional (quality attributes) Constraints 10
  • 11. Cohesion The degree to which a module performs one and only one function Strive for high cohesion A module can be: Library (assembly, shared module, DLL) File Class Method COM/CORBA component (Micro) Service Any reusable element 11
  • 12. Coupling The degree to which each program module relies on each of the other modules Low coupling often correlates with high cohesion, and vice versa Low coupling is A sign of a well-structured computer system Good design When combined with high cohesion Supports high readability, maintainability, extendibility, and reusability Micro Service Architecture == High Cohesion & Low Coupling 12
  • 13. Why Should I Care About Coupling Tightly coupled systems tend to exhibit the following developmental characteristics A change in one module usually forces a ripple (cascading) effect of changes in other modules Assembly of modules might require more effort and/or time due to the increased inter-module dependency A particular module might be harder to reuse and/or test because dependent modules must be included The DevOps process becomes a nightmare!!! 13
  • 14. Fan-In Fan-Out and Stable Module One way to examine module stability (i.e. low coupling and high cohesion) is by looking at its fan-in fan-out and other dependencies Fan-In The number of users of the module Fan-Out The number of modules that the current module is being used by A stable module is a module that has high fun-in and low fan-out This module can be easily reused 14
  • 15. Just The Right Number Of Modules 15 number of modules Module integration cost module development cost The cost of the software
  • 16. Modern Software Project Challenges 16 We need to do more with less More functional requirements and better quality attributes (Many) more end users (Many) more servers to manage with less operators More changes with less or even no maintenance downtime
  • 17. The 24/7 Challenge How do you update a system running 24/7/365? How do you keep the application servers responsive? How do you keep all application servers synced? How do you update the data/schema? How do you update all your clients’ software? Web, Mobile, Desktop… How do you rollback on error? How do you rollback data? How do you know there is an error? 17
  • 18. The 24/7 Challenge Plan ahead DevOps Architect Low Coupling, High Cohesion Schema/API Versioning Use supporting platforms Cloud Containers 18
  • 19. Microservices Architecture (MSA) - Wikipedia “Microservices is a specialization of and implementation approach for service-oriented architectures (SOA) used to build flexible, independently deployable software systems” “Services are small in size, messaging enabled, bounded by contexts, autonomously developed, independently deployable, decentralized and built and released with automated processes” “The benefit of distributing different responsibilities of the system into different smaller services is that it enhances the cohesion and decreases the coupling” 19
  • 20. MSA Criticism The architecture introduces additional complexity such as: Network latency Message formats and versioning nightmare Load balancing and fault tolerance management Testing and deployment are more complicated 20
  • 21. MSA Drawbacks Solution Plan ahead DevOps Architect Low Coupling, High Cohesion Schema/API Versioning Use supporting platforms Cloud Containers 21
  • 23. Docker, Docker, Docker Containers have been around for many years Docker Inc. did not invent them They created open source software to build and manage containers Docker makes containers easy Even I can create and run them Docker is a container format and a set of tools Docker CLI, Docker Engine, Docker Swarm, Docker Compose, Docker Machine and more… Docker is an eco-system 23
  • 24. Server Host OS Hypervisor Server Host OS Docker Engine Guest OS Guest OS Guest OS Bins/Libs Bins/Libs Bins/Libs App A App A’ App B Bins/Libs Bins/Libs AppA AppA’ AppB AppB’ AppB AppB’ AppB AppB’ Containers are isolated, but share OS and, where appropriate, bins/libraries Bins/Libs
  • 28.
  • 30. Demo Architecture 33 Web Portal RedisTwitter Reader Queue Twitter Twitter Analyzer Queue Aggregator Pub/Sub Microsoft Cognitive Services
  • 31. Demo Architecture 34 RedisTwitter Reader Web Portal Load Balancer Queue Twitter Queue Aggregator Pub/Sub Microsoft Cognitive Services Twitter Analyzer
  • 33. Summary Software Architecture Micro services Architecture Containers & Docker Azure Container Services Demo 39
  • 34. 41

Editor's Notes

  1. Free image source: https://pixabay.com/en/neon-neon-sign-the-text-of-the-open-1191281/
  2. Free image source: https://pixabay.com/en/approval-female-gesture-hand-happy-15914/
  3. Free image source: https://pixabay.com/en/approval-female-gesture-hand-happy-15914/