distributed architecture in a cloud native microservices ecosystem
TRANSCRIPT
Distributed Architecture
in a Cloud Native Microservices Ecosystem
Zhenzhong Xu
Real-time Data Infrastructure – Netflix
Cloud Infrastructure - Microsoft
About Me
About Netflix
● 2009: Monolithic -> Cloud Native Microservices Architecture
● 2016: Completed Cloud Migration● Today: 500+ microservices, 1000x growth
About Netflix
● 83M+ Subscribers● 125M+ Streaming Hours / Day● > 1/3 Peak NA Internet Traffic● Thousands of Device Types● Many Tens of Thousands of VMs● 3 Active-Active Regions Across the World
Microservices
Source: Google Trends
What’s Important?
Availability Scalability
Agility Efficiency
Customer Experience
Understanding Cloud
Multi-tenancy Scalable On-Demand Elastic
High-availability Simplified-operation Low-overhead
Low-maintnence Self-healing Fast-iterations
& Magic
Understanding Cloud
• Layers of >Abstractions>
• Layers of [Isolations]
• Unpredictable Failure & Latency Mode
Abstractions
Compute, Network, & Storage Abstractions
SaaS
PaaS
IaaS
OS
Hardware
Isolations
Region
AZ
Rack
Instance
VM
(Process?)
(Threads?)
Cloud Fallacies
• VMs and Network are stable
• Network has no latency
• Network is secure
• Bandwidth is unlimited
• Network topology is static
• Data transfer has no overhead
Cloud Native
• Microservice
• Immutable Infrastructure
• Decentralized CD/CI
• DevOps
• Anti-fragility
• Self-service & Automation
Availability Scalability
Agility Efficiency
Customer Experienc
e
Observe
Orient
Decide
Act CD
Observe
Orient
Decide
Act
Innovation
CD
Observe
Orient
Decide
Act
Innovation
Big Data
CD
Observe
Orient
Decide
Act
Innovation
Big Data
Culture
CD
Observe
Orient
Decide
Act
Innovation
Big Data
Culture
Cloud
CD
Fusion Catalyst
– Culture
• Highly Aligned, Loosely Coupled
• High Trust, High Performance
• Freedom & Responsibility
• Context, not Control
• Minimum Process
Cloud Native Microservices Ecosystem
Technology
CultureOperation
From 10,000 Feet
Face of Microservices
Stuff we built
From Operating in a Cloud Native
Microservice Environment
Discovery
Netflix Eureka (https://github.com/Netflix/eureka) is a RESTful service used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers.
Resilience
Simian Army (https://github.com/Netflix/SimianArmy)
Configuration Management
Archaius (https://github.com/Netflix/archaius)
Data PipelineKeystone Pipeline (http://techblog.netflix.com/search/label/keystone)
Monitor & Alert
Atlas (https://github.com/Netflix/atlas)
Active-Active Regions
How to
Develop, Integrate, Operate, and Optimize
a Microservice
Build a Microservice
Optimize for Speed. Fast iterations.
Build a Microservice
Polyglot technologies
Build a Microservice
● Highly Aligned, Loosely Coupled
● Freedom & Responsibility
● Context, not Control
● High Trust, High Performance, Minimum Process
Integrate a Microservice
Discovery
Devices
Internet
ELBProxy APID
iscovery
Microservice A
MicroserviceMicroservice
MicroserviceMicroservice
MicroservicePublic IPs
Private IPs
Devices
Internet
ELBProxy APID
iscovery
Microservice A
MicroserviceMicroservice
MicroserviceMicroservice
Microservice
Microservice B
Embrace Failures
● Assume all failure modes
● Circuit breaker
Embrace Failures
● Chaos Engineering○ Instance termination○ Zone partitioning○ Region evacuation
● Limit Blast Radius
Embrace Failures
This means states need to be available across all regions at any point of time.
Cache Replication
Eventual consistent replication protocol
Operate a Microservice
Operations
● Automatic Deployment
● Monitoring & Alertings
● DevOps
● On-call
Optimize a Microservice
Optimize a Microservice
● Incremental features
● Data drivenObserve
Orient
Decide
Act CD
Questions?