导航公共云可用性区域以获得最佳性能
扫描二维码
随时随地手机看文章
谷歌公司最近的宕机事件表明,可用性区域并不是获得高可用性的灵丹妙药。人们需要了解云计算供应商区域隔离方法的差异将如何影响工作负载性能。
对于大规模运营的云计算提供商而言,云平台发生故障和中断是可以理解的(也可能是不可避免的)。AWS、Google、Microsoft这三个主要的云计算供应商必须在运营效率和高可用性之间取得平衡,运营效率通过自动化得到改善,而高可用性则通过物理上不同的区域得到改善。
可用性区域旨在提供冗余性,但仍可能在其中发生广泛的系统故障。云计算区域提供了更大程度的逻辑分离,但它们为跨区域复制工作负载的组织带来了一些问题。
尽管存在复杂性和权衡,企业需要了解与区域隔离相关的变量,以便他们可以设计高可用性和对系统性故障更具弹性的应用程序。
可用性区域和云区域如何协同工作AWS、Microsoft Azure和谷歌云都依赖于相互连接的云计算设施的三个层次结构:数据中心、松散耦合的可用性区域,以及地理分隔的云区域。
可用性区域是两个或多个地理位置相近的数据中心的集合,通常位于同一个都市区,并通过冗余、超高速、低延迟的网络电路连接。而多个可用性区域可以组成一个云区域。
云区域通过专用的高性能线路连接,微软公司称之为“延迟定义的周边”。云计算提供商通常在一个国家拥有多个云区域。例如,AWS公司在美国有四个商业性云区域,另外两个云区域专门用于公共部门。
许多云计算服务(包括一些数据库、存储层和负载平衡器)旨在跨可用性区域自动配置资源。其他服务(如AWS身份和访问管理或Azure CDN)可在所有云区域自动使用。正如谷歌中断事件所示,数据中心的耦合可能导致整个可用性区域在适当的条件下发生故障。
云计算提供商方法中的变量谷歌公司的中断事件还突出了云计算供应商管理可用性区域的不同之处。例如,AWS公司声称拥有最大程度的设施独立性。亚马逊公司首席技术官Werner Vogels 2018年在博客中表示,如果一个可用性区域电力中断,不会影响另一个可用性区域运营,而一个可用性区域中的软件错误不太可能蔓延到另一个可用性区域。他补充说,AWS公司为此还专门构建了工具和程序,因此它们不会影响多个云区域。
与此同时,微软公司在推出可用性区域方面进展缓慢,截至目前,其54个全球云区域中只有10个云区域有这些可用性区域。去年9月,缺乏广泛的可用性区域导致微软Azure在美国中南部的云区域发生大规模的中断。
Azure Post Mortem强调了可用性区域内低延迟连接的价值,指出跨区域复制为许多服务增加了太多的延迟。就这些数据中心之间的连接而言,云计算运营商对其内部设施、系统和网络的设计细节是众所周知的隐私。然而,一些公开的细节也暴露了它们的规模和复杂性。
AWS公司表示,连接其各种数据中心和云区域的专用网络建立在通过跨洋电缆连接的全球冗余并行100 GbE城域光纤网络上。
谷歌公司运营着一个全球私有网络,估计占全球所有互联网流量的25%左右。谷歌公司在2018年表示,在过去三年中花费了300亿美元来建设其云计算基础设施,包括增加新的区域和几条海底光缆。
谷歌公司使用自行开发的软件定义网络和分布式控制平台以及网络结构管理器,通过跨多个数据中心复制和共享配置数据来提供高可用性(HA)。它还使用容器集群来支持实时工作负载迁移和“无中断”数据平台升级。
微软Azure表示其云区域旨在将故障隔离到一个云区域中,并且一个云区域中的故障不应影响其他区域。
使用云内和云平台之间的区域跨多个云区域分发应用程序工作负载和数据库是通过云计算基础设施实现高可用性的最佳方式。但是,组织必须在这样做时必须理解和设计网络性能的可变性。
云计算提供商在路由流量方面存在差异,这会显着影响网络延迟。没有一个云计算提供商可以保证甚至公布其区域间性能的数据。
然而,网络监控供应商ThousandEyes公司于2018年11月进行的详细研究提供了大量有用的见解。虽然其演示文稿的观点还需要一些探讨和研究,但以下是云计算广域网性能的一些关键点。
1 可用性区域内的性能优异,一致性满足低于2ms网络延迟的目标。
2 云区域之间表现在美国和欧洲最好,在亚洲和大洋洲表现最差。美国和欧洲地区之间的表现也相当不错。
3 亚洲的各供应商的绩效差异很大,其中AWS公司具有最高的网络可变性。
4 AWS、Azure、谷歌云将网络彼此对等,这意味着它们之间的流量不会流经主干,并遍历公共互联网。因此,在云平台之间移动数据时存在疏忽的数据包丢失和抖动,尽管在单个云场景中区域间延迟会有相同的差异。
在使用多个云区域来提高应用程序可用性时,需要考虑应用程序流量的来源(大多数最终用户所在的位置)以及区域间网络延迟的可变性,以及三大云计算提供商在路由全球流量的差异。