docker & microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - docker 与微服务.pdf ·...

51
Docker & Microservice ᨋਤশ@໒ਫ਼ฬ

Upload: others

Post on 16-Jul-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Docker & Microservice

@

Page 2: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

60+

2014.5.12Docker & Microservice

Page 3: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

70%

- -

380 98%

- ·

Page 4: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

+

Page 5: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 6: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 7: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Scrum

Page 8: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 9: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

EA Coding.net

DaoCloud.io

Page 10: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 11: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 12: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 13: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 14: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 15: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 16: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 17: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 18: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 19: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 20: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 21: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 22: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 23: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

DB

EventBus

Conmand

Page 24: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

CQRS

EDA

Microservice

Page 25: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

EDA EDA

EDA

Page 26: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

CQRS

Page 27: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Domin Event

Evans DDDService Repository

Page 28: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Saga

Page 29: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 30: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

DDD+CQRS+EDA

CQRS Architecture

Page 31: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Microservice

Page 32: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Advantages of Monolithic Applications

Well Known

IDE-friendly

Easy Sharing

Simplified Testing

Easy Deployment

IDE

Page 33: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Disadvantages of Monolithic Applications

Limited Agility

Obstacle for continuous delivery

“Stuck” with Technology Stack

Technical Debt

Page 34: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Characteristics of MicroservicesDomain Driven Design

Single Responsibility Principle

Explicitly Published Interface

Independently Deploy, Upgrade, Scale, Replace

Potentially Heterogeneous/Polyglot

Light-weight Communication

Page 35: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Advantages of Microservices

Easier to develop, understand, and maintain

Starts faster than a monolith

Local change can be easily deployed

Scale independently

Improves fault isolation

No long term commitment to any stack

Page 36: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 37: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Aggregator Microservice Design Pattern

Page 38: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Proxy Microservice Design Pattern

Page 39: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Chained Microservice Design Pattern

Page 40: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Branch Microservice Design Pattern

Page 41: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Shared Data Microservice Design Pattern

Page 42: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Asynchronous Messaging Microservice Design Pattern

Page 43: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

sub RabbitMq

Kong

S1

S2

Sn

DB

DB

N

http

http

http

http https TDNS

http

http

http

http

iOS

Android

Web

.netsub

pub

Page 44: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

http://blog.arungupta.me/microservices-monoliths-noops/

http://blog.arungupta.me/microservice-design-patterns/

http://martinfowler.com/articles/microservices.html

Page 45: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Docker

No Docker No Microservices

Page 46: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

InfrastructureAsCode

Docker Compose

Dockerfile

CI/CD

Page 47: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Caas

Page 48: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 49: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

Docker Swarm

Docker Compose 2.0

Page 50: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than
Page 51: Docker & Microservice7xi8kv.com5.z0.glb.qiniucdn.com/谭宗威 - Docker 与微服务.pdf · Advantages of Microservices Easier to develop, understand, and maintain Starts faster than

/