编辑: ACcyL | 2019-01-04 |
2017 Amazon Web Services C EC2 Container Service 上的微服务架构 May
2017 Page
2 of
31 ? 2017, Amazon Web Services, Inc.
or its affiliates. All rights reserved. 注意 本文档仅供参考所用.文中所述仅代表文档发布之际 AWS 的产品信息和作者实践 经验,如有更改,恕不另行通知.用户应对本文中所有信息准备确和 AWS 产品及 服务的使用有自己的评估,并对此负责,本文不提供任何显式或隐式的保证.本文 档不代表 AWS, 其附属公司,供应商或许可商提供任何保证、表示、合同承诺. AWS 与其用户间的所有责任和义务关系只由 AWS 使用协议控制,本文不参与,也 不构成对 AWS 与其用户间任何协议的修改. Amazon Web Services C EC2 Container Service 上的微服务架构 May
2017 Page
3 of
31 注意
2 简介
4 什么是微服务架构
4 微服务架构的特性
4 单体型架构 vs. SOA vs. 微服务架构
5 微服务的益处
6 微服务架构面临的挑战
8 微服务与云平台
9 ECS 上构建微服务架构
10 ECS 简介
11 ECS 的架构及工作原理
12 分层构建微服务方案
16 解决微服务架构中的常见问题
19 总结
26 客户案例
26 引用
31 Amazon Web Services C EC2 Container Service 上的微服务架构 May
2017 Page
4 of
31 简介 微服务是一种软件开发的组织和架构方法,它可以加快软件交付周期、增强创新和 自主性,提高软件的可维护性和可伸缩、可扩展性,同时也提高了企业开发和发布 软件服务的能力.使用微服务架构,软件产品将由多个独立的、可通过 API 进行 交互的服务组成.这些服务将由各个小团队独自负责. 通过本白皮书,我们将首先总结一下微服务架构的特性,讨论构建微服务架构面临 的挑战和难题,然后介绍 AWS 的ECS 容器集群服务,以及如何利用 ECS 结合其 他AWS 提供的服务解决微服务架构中遇到的难题. 什么是微服务架构 微服务架构的特性 近些年,微服务架构的概念变得越来越火1,事实上微服务并非某项具体的技术或 框架,它也不是软件工程学中新的概念,而是一些成功的,经过实践论证的概念的 组合,比如面向对象方法论、敏捷开发、面向服务架构、API-first 设计、以及持 续集成. 微服务 这个名词是一个概括性的术语,很难对其进行精确的定义.但是所有微 服务架构方法都具有以下共同特性: ? 去中心化: 微服务架构是由去中心化数据管理的分布式系统组成.它不依 赖中心数据库上统一的数据库模式.每一个服务都有自己独立的数据模型. 去中心化的另一个含义是,每个服务在开发、部署、管理和维护过程中也是 相互独立的,不依赖某个中心系统. ? 独立: 微服务架构中各个服务组件都可以独立进行更改、升级和替换,而不 会影响其他服务组件的正常功能.同样,负责各个服务组件的团队之间也都 是相互独立的,互不干扰的. ? 专注做好一件事:每个服务组件都是专注于某个问题域的功能集合,一旦某 个服务复杂度到达一定程度,则应该考虑将其进行服务切分或对其进行再次 微服务架构. ? 多语种:微服务并不是 一体通用 的方法,它允许各个团队根据自己的喜 好选择最适合自己问题域的开发语言、开发工具.因此,微服务无论在操作 Amazon Web Services C EC2 Container Service 上的微服务架构 May