Architecting on AWS 学习笔记系列文章导航页面
学习目标
- 什么是云
- 完善的框架
- AWS全球基础设施
- 一个简单的架构及区域选择
AWS起源于Amazon购物网站高可用且易扩展的需求。在此之前,Amazon的电子商务经历了所有电商的痛点:
- 为了应对快速发展的业务,且迫于快速上线占领市场的压力,应用程序和系统架构在前期缺少合理规划,各个服务模块相对独立,模块间调用关系复杂;
- 为了支撑日益暴增的用户访问请求,需要不定期扩容,计算、存储资源的增加耗时较长(容量评估,设备采购,系统搭建、调测、上线),这个时间一般以月为单位;
- 参与系统开发的不同团队各自构建自己的资源,导致某些资源的重复开发,导致人力和时间成本的额外增加。
针对第一个问题,Amazon建立了一套服务开发标准:文档齐全的解耦的APIs。
针对第二个问题,Amazon决定在其基础设施上构建内部服务,以便于创建高度可用、可扩展且稳定的架构。
正文
【云简介】
云是一种动态、可编程、按需付费的资源。其将IT基础设置作为可编程资源使用,你可以以传统方法无法实现的方式快速建立和撤销基础设施。基于这些资源,你只需点击几次鼠标,就可以实现业务服务的自动扩容,由此带来的灵活性和敏捷性可以真正改变你的业务。按需付费是云资源的一个最明显优势,你无需承诺长期使用,可以更改策略以应对自身业务发展需求,可以随时停止使用这些服务。
云计算存在六大优势:
- 资本支出可控
- 精准的容量预测
- 速度和敏捷性
- 数分钟内实现全球化部署
- 规模效益
- 专注于重要工作
【完善的框架】
互联网的世界发展至今,一个完善的架构必定具备下图所示的五个关键点也即系统复杂度所在,我们称为五大支柱。
- 安全性
包含身份认证与授权机制,实现可追踪性,在所有层确保安全性,风险评估与缓解策略。 - 可靠性 – 可用性(高可用)
传统环境中确保可靠性会十分困难,单点故障、缺乏自动化、缺乏弹性都会影响系统整体的可靠性。
可靠性主要体现在可以动态获取资源以满足业务需求,可以迅速从基础设施或者服务故障中恢复,可以缓解中端,例如配置错误,暂时性网络中断。 - 成本优化 – 低成本
成本优化是所有良好架构设计的长期要求。这一过程重复进行,应该在整个系统生命周期内完善和改进。了解当前系统架构相对于目标的效率,最终可以帮你消除不必要的费用。考虑使用托管服务,因为其以云的规模运行,并且可以实现耕地的事务处理成本或者服务成本。 - 性能效率 – 高性能
考虑性能时,需要有效使用计算资源并在需求变化时保持资源效率,从而尽可能提高性能。此外,通过对先进技术的了解及运用或者向服务提供商咨询,同样可以帮你选择更合理的技术方案,进而提升你的系统效率。 - 卓越运维 – 当前优良微服务架构必须面对的且必须解决的问题
在创建设计或架构时,你必须了解其如何部署、更新和运作。你必须致力于缺陷消除和安全修复工作,并通过日志记录工具进行观察。
在AWS中,你可以将整个工作负载(应用程序、基础设施、策略、管理和操作)视为代码。工作负载可以在代码中定义,并使用代码来更新。这意味着你可以将用于应用程序代码的设计规范应用到堆栈中的每个元素。
【AWS全球基础设施】
AWS在逐步拓展全球基础设施,帮助全球用户实现更低的延迟和更高的吞吐量,并确保你的数据仅驻留在你所指定的区域内。
隔离的区域可以让特定的机构和客户满足特定的法规和合规性要求,从而将敏感的工作负载转移到云中。
AWS产品和服务的提供情况取决于具体的区域,并非所有区域所提供的服务都一样。
你可以在一个区域中运行应用程序和工作负载,以减少终端用户的延迟,同时避免维护运营全球基础设施所产生的前期投资、长期投资和扩展问题。
- 数据中心
AWS数据中心以集群的方式在全球多个区域构建,并且都处于在线状态。 - 可用区
可用区可以包含一个或者多个数据中心,但是每个数据中心只能属于一个可用区。你负责选择自己的系统所在的可用区,系统可以跨多个可用区部署,以保持足够的弹性。 - 区域
一个区域至少包含两个可用区。当你在特定区域中存储数据时,AWS保证数据不会在该区域之外被复制,也就是说AWS永远不会将你的数据移出你所放的区域。如果你有业务需求,你需要自己负责在跨多个区域之间复制数据。跨区域复制数据的时候,请务必主语当地的法律法规隐私和合规性要求。 - 边缘站点
为了以更低的延迟想终端用户提供内容服务,Amazon CloudFront使用了一个包含150个接入点的全球网络,这些接入点遍布在全球29个国家/地区的65个城市。
【一个简单的架构及区域选择】
- 终端用户的访问请求首先通过Amazon Route 53进行区域Regin级别(DNS)路由至某一个特定区域Regin。
- 为了以较低时延处理请求中的静态资源,已经被路由转发的请求流量首先会被特定区域Regin的边缘站点Amazon CloudFront处理(缓存)。
- 针对请求中的动态资源,经过解析,终端用户请求将被进一步路由到特定VPC的互联网网关Internet Gateway组件。
- 互联网网关将通过ELB或者NAT Gateway完成与应用子网中EC2的访问。
一旦业务所需架构设计完成,落地时就需要考虑合理的选择区域:
- 数据属地和监管合规性
- 用户与数据之间的距离 (低延迟,客户体验)
- 服务和功能的可用性 (有些服务并非存在于所有的可用区都会提供,跨区域服务访问延迟增加,服务定期扩展到新的可用区)
- 成本效益