亚马逊架构师团队经理代闻 - 微服务在云上的架构演进

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: