SlideShare a Scribd company logo
1 of 66
A3G Overview
Masashi Narumoto
Principal lead PM
AzureCAT patterns & practices
Azure Application Architecture Guide
2
Traditional vs. Modern application
Traditional on-premises Modern cloud
Relational database Polyglot persistence
Strong consistency Eventual consistency
Design for predictable scalability Design for unbound scalability
Serial and synchronized processing Parallel and asynchronous processing
Monolithic, centralized Decomposed, de-centralized
Snowflake servers Immutable infrastructure
Integrated authentication Federated authentication
Design to keep app running (MTBF) Design for failure (MTTR)
Big bang release Frequent small update
Manual management Automated self-management
3
Process of Software development
Analyze
business
domain
Design services
around business
domain
Implement
services on
platform
Business alignment Technology alignment
4
Functional &
Non-functional
requirements
Choose
architecture style
Choose technology
Apply design
patterns & best
practices
Process of Software development
Architecture style guide
Design principles
Compute selection guide
Storage selection guide
Best practices
Design patterns
Design review checklist
Business capability
Domain driven
Data driven
End to end traceability
5
Functional &
Non-functional
requirements
Choose
architecture style
Choose technology
Apply design
patterns & best
practices
Process of Software development
6
Analyzing business domain
• Functional – Domain driven or data centric
• Ubiquitous language to model business domains
• Bounded context shows service boundary
• Context map visualizes to service dependency
• Aggregate, Domain service/event lead to microservices and inter service comm
• Non-functional - RTO/RPO/MTO, SLO/SLA, Security, Operation
• RTO leads to failover period
• RPO leads to backup interval
• SLA leads to choice of services w/ level of redundancy
• Throughput/Latency leads to choice of SKU w/ partitioning and topology
• Security leads to authN/authZ, encryption (transit, at rest)
• Operation leads to automated monitoring, management solutions
7
What if we don’t model around business?
• Spending too much time on the features nobody’s going to use
• Wrong assumptions are baked into data and service model
• Change in technology directly affects service model
• System is not scalable nor secure
• SLA target is not met
• System health is not visible to operators
8
What if we don’t model around business?
9
Example – Drone delivery service
10
Accounts
Drone management
3rd party
transportation
Call center
Video
surveillance
Drone
sharing
Drone
management
Drone sharing
3rd party
transportation
Shipping (Core)
Call center
Shipping
Context map – Drone delivery service
Surveyllance
Accounts
11
Drone
management
Accounts
Drone sharing
3rd party
transportation
Shipping (Core)
Call center
Context map – Problem and Solution space
Surveyllance
Accounts
Drone management
3rd party
transportation
Call center
Video
surveillance
Drone
sharing
Shipping
12
Accounts
Drone management
3rd party
transportation
Call center
Video
surveillance
Drone
sharing
Drone
management
Drone sharing
3rd party
transportation
Shipping (Core)
Call center
Shipping
Context map – Drone delivery service
Surveyllance
Shipping
Accounts
13
Aggregates and services in shipping domain
Shipping
Drone Package
Delivery DeliveryScheduler
DeliverySupervisor
Account
3rd party
transportation
Authentication
Aggregate
Domain
service
14
Non-functional requirements – Shipping
• 10K to 100K rps to delivery scheduler
• 1M write/sec to geospatial index (geo-data / 4 sec / drone)
• Latency in 99 percentile has to be within 1 sec
• 99.99% uptime for delivery scheduler
• Daily update for ETA/Drone optimization algorithm
• CI/CD to support daily deployment
• Recovery time objective (RTO) should be 10 mins
• Recovery point objective should be an hour
• Drones and PII need to be protected from malicious attack
• Monitor the system for RCA and system health
15
Functional &
Non-functional
requirements
Choose
architecture style
Choose technology
Apply design
patterns & best
practices
Process of Software development
16
Choosing architecture style
Domain Model Monolith?Microservices?
CQRS?
Web-queue-worker?
17
What if we don’t choose right architecture?
18
Architecture imposes constraintsfor desirable outcome
19
Constraints in microservices
- A service represents a single responsibility
- Services don’t share its data
- Service calls only via API
- Every service has to be independently deployable
- Release pipeline has to be de-centralized
20
Applying architecture style
Business Domain
Data access
Business logic
API
21
Choosing architecture style
• Business domain (Functional, Non-functional)
• Type/Complexity of domain
• Prerequisites
• Skillset, Team, Culture
• Benefits vs. Challenges
• Does benefits justify taking challenges?
• Degree of conformity
• Purist vs. Pragmatist
22
When to choose Microservices?
Benefits
- Independent deployment
- Fault isolation
- Diverse technology
- Small focused team
- Separate scalability
Challenges
- Complexity
- Network congestion
- Data integrity/consistency
- Testing
- Reliability
Business domain
- Complex domain
- Deployment at high velocity
- Many independent teams
Prerequisites
- Skill set for distributed system
- Domain knowledge
- DevOps culture
- Monitoring capability
23
Degree of distribution
Monolith
(Big ball of mud)
microservicesCorse grained
Somewhat decomposed
24
Choosing architecture styles
Dependency management Domain type/complexity
N-Tier+ Horizontal layers (open/close) Traditional business domain
Frequency of update is low
Web-Queue-Worker Front/Backend jobs
Decoupled by async messaging
Relatively simple domain with some resource
intensive tasks
Microservices Vertical (functional) decoupling
Service calls via API
Complicated domain
Frequent update is required
CQRS R/W segregation
Schema/Scale are optimized separately
Collaborative domain where lots of users access
the same data
EDA Data ingested into streaming
Independent view per sub-system
Internet of things
Big data Divide huge dataset into small chunks
Parallel processing on local dataset
Batch and real-time data analysis
Predictive analysis using ML
Big compute Data allocation to thousands of cores
Embarrassingly parallel processing
Compute intensive domain such as simulation,
number crunching
25
User
Business
logic
Polyglot
Storage
Device
Gateway
Streaming
& analytics
Device
control
Device
State & Mgmt
Business
System
Hot & Cold
Storage
Serving
&
BI
Device
API
Gateway
Web/Mobile application
IIoT
Data analysis
Batch
Analysis
Near
Real-time
Analysis
Notification
Remote
Service
Cloud application architecture
User
management
26
User
Business
logic
Polyglot
Storage
Device
Gateway
Streaming
& analytics
Device
control
Device
State & Mgmt
Business
System
Hot & Cold
Storage
Serving
&
BI
Device
API
Gateway
Web/Mobile application
IIoT
Data analysis
Batch
Analysis
Near
Real-time
Analysis
Notification
Remote
Service
User
management
Microservices
Cloud application architecture
SPA
Event Driven
Big data
N-TierWeb-Queue-Worker
CQRS
Big compute
Lift & Shift
27
User
Business
logic
Polyglot
Storage
Device
Gateway
Streaming
& analytics
Device
control
Device
State & Mgmt
Business
System
Hot & Cold
Storage
Serving
&
BI
Device
API
Gateway
Web/Mobile application
IIoT
Data analysis
Batch
Analysis
Near
Real-time
Analysis
Notification
Remote
Service
Cloud application architecture
User
management
28
N-Tier+ architecture
29
N−Tier+ architecture
Web tier
Database
Storage
Remote
service
NVA
Middle
tier 2
Messaging
Cache
Middle
tier 1
Jump
Box
User
Admin
30
Best practices for N−Tier+ architecture
Web
tier
Database
Storage
Remote
service
NVA
Middle
tier 2
Messaging
Cache
Middle
tier 1
Jump
Box
User
Admin
Place multiple
NVA for HA
Use messaging
to decouple tiers
Cache semi-static data
Protect internet
access by NVA
Restrict access to data tier
Admin tasks via jump box
Use separate subnet/availability
set per tier with multi VMs
Configure redundancy
such as SQL AlwaysOn AG
31
N-Tier+
• When to use:
• Migration scenario with minimum refactoring from existing app
• Simple web applications(e.g. admin web site)
• You need unified development/management across on-premises and cloud
• Benefits:
• High portability
• Less learning curve
• Natural evolution from traditional model
• Open to heterogeneous environment (Windows/Linux)
• Challenges:
• Monolith prevents independent deployment
• Manageability is not optimal
• Versioning of each service running on VMs
• Configuring network security is not trivial
• Conforming to industry regulations (e.g. PCI, SOX, HIPPA)
32
Web-Queue-Worker architecture
33
Web-Queue-Worker architecture
SPA
&
Mobile
Web
frontend
services
SQL
NoSQL
CDN
Remote
service
Cache
Workers
Messaging
IdP
34
Best practices for Web-Queue-Worker
SPA
&
Mobile
Web
frontend
services
SQL
NoSQL
CDN
Remote
service
Cache
Workers
Messaging
IdP
Partition data
Use polyglot storage
Auto-scale
instances
Decouple resource intensive jobsHost static content
Expose
consumer friendly API
Retry
transient faults
Cache semi-static data
35
SPA
&
Mobile
Web
frontend
services SQL
NoSQL
CDN
Remote
service
Cache
Workers
Blob
Messaging
IdP
Design patterns for Web-Queue-Worker
Throttling Circuit breaker Cache aside
Federated
authentication
Index table
Sharding
Static content hosting Competing consumersLoad leveling Valet key
36
SPA
&
Mobile
Web
frontend
services
SQL
NoSQL
CDN
Remote
service
Cache
Workers
Messaging
IdP
Anti-patterns in Web-Queue-Worker
Busy frontend No CacheSynchronous IO Improper
instantiation
Busy database
Monolithic persistence
Serial message processing Chatty IO Extraneous fetching
37
Web-Queue-Worker
• When to use
• Web applications with straightforward business logic
• You want to take advantage of managed services
• Benefits:
• Very first Azure architecture 
• Relatively simple architecture that is easy to understand
• Easy to deploy and manage
• Clear separation of concerns
• The front end is decoupled from the worker using asynchronous messaging
• Challenges
• Without careful design, the web front end and the worker can become large, monolithic
components that are difficult to maintain and update.
• There may be hidden dependencies, if the front end and worker share data schemas or code
modules.
38
Microservices architecture
39
Microservices
SPA
&
Mobile
Microservices
SQL
NoSQL
API
Gateway
CDN
Remote
Service
Blob
IdP
40
Microservices – Best practices
SPA
&
Mobile
Microservices
SQL
NoSQL
API
Gateway
Remote
ServiceIdP
DevOps
Release process
Release process
Each service has a single
responsibility
Don’t share the data
directly
Every request goes through GW
Model service around business domain
Isolate failure
Decentralize all things
Don’t leak implementation details
Service calls via API
Offload cross cutting concerns to GW
Use polyglot storage
41
Microservices
• When to use
• Requires continuous innovation
• Requires deployment at high velocity
• Deals with complex domain
• Benefits
• Independent deployment
• Fault isolation
• Diverse technology
• Small focused team
• Separate scalability
• Challenges
• Complexity
• Network congestion
• Data integrity/consistency
• Testing
• Reliability
42
CQRS architecture
43
Microservices + CQRS
SPA
&
Mobile
Microservices
SQL
NoSQL
API
Gateway
CDN
Remote
Service
Cache
Read model
Write
model
Microservices
Blob
Command
Query
Messaging
IdP
44
Decoupling data by CQRS
Delivery Account
DeliveryID PackageID Drones
1234 0011 003154
DeliveryID PackageID Date Delivered
1234 0011 9901/19/2017
Write model (Event sourcing) Read model (Materialized View)
Eventually consistent
Account
Delivery history
Drone
MessageBroker
PackageDelivered
45
SPA
&
Mobile
Microservices
SQL
NoSQL
API
Gateway
CDN
Remote
Service
Cache
Read
model
Write
model
Microservices
Blob
Command
Query
Messaging
IdP
Design patterns for microservices/CQRS
Read
model
GW- aggregation Bulkhead
SidecarBackend for frontend
Event sourcing
Materialized view
AmbassodarGW- offloading
46
CQRS
• When to use
• Collaborative domain with lots of operations to the same data
• R/W mismatch causes issues
• High scalability is required
• Benefits
• Separate scalability for R/W
• Decoupling Read from Write
• Optimal schema for read and write
• Challenges
• Data consistency issues
• Complex implementation
47
User
Business
logic
Polyglot
Storage
Device
Gateway
Streaming
& analytics
Device
control
Device
State & Mgmt
Business
System
Hot & Cold
Storage Serving
&
BI
Device
API
Gateway
Web/Mobile application
IIoT
Data analysis
Batch
Analysis
Near
Real-time
Analysis
Notification
Remote
Service
IIoT
User
management
48
Event Driven
Event ingestion
Event
producers
Event
consumers
Event
consumers
Event
consumers
49
Event Driven
• When to use
• Multiple subsystems process the same event
• Real-time processing with minimum time lag
• Complex event processing such as pattern matching
• Event processing with high ingestion rate such as IoT
• Benefits
• No point to point Integrations
• Immediate actions at consumer (minimum time lag)
• Very well decoupling producers from consumers
• Highly scalable and distributable
• Challenges
• Reliability, losing a single event could make system unstable (guaranteed delivery)
• Order of processing
• Exact once processing
50
EDA(IoT) Reference Architecture
Device
Serving
layer
Application
backend
Cloud
gateway
Device
gateway
Provisioning API
Identity and
registry store
Device state store
Stream processors
Storage
Analytics &
Machine learning
BI
Adaptor to
External system
51
EDA(IoT) Reference Architecture
Device
Serving
layer
Application
backend
Cloud
gateway
Device
gateway
Provisioning API
Identity and
registry store
Device state store
Stream processors
Storage
Analytics &
Machine learning
BI
Adaptor to
External system
Car
Machine
etc.
IoT Hub
EvenytHub
IoT Hub
Azure storage
Custom app
Azure stream analysis
Storm
Spark
Azure storage
ADLS
Azure ML
Spark
HBase
SQL DB
SQL DWH
Spark
Cassandra
Power BI
Excel
SSAS
Tableau
Qlikview
Custom
app
Actor FW
Azure Batch
Custom app
52
Cloud Design Patterns
• ‘Cloud Design Patterns’
http://aka.ms/cloud-design-patterns
53
User
Business
logic
Polyglot
Storage
Device
Gateway
Streaming
& analytics
Device
control
Device
State & Mgmt
Business
System
Hot & Cold
Storage Serving
&
BI
Device
API
Gateway
Web/Mobile application
IIoT
Data analysis
Batch
Analysis
Near
Real-time
Analysis
Notification
Remote
Service
Big Data
User
management
54
Big data architecture
55
Big data reference architecture
Data
source
Batch
processing
Stream
analysis
Serving
layer
Data streaming
Business
intelligence
Orchestration
Data storage
56
Data ingestion pattern
Data
source
Batch
processing
Stream
analysis
Serving
layer
Data streaming
Business
intelligence
Orchestration
Data storage
57
Best practices for Big data
Data
source
Batch
processing
Stream
analysis
Serving
layer
Data streaming
Business
intelligence
Orchestration
Data storage
Implement retention policy
Upload large dataset using multiple threads in parallelScrub sensitive data
before publishing
Partition the data
Automate data ingestion and process by orchestration tools
Provision a separate cluster
for Hbase/Storm than batch
processing
Prevent data skew issue
Use protocol conversion to speed up
58
Big data – service mapping
Data
source
Batch
processing
Stream
analysis
Serving
layer
Data streaming
Business
intelligence
Orchestration
Data storage
Device
Weblogs
Click stream
OLTP
Azure Data Lake Store
Azure storage
EventHub
IoT Hub
Kafka
ASA
Spark
Storm
ADLA
HDInsight
HBase
Cassandra
DocumentDB
SQL DB/DWH
Spark
Power BI
Excel
SSAS
Tableau
Qlikview
Custom app
Azure Data Factory
Oozie
SSIS
59
Big data
• When to use
• Process TB ~ PB of data in a timely manner
• Pre-process raw data and pass the aggregated results to BI
• Real-time processing
• Experiment new data type quickly
• Predictive analysis
• Benefits
• Cost effective solution for large dataset
• High performance by parallel processing with data locality
• Challenges
• Data ingestion
• Numerous combination of technologies
• Too many knobs to optimize performance
• Security
60
Example – Drone delivery service
61
Accounts
Drone management
3rd party
transportation
Call center
Video
surveillance
Drone
sharing
Drone
management
Accounts
Drone sharing
3rd party
transportation
Shipping (Core)
Call center
Shipping
Context map – Drone delivery service
Surveyllance
62
Aggregates and services in shipping domain
Shipping
Drone Package
Delivery DeliveryScheduler
DeliverySupervisor
Account
3rd party
transportation
Authentication
DeliveryScheduler
DeliverySupervisor
Delivery
Package
Authentication
Drone
Account
3rd party
transportation
Microservices
Microservices
In different BC
63
DeliveryScheduler
Package
Drone
Delivery
Mobile
app
Event
sourcing
Delivery
Supervisor
DeliveryEvents
RequestEvents
GW
Status
3rd party
Service
Account
Service
DroneMgmt
Service
Microservices in
Shipping BC
Account
Service
Auth
Service
3rd party
transportation
Account
Account
Service
64
DeliveryScheduler
Package
Drone
Delivery
Mobile
app
Delivery
Supervisor
GW
Design patterns
Auth
Service
3rd party
transportation
Account
Load levelingGW- routing
Throttling
Scheduler-Agent-Supervisor Event sourcing
Circuit breaker
Competing consumers
Bulkhead
Sidecar
Ambassador
GW- offloading
Federated auth
Sharding
Ambassador
3rd party
Service
Account
Service
DroneMgmt
Service
Account
Service
Pub-Sub
65
User
Business
logic
Polyglot
Storage
Device
Gateway
Streaming
& analytics
Device
control
Device
State & Mgmt
Business
System
Hot & Cold
Storage
Serving
&
BI
Device
API
Gateway
Web/Mobile application
IIoT
Data analysis
Batch
Analysis
Near
Real-time
Analysis
Notification
Remote
Service
Drone delivery application architecture
User
management
Drone geolocation and ETA
User device geolocation
Account management
Drone scheduling
ETA
Drone placement
66

More Related Content

What's hot

Trunk based development and Canary deployment
Trunk based development and Canary deploymentTrunk based development and Canary deployment
Trunk based development and Canary deploymentHai Lu
 
Introducing Ensemble SaaS MANO
Introducing Ensemble SaaS MANOIntroducing Ensemble SaaS MANO
Introducing Ensemble SaaS MANOADVA
 
Migrating to Microservices Patterns and Technologies (edition 2023)
 Migrating to Microservices Patterns and Technologies (edition 2023) Migrating to Microservices Patterns and Technologies (edition 2023)
Migrating to Microservices Patterns and Technologies (edition 2023)Ahmed Misbah
 
VMware Tanzu Kubernetes Connect
VMware Tanzu Kubernetes ConnectVMware Tanzu Kubernetes Connect
VMware Tanzu Kubernetes ConnectVMware Tanzu
 
Emerging Trends in Hybrid-Cloud & Multi-Cloud Strategies
Emerging Trends in Hybrid-Cloud & Multi-Cloud StrategiesEmerging Trends in Hybrid-Cloud & Multi-Cloud Strategies
Emerging Trends in Hybrid-Cloud & Multi-Cloud StrategiesChaitanya Atreya
 
Cloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
Cloud Migration Cookbook: A Guide To Moving Your Apps To The CloudCloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
Cloud Migration Cookbook: A Guide To Moving Your Apps To The CloudNew Relic
 
Microsoft Cloud Adoption Framework for Azure: Governance Conversation
Microsoft Cloud Adoption Framework for Azure: Governance ConversationMicrosoft Cloud Adoption Framework for Azure: Governance Conversation
Microsoft Cloud Adoption Framework for Azure: Governance ConversationNicholas Vossburg
 
Azure App configuration
Azure App configurationAzure App configuration
Azure App configurationMuhammad Sajid
 
Automate Network Configuration & Compliance Management with Itential
Automate Network Configuration & Compliance Management with ItentialAutomate Network Configuration & Compliance Management with Itential
Automate Network Configuration & Compliance Management with ItentialItential
 
Govern your Azure environment through Azure Policy
Govern your Azure environment through Azure PolicyGovern your Azure environment through Azure Policy
Govern your Azure environment through Azure PolicyMicrosoft Tech Community
 
Az 104 session 8 azure monitoring
Az 104 session 8 azure monitoringAz 104 session 8 azure monitoring
Az 104 session 8 azure monitoringAzureEzy1
 
Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture Solace
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services ArchitectureAraf Karsh Hamid
 
Cloud Native Bern 05.2023 — Zero Trust Visibility
Cloud Native Bern 05.2023 — Zero Trust VisibilityCloud Native Bern 05.2023 — Zero Trust Visibility
Cloud Native Bern 05.2023 — Zero Trust VisibilityRaphaël PINSON
 
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...Amazon Web Services
 
Microservices architecture overview v2
Microservices architecture overview v2Microservices architecture overview v2
Microservices architecture overview v2Dmitry Skaredov
 
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브Open Source Consulting
 

What's hot (20)

Trunk based development and Canary deployment
Trunk based development and Canary deploymentTrunk based development and Canary deployment
Trunk based development and Canary deployment
 
Introducing Ensemble SaaS MANO
Introducing Ensemble SaaS MANOIntroducing Ensemble SaaS MANO
Introducing Ensemble SaaS MANO
 
Migrating to Microservices Patterns and Technologies (edition 2023)
 Migrating to Microservices Patterns and Technologies (edition 2023) Migrating to Microservices Patterns and Technologies (edition 2023)
Migrating to Microservices Patterns and Technologies (edition 2023)
 
VMware Tanzu Kubernetes Connect
VMware Tanzu Kubernetes ConnectVMware Tanzu Kubernetes Connect
VMware Tanzu Kubernetes Connect
 
Emerging Trends in Hybrid-Cloud & Multi-Cloud Strategies
Emerging Trends in Hybrid-Cloud & Multi-Cloud StrategiesEmerging Trends in Hybrid-Cloud & Multi-Cloud Strategies
Emerging Trends in Hybrid-Cloud & Multi-Cloud Strategies
 
Cloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
Cloud Migration Cookbook: A Guide To Moving Your Apps To The CloudCloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
Cloud Migration Cookbook: A Guide To Moving Your Apps To The Cloud
 
Microsoft Cloud Adoption Framework for Azure: Governance Conversation
Microsoft Cloud Adoption Framework for Azure: Governance ConversationMicrosoft Cloud Adoption Framework for Azure: Governance Conversation
Microsoft Cloud Adoption Framework for Azure: Governance Conversation
 
Azure App configuration
Azure App configurationAzure App configuration
Azure App configuration
 
Azure Hybid
Azure HybidAzure Hybid
Azure Hybid
 
Automate Network Configuration & Compliance Management with Itential
Automate Network Configuration & Compliance Management with ItentialAutomate Network Configuration & Compliance Management with Itential
Automate Network Configuration & Compliance Management with Itential
 
Why to Cloud Native
Why to Cloud NativeWhy to Cloud Native
Why to Cloud Native
 
Govern your Azure environment through Azure Policy
Govern your Azure environment through Azure PolicyGovern your Azure environment through Azure Policy
Govern your Azure environment through Azure Policy
 
Az 104 session 8 azure monitoring
Az 104 session 8 azure monitoringAz 104 session 8 azure monitoring
Az 104 session 8 azure monitoring
 
Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture
 
Azure cloud governance deck
Azure cloud governance deckAzure cloud governance deck
Azure cloud governance deck
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
Cloud Native Bern 05.2023 — Zero Trust Visibility
Cloud Native Bern 05.2023 — Zero Trust VisibilityCloud Native Bern 05.2023 — Zero Trust Visibility
Cloud Native Bern 05.2023 — Zero Trust Visibility
 
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...
 
Microservices architecture overview v2
Microservices architecture overview v2Microservices architecture overview v2
Microservices architecture overview v2
 
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
 

Similar to Azure Application Architecture Guide

Software Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureSoftware Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureTapio Rautonen
 
New Tech for Project Managers
New Tech for Project ManagersNew Tech for Project Managers
New Tech for Project ManagersPratip Mallik
 
How to Choose an Integration Platform Vendor for Your Business
How to Choose an Integration Platform Vendor for Your BusinessHow to Choose an Integration Platform Vendor for Your Business
How to Choose an Integration Platform Vendor for Your BusinessWSO2
 
Systemology presentation- System Center & the modern datacenter
Systemology presentation- System Center & the modern datacenterSystemology presentation- System Center & the modern datacenter
Systemology presentation- System Center & the modern datacenterjmustac
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application ModernisationAjay Kumar Uppal
 
AWS Summit Singapore - Mass Migration to AWS: Best Practices to Solve Securit...
AWS Summit Singapore - Mass Migration to AWS: Best Practices to Solve Securit...AWS Summit Singapore - Mass Migration to AWS: Best Practices to Solve Securit...
AWS Summit Singapore - Mass Migration to AWS: Best Practices to Solve Securit...Amazon Web Services
 
A Successful Journey to the Cloud with Data Virtualization
A Successful Journey to the Cloud with Data VirtualizationA Successful Journey to the Cloud with Data Virtualization
A Successful Journey to the Cloud with Data VirtualizationDenodo
 
Cloud-Native Data: What data questions to ask when building cloud-native apps
Cloud-Native Data: What data questions to ask when building cloud-native appsCloud-Native Data: What data questions to ask when building cloud-native apps
Cloud-Native Data: What data questions to ask when building cloud-native appsVMware Tanzu
 
MT125 Virtustream Enterprise Cloud: Purpose Built to Run Mission Critical App...
MT125 Virtustream Enterprise Cloud: Purpose Built to Run Mission Critical App...MT125 Virtustream Enterprise Cloud: Purpose Built to Run Mission Critical App...
MT125 Virtustream Enterprise Cloud: Purpose Built to Run Mission Critical App...Dell EMC World
 
gkkCloudtechnologyassociate(cta)day 2
gkkCloudtechnologyassociate(cta)day 2gkkCloudtechnologyassociate(cta)day 2
gkkCloudtechnologyassociate(cta)day 2Anne Starr
 
Perth meetup Oct 2019
Perth meetup Oct 2019Perth meetup Oct 2019
Perth meetup Oct 2019Zubair Aslam
 
Cloudhnologysstecociat
CloudhnologysstecociatCloudhnologysstecociat
CloudhnologysstecociatAnne Starr
 
Software-Defined Data Center Case Study – Financial Institution and VMware
Software-Defined Data Center Case Study – Financial Institution and VMwareSoftware-Defined Data Center Case Study – Financial Institution and VMware
Software-Defined Data Center Case Study – Financial Institution and VMwareVMware
 
dtechnClouologyassociatepart2
dtechnClouologyassociatepart2dtechnClouologyassociatepart2
dtechnClouologyassociatepart2Anne Starr
 
Why Your Digital Transformation Strategy Demands Middleware Modernization
Why Your Digital Transformation Strategy Demands Middleware ModernizationWhy Your Digital Transformation Strategy Demands Middleware Modernization
Why Your Digital Transformation Strategy Demands Middleware ModernizationVMware Tanzu
 
Risc and velostrata 2 28 2018 lessons_in_cloud_migration
Risc and velostrata  2 28 2018 lessons_in_cloud_migrationRisc and velostrata  2 28 2018 lessons_in_cloud_migration
Risc and velostrata 2 28 2018 lessons_in_cloud_migrationRISC Networks
 

Similar to Azure Application Architecture Guide (20)

Enterprise Cloud Transformation
Enterprise Cloud TransformationEnterprise Cloud Transformation
Enterprise Cloud Transformation
 
Software Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureSoftware Architecture for Cloud Infrastructure
Software Architecture for Cloud Infrastructure
 
New Tech for Project Managers
New Tech for Project ManagersNew Tech for Project Managers
New Tech for Project Managers
 
How to Choose an Integration Platform Vendor for Your Business
How to Choose an Integration Platform Vendor for Your BusinessHow to Choose an Integration Platform Vendor for Your Business
How to Choose an Integration Platform Vendor for Your Business
 
Systemology presentation- System Center & the modern datacenter
Systemology presentation- System Center & the modern datacenterSystemology presentation- System Center & the modern datacenter
Systemology presentation- System Center & the modern datacenter
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
 
AWS Summit Singapore - Mass Migration to AWS: Best Practices to Solve Securit...
AWS Summit Singapore - Mass Migration to AWS: Best Practices to Solve Securit...AWS Summit Singapore - Mass Migration to AWS: Best Practices to Solve Securit...
AWS Summit Singapore - Mass Migration to AWS: Best Practices to Solve Securit...
 
A Successful Journey to the Cloud with Data Virtualization
A Successful Journey to the Cloud with Data VirtualizationA Successful Journey to the Cloud with Data Virtualization
A Successful Journey to the Cloud with Data Virtualization
 
Adopting the Cloud
Adopting the CloudAdopting the Cloud
Adopting the Cloud
 
Cloud-Native Data: What data questions to ask when building cloud-native apps
Cloud-Native Data: What data questions to ask when building cloud-native appsCloud-Native Data: What data questions to ask when building cloud-native apps
Cloud-Native Data: What data questions to ask when building cloud-native apps
 
MT125 Virtustream Enterprise Cloud: Purpose Built to Run Mission Critical App...
MT125 Virtustream Enterprise Cloud: Purpose Built to Run Mission Critical App...MT125 Virtustream Enterprise Cloud: Purpose Built to Run Mission Critical App...
MT125 Virtustream Enterprise Cloud: Purpose Built to Run Mission Critical App...
 
gkkCloudtechnologyassociate(cta)day 2
gkkCloudtechnologyassociate(cta)day 2gkkCloudtechnologyassociate(cta)day 2
gkkCloudtechnologyassociate(cta)day 2
 
Perth meetup Oct 2019
Perth meetup Oct 2019Perth meetup Oct 2019
Perth meetup Oct 2019
 
Cloudhnologysstecociat
CloudhnologysstecociatCloudhnologysstecociat
Cloudhnologysstecociat
 
Software-Defined Data Center Case Study – Financial Institution and VMware
Software-Defined Data Center Case Study – Financial Institution and VMwareSoftware-Defined Data Center Case Study – Financial Institution and VMware
Software-Defined Data Center Case Study – Financial Institution and VMware
 
dtechnClouologyassociatepart2
dtechnClouologyassociatepart2dtechnClouologyassociatepart2
dtechnClouologyassociatepart2
 
Logicalis Cloud Briefing
Logicalis Cloud BriefingLogicalis Cloud Briefing
Logicalis Cloud Briefing
 
Yongsan presentation 3
Yongsan presentation 3Yongsan presentation 3
Yongsan presentation 3
 
Why Your Digital Transformation Strategy Demands Middleware Modernization
Why Your Digital Transformation Strategy Demands Middleware ModernizationWhy Your Digital Transformation Strategy Demands Middleware Modernization
Why Your Digital Transformation Strategy Demands Middleware Modernization
 
Risc and velostrata 2 28 2018 lessons_in_cloud_migration
Risc and velostrata  2 28 2018 lessons_in_cloud_migrationRisc and velostrata  2 28 2018 lessons_in_cloud_migration
Risc and velostrata 2 28 2018 lessons_in_cloud_migration
 

More from Masashi Narumoto

Microservices design patterns
Microservices design patternsMicroservices design patterns
Microservices design patternsMasashi Narumoto
 
Modeling microservices using DDD
Modeling microservices using DDDModeling microservices using DDD
Modeling microservices using DDDMasashi Narumoto
 
Designing microservices part2
Designing microservices part2Designing microservices part2
Designing microservices part2Masashi Narumoto
 
Cloud Design Pattern part2
Cloud Design Pattern part2Cloud Design Pattern part2
Cloud Design Pattern part2Masashi Narumoto
 
Cloud Design Pattern part1
Cloud Design Pattern part1Cloud Design Pattern part1
Cloud Design Pattern part1Masashi Narumoto
 
Designing apps for resiliency
Designing apps for resiliencyDesigning apps for resiliency
Designing apps for resiliencyMasashi Narumoto
 

More from Masashi Narumoto (8)

Microservices design patterns
Microservices design patternsMicroservices design patterns
Microservices design patterns
 
Modeling microservices using DDD
Modeling microservices using DDDModeling microservices using DDD
Modeling microservices using DDD
 
Cloud design principles
Cloud design principlesCloud design principles
Cloud design principles
 
Designing microservices part2
Designing microservices part2Designing microservices part2
Designing microservices part2
 
Cloud Design Pattern part2
Cloud Design Pattern part2Cloud Design Pattern part2
Cloud Design Pattern part2
 
Cloud Design Pattern part1
Cloud Design Pattern part1Cloud Design Pattern part1
Cloud Design Pattern part1
 
Designing microservices
Designing microservicesDesigning microservices
Designing microservices
 
Designing apps for resiliency
Designing apps for resiliencyDesigning apps for resiliency
Designing apps for resiliency
 

Recently uploaded

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 

Recently uploaded (20)

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 

Azure Application Architecture Guide

Editor's Notes

  1. We didn’t publish this guide yet.
  2. I’m trying to compare the common characteristics of each These common characteristics raise questions that you need to answer. How to choose the right storage? (Polyglot cheat sheet) How to deal with eventual consistency issues? (Data consistency primer) How to make apps scalable? (Auto-scaling guidance) How to control concurrent access? (Concurrent access guidance, WIP) How to decompose a monolith to distributed components? (Data/Compute partitioning guidance) How to make apps immutable? How to choose the right authentication model? (Identity guidance) How to design multi-tenant apps? (Multi-tenant guidance) How to deal with transient/non-transient faults? (Retry guidance) https://dzone.com/articles/martin-fowler-snowflake
  3. Even the industry is shifting toward new business model, We still need to align business with technologies in 3 steps. You need to analyze business domain to capture their requirements Design service to realize the requirements Implement service on technology platform 3 steps at very high level. You can say industry 4.0 can be implemented by IoT-Hub and Service fabric but there’s a huge gap between business and technology. We need to fill in that gap. How can we translate business into technology?
  4. Not to mention this is an iterative process
  5. If this is a migration scenario and you already know enough about the domain, that’s fine. But in greenfield scenario, work with domain experts to analyze requirements is key for success.
  6. We need a domain expert to work with on business analysis Price lookup in POS requires 500ms latency Encrypt sensitive data over the wire or at rest
  7. Can’t emphasize the importance of this step enough XA transactions across two diff custom storage in large SI >50% of BI solutions are not being used in largest retail franchise Anemic domain model UBER baked in wrong assumptions which caused massive refactoring Separate service per each storage. Scale and Security can’t be after thought Same with availability and operations You have to make system observable for operators
  8. Easier said than done so we started our own project to show how to model service around business. Simply put, this service is to deliver good for you in a matter of minutes using drones.
  9. Context map shows mapping among bounded context as well as domains and BC Domain represents problem space BC represents solution space
  10. Context map shows mapping among bounded context as well as domains and BC Domain represents problem space BC represents solution space BC is a linguistic boundary Ideally 1:1 mapping (esp. greenfield) Mapping patterns: tightly or loosely coupled
  11. Context map shows mapping among bounded context as well as domains and BC Domain represents problem space BC represents solution space
  12. Now we have domain model analyzed. Next step is to choose right architecture
  13. Once you define business domain, nest step is to choose arch style. Same domain can be implemented by different styles. Windows-DNA, COM/COM+ RIA, Silverlight SOA, Web service Cloud, Azure Microservices, Containers/SF
  14. If you choose architecture for small apartment and use it for skyscraper, it will crush.
  15. Architecture acts as a mold to organize service design and dependency Architectural styles as constraints. The high-level concepts in an architectural style impose a set of constraints on the architecture. These contraints guide the design and create a “shape” - The hope is that by conforming to these constraints, certain desirable properties will emerge. Therefore it’s important to understand not just the constraints (the “shape” of the architecture) but the motivation behind them.
  16. You need to follow these rigid rules, otherwise you don’t get benefit from MSA
  17. Which is better? How do we make that decision?
  18. How can we make decisions? We should keep these 4 dimensions in mind - Affinity to a particular Business domain Prerequisite (You must be this tall to use XXX) If you don’t have enough skillset, don’t choose it Does Benefit justify taking challenges? Purist vs. pragmatist. I’d rather be a pragmatist meaning you have to adjust the degree of conformity to the reality
  19. Messaging, concurrency control, eventual consistency DevOps culture: CI/CD, Automation, Self provisioning/management Monitoring (Correlation) is critical for RCA Each service gets simplified but complexity is moving to integration part which is networking among services How can you do E2E/integration testing? More service means more surface area to fail. Is this the goal you’re aiming for? Do you meet the prerequisites? Does benefit justify taking these challenges? Many services means many point of failure. Figure if MSA is the right choice depending on these four dimensions
  20. Monolith and microservices are two extremes in the spectrum You’ll end up somewhere in between, then continue decomposing further down instead of trying to design perfect microservices from day 1.
  21. They are all based on our customer engagements. Good one becomes patterns / best practices, bad one becomes anti-patterns There’s no point for functional partitioning when you don’t have much functions.
  22. Three main areas In cloud applications. There’s no clear distinction between them. Detail of this diagram doesn’t matter a lot. It’s a simplification of each piece. For example, batch operations such as daily report can be implemented as backend service or part of data analysis. IIoT and Big data has some overlaps. User mgmt is integrated with AD, CRM etc. CDN & Notification?
  23. Three main areas In cloud applications. There’s no clear distinction between them. For example, batch operations such as daily report can be implemented as backend service or part of data analysis. IIoT and Big data has some overlaps. User mgmt is integrated with AD, CRM etc. CDN & Notification?
  24. Three main areas In cloud applications. There’s no clear distinction between them. For example, batch operations such as daily report can be implemented as backend service or part of data analysis. IIoT and Big data has some overlaps. User mgmt is integrated with AD, CRM etc. CDN & Notification?
  25. As the name implies, N number of tiers. Most common setting is 3 tier w/ web, middle, and DB. Sometimes more than 1 middle tier. IaaS + PaaS offerings such as messaging, cache, and storage. Jumpbox to restrict access from administrator. Let me show you best practices in this architecture.
  26. Fortinet, F5, Barracuda HA-NVA from p&p Isolate each tier by network subnet Also put VMs per each tier into different availability set so at least one instance per each tier will be up and running Jumpbox is only backdoor open for a particular client IP. Whitelist IPs
  27. Logical layers and physical tiers. It’s not necessarily 1:1 mapping. Middle tier is optional. Layers are the way to manage dependency. Open/Close model. IaaS + PaaS (Cache, Messaging, DB/Storage are very common)
  28. Web frontend offloads backend jobs to workers via messaging The rest of the picture looks similar to N-Tier. Variation to skip web frontend as description
  29. RESTful API: Intention revealing, API versioning, security, Async, Batch in RESTful manner Retry: Exponential backoff for non-interactive trx, Linear for interactive trx Cache population strategy Partition data to workaround performance and size limits. Choose data store that best meets the needs Offload background jobs to workers using async messaging for decoupling them CDN: Serve static content from CDN to offload from compute Auto-scaling: Schedule vs. Parameter
  30. Let’s go clockwise Sharding: UBER partition data by city which leads to hotspot. Index table pattern: Using search for indexing Valet key: Shared access signature
  31. There’s a reason devs have done this.
  32. Vertical slice of business domain w/ each slice becoming individual service MSA is all about reducing dependency among hundreds of services
  33. Since there’re 100s of services, somebody needs to know which service is running on where. GW does that. GW can also takes care of cross cutting concerns such as logging, auth etc. Each service does only a single responsibility Isolated from other services in terms of failure All it exposes is contract, don’t leak internal details Data should be private to its service Model each service around business not technology nor just data. Services should interact only via API, not direct access to data Decentralize all things especially release process for independent deployment.
  34. System of engagement requires continuous innovation for the better user experience It requires frequent deployment Microservices make more sense to complex business domain than simple CRUD based ones.
  35. CQRS segregates R/W and manage them separately It is not limited to but often used in MSA Here’s the reason
  36. Once delivery is completed, account service has to do followup tasks But account shouldn’t directly access data belong to Delivery Other services like Delivery history, Drone also consumes the same events Using transaction log or event sourcing is another option. There’re OSS components that supports this scenario.
  37. Benefits: No point to point Integration Very well decoupling producers from consumers Highly scalable and distributable Challenges: Reliability, when you lose one event it not easy to recover from there Variations: Simple event processing: downstream actions are performed as new events are generated without time lag. Azure functions for many triggers Complex event processing: Process a series of events for pattern matching. Using ASA, Storm/Spark Event stream processing: Use streaming service and multiple consumer per different subsystem. e.g. IoT workload
  38. - Devices can be connected directly or indirectly via a gateway Cloud gateway provides endpoints for device connectivity and facilitates bidirectional communication with the backend system ML to detect patterns (F1 racing) App backend does device control process and send command via GW to devices Often IoT solution is integrated with BI or other LoB systems via serving/adaptor
  39. - Devices can be connected directly or indirectly via a gateway Cloud gateway provides endpoints for device connectivity and facilitates bidirectional communication with the backend system ML to detect patterns (F1 racing) App backend does device control process and send command via GW to devices Often IoT solution is integrated with BI or other LoB systems via serving/adaptor
  40. Real-time processing Batch processing Process on-the-fly by streaming and store the interim results then do more analysis Store incoming data in cold storage first, preprocess then do stream analysis Lambda vs. Kappa Real-time and batch are converging in Kappa architecture. Spark structured streaming is a way to go.
  41. Upload large dataset using multiple threads in parallel Use protocol conversion if necessary to speed up data transfer Scrub sensitive data before publishing them Encrypt sensitive data using Partition the data (e.g. per day) Secure the data access by XXX Automate data ingestion and XXX by orchestration tools Implement retention policy Backup? Provision a separate cluster for Hbase/Storm than batch processing Data skew problem Cascading process
  42. CloudEra in Batch Upload large dataset using multiple threads in parallel Use protocol conversion if necessary to speed up data transfer Scrub sensitive data before publishing them Encrypt sensitive data using data encryption at rest Partition the data (e.g. per day) Secure the data access by XXX Automate data ingestion and XXX by orchestration tools Implement retention policy Backup? Provision a separate cluster for Hbase/Storm than batch processing Data skew problem Cascading process Scenario: Predictive analysis in construction machines (Caterpillar, Sandvik) Connected car (Toyota) Near real-time ETL (MS sales) Interactive query in eCommerce (Jet.com) Ingestion: Caterpillar: 250 eps Sandvik: 150K eps (PB per customer) Serving layer: Spark to generate Parquet format table for Tableau Spark connector for DocDB
  43. 4 major use cases Batch like ETL before sending data to BI Real-time processing (Analyze click stream and optimize content placement) Interactive data exploration (Data scientist explores new data and find patterns) Predictive analysis (F1 racing) Weblogs F1 racing Boeing 787 Car telematics: driving pattern to estimate risk of incident
  44. Context map shows mapping among bounded context as well as domains and BC Domain represents problem space BC represents solution space
  45. There’s no mechanical way to make decisions. Some aggregates deserve to be microservices, others don’t. Some aggregates should count on the ones in different BC. Responsibility of aggregates Delta Team size Dependency Latency
  46. How delivery service know its status? Is it coming from delivery mgmt service? (pull or push) Do we want to merge requestHandler and GW? GW does only token checking, delegate auth to auth service in account BC Why it has Package, Drone, Delivery as service but no service for account and 3rd party? Do we need them? Why doesn’t delivery service contain drone and package aggregate? Does drone need persistent storage or cache? What is the best API style? Depending on the responsibility and latency req of the drone service in this context, it can be just caching status Every event from drone come via EventHub to only DroneMgmt or + Delivery service? Account service subscribes delivery events and do the following once it’s completed Collect ratings, send emails, schedule payment
  47. How delivery service know its status? Is it coming from delivery mgmt service? (pull or push) Do we want to merge requestHandler and GW? GW does only token checking, delegate auth to auth service in account BC Why it has Package, Drone, Delivery as service but no service for account and 3rd party? Do we need them? Why doesn’t delivery service contain drone and package aggregate? Does drone need persistent storage or cache? What is the best API style? Depending on the responsibility and latency req of the drone service in this context, it can be just caching status Every event from drone come via EventHub to only DroneMgmt or + Delivery service? Account service subscribes delivery events and do the following once it’s completed Collect ratings, send emails, schedule payment
  48. Three main areas In cloud applications. There’s no clear distinction between them. For example, batch operations such as daily report can be implemented as backend service or part of data analysis. IIoT and Big data has some overlaps. User mgmt is integrated with AD, CRM etc. CDN & Notification?