亚马逊架构师团队经理代闻 - 微服务在云上的架构演进
2020-02-27 549浏览
- 1.微服务在云上的架构演进 代闻 AWS解决方案架构师 团队主管
- 2.议程 § 微服务概要 § 云上的架构的演进 § 服务发现与访问 § 数据存储与管理 § 自动化部署 § 监控与日志 § Q&A
- 3.微服务概要
- 4.微服务概要 从广义概念上来看,微服务是SOA的子集 参考:https://martinfowler.com/articles/microservices.html
- 5.但是,你确定需要微服务吗?
- 6.微服务带来的变化 Project à Product Shared Data à API or Nothing Dev and Ops à DevOps 参考:https://martinfowler.com/articles/microservices.html
- 7.一个微服务团队的组成
- 8.微服务架构的特点 • 以产品功能划分服务 (You build it, you run it.) • 决策权交给各个服务(而不是类似ESB的集中决策) • 服务之间只能通过API交互(不可以直接访问或修改其他服务的数据) • 面向失效的设计 • 基础架构自动化 • 不断演进 (Evolutionary Design) 参考:https://martinfowler.com/articles/microservices.html
- 9.2016年,Netflix在AWS上的微服务架构 参考:https://www.infoq.com/presentations/netflix-chaos-microservices
- 10.2016年,Netflix在AWS上的微服务架构 NetflixOSS:http://netflix.github.io/参考:https://www.infoq.com/presentations/netflix-chaos-microservices
- 11.2017年,GILT在AWS上的微服务架构 参考:https://www.slideshare.net/AmazonWebServices/aws-reinvent-2016-from-monolithic-to-microservices-evolving-architecture-patterns-in-the-cloud-arc305
- 12.2017年,Lyft结合AWS服务部署的微服务架构 开源项目Envoy地址:https://github.com/lyft/envoy资料参考:https://www.microservices.com/talks/lyfts-envoy-monolith-service-mesh-matt-klein/
- 13.云上微服务架构的演进
- 14.微服务架构实现要点 § 服务发现与访问 § 数据存储与管理 § 自动化部署 § 监控与日志
- 15.服务发现与访问(基于EC2) 方法一:基于Client LibraryNetflix:Eureka:服务发现 Hystrix:断路器(Lib)
- 16.服务发现与访问(基于EC2) 方法二:基于Proxy LyftEnvoy:
- 17.服务发现与访问(基于托管服务) 基于Serverless的服务发现 ++
- 18.服务发现与访问(基于托管服务) API Gateway:Edge Proxy的无服务器化GILT:Client API Gateway Monolith on EC2 Microservice 1 (Lambda) Microservice 2 (ELB+EC2) Microservice 3 (AWS Elastic Beanstalk)
- 19.Amazon API Gateway • 加强API的一致性(Swagger) • 监控关键指标 • API调用缓存 • 提供认证和鉴权 (IAM) • 计数和限流 • 访问加速
- 20.数据存储与管理(基于EC2) 高可用架构与最终一致性 参考:https://www.infoq.com/presentations/netflix-failure-multiple-regions
- 21.数据存储与管理(基于EC2) 高可用架构与最终一致性 参考:https://www.infoq.com/presentations/netflix-failure-multiple-regions
- 22.数据存储与管理(基于托管服务) Cache NoSQL SQL Object Search Streaming Amazon ElastiCache Amazon DynamoDB Amazon Amazon RDS Redshift Amazon Amazon S3 Glacier Amazon Elasticsearch Service Amazon Kinesis
- 23.数据存储与管理(基于托管服务) 高可用与最终一致性DynamoDB:托管NoSQL,一个region内支持强一致性或最终一致性 DAX:DynamoDB的托管缓存 DynamoDB Stream:严格顺序的数据库操作流 DynamoDB Stream + Lambda:数据复制无服务器化
- 24.数据存储与管理(基于托管服务)GILT:Service
- 25.事件驱动的数据访问(基于托管服务) Event with/without state
- 26.DevOps - AWS持续集成和部署服务 Code Source AWS CodePipeline Build Test Production AWS CodeStar AWS CodeCommit AWS CodeBuild Third Party Tooling AWS CodeDeploy
- 27.DevOps - 基础设施自动化Cloudformation:Infrastructure as Code, 让基础架构可以像代码一样版本化
- 28.DevOps – 容器管理平台ECS
- 29.Netflix使用ECS部署容器集群
- 30.DevOps on AWS – 第三方工具支持
- 31.监控 (托管服务+第三方) • Instancelevel:'>level: