Distributed architecture in a cloud native microservices ecosystem

49
Distributed Architecture in a Cloud Native Microservices Ecosystem Zhenzhong Xu

Transcript of Distributed architecture in a cloud native microservices ecosystem

Page 1: Distributed architecture in a cloud native microservices ecosystem

Distributed Architecture

in a Cloud Native Microservices Ecosystem

Zhenzhong Xu

Page 2: Distributed architecture in a cloud native microservices ecosystem

Real-time Data Infrastructure – Netflix

Cloud Infrastructure - Microsoft

About Me

Page 3: Distributed architecture in a cloud native microservices ecosystem

About Netflix

● 2009: Monolithic -> Cloud Native Microservices Architecture

● 2016: Completed Cloud Migration● Today: 500+ microservices, 1000x growth

Page 4: Distributed architecture in a cloud native microservices ecosystem

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

Page 5: Distributed architecture in a cloud native microservices ecosystem

Microservices

Source: Google Trends

Page 6: Distributed architecture in a cloud native microservices ecosystem

What’s Important?

Availability Scalability

Agility Efficiency

Customer Experience

Page 7: Distributed architecture in a cloud native microservices ecosystem

Understanding Cloud

Multi-tenancy Scalable On-Demand Elastic

High-availability Simplified-operation Low-overhead

Low-maintnence Self-healing Fast-iterations

& Magic

Page 8: Distributed architecture in a cloud native microservices ecosystem

Understanding Cloud

• Layers of >Abstractions>

• Layers of [Isolations]

• Unpredictable Failure & Latency Mode

Page 9: Distributed architecture in a cloud native microservices ecosystem

Abstractions

Compute, Network, & Storage Abstractions

SaaS

PaaS

IaaS

OS

Hardware

Page 10: Distributed architecture in a cloud native microservices ecosystem

Isolations

Region

AZ

Rack

Instance

VM

(Process?)

(Threads?)

Page 11: Distributed architecture in a cloud native microservices ecosystem

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

Page 12: Distributed architecture in a cloud native microservices ecosystem

Cloud Native

• Microservice

• Immutable Infrastructure

• Decentralized CD/CI

• DevOps

• Anti-fragility

• Self-service & Automation

Availability Scalability

Agility Efficiency

Customer Experienc

e

Page 13: Distributed architecture in a cloud native microservices ecosystem

Observe

Orient

Decide

Act CD

Page 14: Distributed architecture in a cloud native microservices ecosystem

Observe

Orient

Decide

Act

Innovation

CD

Page 15: Distributed architecture in a cloud native microservices ecosystem

Observe

Orient

Decide

Act

Innovation

Big Data

CD

Page 16: Distributed architecture in a cloud native microservices ecosystem

Observe

Orient

Decide

Act

Innovation

Big Data

Culture

CD

Page 17: Distributed architecture in a cloud native microservices ecosystem

Observe

Orient

Decide

Act

Innovation

Big Data

Culture

Cloud

CD

Page 18: Distributed architecture in a cloud native microservices ecosystem

Fusion Catalyst

– Culture

• Highly Aligned, Loosely Coupled

• High Trust, High Performance

• Freedom & Responsibility

• Context, not Control

• Minimum Process

Page 19: Distributed architecture in a cloud native microservices ecosystem

Cloud Native Microservices Ecosystem

Technology

CultureOperation

Page 20: Distributed architecture in a cloud native microservices ecosystem

From 10,000 Feet

Page 21: Distributed architecture in a cloud native microservices ecosystem

Face of Microservices

Page 22: Distributed architecture in a cloud native microservices ecosystem

Stuff we built

From Operating in a Cloud Native

Microservice Environment

Page 23: Distributed architecture in a cloud native microservices ecosystem

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.

Page 24: Distributed architecture in a cloud native microservices ecosystem

Circuit Breaker

https://github.com/Netflix/Hystrix

Page 25: Distributed architecture in a cloud native microservices ecosystem

Resilience

Simian Army (https://github.com/Netflix/SimianArmy)

Page 26: Distributed architecture in a cloud native microservices ecosystem

Continuous Delivery

Spinnaker (http://www.spinnaker.io/)

Page 27: Distributed architecture in a cloud native microservices ecosystem

Configuration Management

Archaius (https://github.com/Netflix/archaius)

Page 28: Distributed architecture in a cloud native microservices ecosystem

Distributed Cache

EVCache (https://github.com/Netflix/EVCache)

Page 29: Distributed architecture in a cloud native microservices ecosystem

Data PipelineKeystone Pipeline (http://techblog.netflix.com/search/label/keystone)

Page 30: Distributed architecture in a cloud native microservices ecosystem

Monitor & Alert

Atlas (https://github.com/Netflix/atlas)

Page 31: Distributed architecture in a cloud native microservices ecosystem

Active-Active Regions

Page 32: Distributed architecture in a cloud native microservices ecosystem

Microservice Ecosystem

● More: https://netflix.github.io/

Page 33: Distributed architecture in a cloud native microservices ecosystem

How to

Develop, Integrate, Operate, and Optimize

a Microservice

Page 34: Distributed architecture in a cloud native microservices ecosystem

Build a Microservice

Optimize for Speed. Fast iterations.

Page 35: Distributed architecture in a cloud native microservices ecosystem

Build a Microservice

Polyglot technologies

Page 36: Distributed architecture in a cloud native microservices ecosystem

Build a Microservice

● Highly Aligned, Loosely Coupled

● Freedom & Responsibility

● Context, not Control

● High Trust, High Performance, Minimum Process

Page 37: Distributed architecture in a cloud native microservices ecosystem

Integrate a Microservice

Page 38: Distributed architecture in a cloud native microservices ecosystem

Discovery

Devices

Internet

ELBProxy APID

iscovery

Microservice A

MicroserviceMicroservice

MicroserviceMicroservice

MicroservicePublic IPs

Private IPs

Page 39: Distributed architecture in a cloud native microservices ecosystem

Devices

Internet

ELBProxy APID

iscovery

Microservice A

MicroserviceMicroservice

MicroserviceMicroservice

Microservice

Microservice B

Page 40: Distributed architecture in a cloud native microservices ecosystem

Embrace Failures

● Assume all failure modes

● Circuit breaker

Page 41: Distributed architecture in a cloud native microservices ecosystem

Embrace Failures

● Chaos Engineering○ Instance termination○ Zone partitioning○ Region evacuation

● Limit Blast Radius

Page 42: Distributed architecture in a cloud native microservices ecosystem

Embrace Failures

This means states need to be available across all regions at any point of time.

Page 43: Distributed architecture in a cloud native microservices ecosystem

Cache Replication

Eventual consistent replication protocol

Page 44: Distributed architecture in a cloud native microservices ecosystem

Operate a Microservice

Page 45: Distributed architecture in a cloud native microservices ecosystem

Operations

● Automatic Deployment

● Monitoring & Alertings

● DevOps

● On-call

Page 46: Distributed architecture in a cloud native microservices ecosystem

Optimize a Microservice

Page 47: Distributed architecture in a cloud native microservices ecosystem

Optimize a Microservice

● Incremental features

● Data drivenObserve

Orient

Decide

Act CD

Page 48: Distributed architecture in a cloud native microservices ecosystem

Questions?

Page 49: Distributed architecture in a cloud native microservices ecosystem