写点什么

Werner Vogels 报告“21 世纪的(云)架构”:可用性、可靠性和恢复能力

  • 2017-12-10
  • 本文字数:2780 字

    阅读完需:约 9 分钟

Amazon 的 CTO Werner Vogels AWS re:invent 2017 大会上做了一个主题演讲,探讨了构建“21 世纪架构”所需的核心理念。要点涉及:介绍“云原生”革命性架构中涌现的实践、安全正成为每个人的责任、混沌工程(Chaos Engineering)的优点等。

在演讲开篇,Vogels 就提出,当前驱动关键技术发展的是数据、物联网(IoT)、基于GPU 的机器学习计算(以 AWS’s EC2 P3 实例为代表)和深度学习。这些趋势的使用,在社会中引发了一系列的创新。例如,在业务内部采用“大数据”做分析,创建“智能环境”等。但是在过去的二十年中,用于与这些系统接口的数字输入和输出设备并未发生太大的改变。Vogels 认为,下一轮技术演进将聚焦于以人为中心的数字接入,尤其是“人人可用的语音解锁数字系统”。

接下来,Vogels 转而开始探讨有效架构设计的需求问题。有效的架构设计为接口支持技术和数据处理系统提供了动力。Vogles 给出了一系列的云架构实例,其中的关键主题(或支柱)就是在 AWS“架构良好框架(Well Architected Framework)”白皮书的中提出几点原则:

  • 卓越运营(Operational excellence);
  • 安全性;
  • 可靠性;
  • 性能效率;
  • 代价优化。

设计运行于云上的系统时,应遵循一系列的原则。包括:避免揣度容量的需求、在生产规模上测试系统、通过自动化简化架构试验、允许演进架构(Evolutionary Architectures)、用数据驱动架构、通过“游戏日”提高等。

系统用户数每增加两个量级,很可能架构就需要做根本上的改进。

Vogels 强调指出,构建一个安全的系统现已成为每个人的责任,包括开发人员、运维人员、应用程序安全及合规性团队。他提出了一系列的安全原则,包括:身份认证(实施强大的身份认同)、侦查性控制(允许可追溯性)、基础设施保护(在所有层面应用安全措施,并自动执行安全最佳实践)、数据保护(保护传输中的数据和静态数据)、事件响应(通过游戏日为安全事件做好准备)。

没有任何借口去回避数据加密。至少要对 PII(个人身份信息,Personally Identifiable Information)加密,并建立威胁模型……

好的安全实践应通过持续交付构建流水线得以强制执行。在流水线和系统中,事件前后均要应用“控制和验证”。架构即代码(IaC,Infrastructure as Code (IaC) )应该存储在版本控制系统(VCS)中,系统代码应尽早做验证,基础架构更改应强制通过模板进行,并在有需要时或是拿不准时阻止事件。在事件发生后,工程师应始终追踪敏感API 的访问情况,并使用SSoT(真实单一事件源,Single Source of Truth)做配置、验证来源,进而决定是否采取补救措施。为助力上述流程的自动化,Amazon 提供了一系列的AWS 服务,例如 AWS CloudTrail AWS Config Rules 以及新发布的 Amazon GuardDuty

Vogels 继续指出,可用性、可靠性和恢复能力是 21 世纪架构的核心原则。可用性的实现借助于以下方面:将系统部署到多个(地理)可用性区域、部署冗余组件、使用微服务体系结构实现系统、专注于面向恢复的计算、遵循分布式系统的最佳实践等。为提高可靠性,工程师必须考虑设计适用的“ N 个 9 量级的高可用性”,并对硬依赖和冗余依赖有一定了解。恢复能力可以通过快速失败(Failing Fast)、流量节流、指数回落(Exponential Fallback)重试,电路熔断(Circuit Breaking)以及使用幂等性标识(Idempotency Tokens)和过滤器等措施实现。

如何实现一个具体的可用性目标,这是一个商业上的决策。AWS 提供了工具,并确定设计和成本。

接下来,Vogels 向听众介绍了演讲者 Nora Jones 。Jones 是一名 Netflix 的高级软件工程师,她在演讲中探讨了恢复能力和混沌工程。大多数组织在使用云技术和微服务架构时,都采用了复杂的分布式系统。构建这样的系统中,尽管单元测试和集成测试也是非常重要的,但是它们尚不足以保证恢复能力。Jones 认为,对于解决一些复杂系统中的固有问题,混沌工程这一新兴学科至关重要。

混沌工程的核心思想是实践一些可在系统内引发失效的实验。工程师可以提出一个会导致系统失效的假设情景,进而设计一个实验去引发或模拟该情景,并以受控的方式开展实验。通过对结果的分析,进而继续循环开展实验。Jones 在演讲中提出了“混沌的力量”,即对系统内恢复能力测试的可能革新,其中包括:良好受控的重启和降级、有目标的混沌工程、级联失效和失效注入。

Netflix 在 2014 年就建立了一种称为“失效注入测试(FIT,Failure Injection Testing)”的框架。FIT 框架现在已经演变为“混沌自动化平台(ChAP,Chaos Automation Platform)”。ChAP 平台支持工程师自动开展混沌实验。更多细节可参见 InfoQ 在 QCon SF 大会上的相关访谈。Joines 在结束演讲时指出:“混沌(工程)并不会引发系统问题,而是会揭示这些问题”。为进一步探索这些概念,她向听众推荐了一本关于混沌工程的迷你书。这本书是她和Casey Rosenthal、Lorin Hochstein、Aaron Blohowiak 合著的。另外她也推荐去访问 www.principlesofchaos.org 网站。

Vogels 接下来介绍了 AWS 高级技术专家 Abby Fuller ,谈论容器技术在 21 世纪架构中发挥的作用。Fuller 介绍了包括 Segment Capital One 在内的一系列客户案例研究。在这些案例中,容器的打包和部署应用发挥了关键作用。随后,Fuller 简要地介绍了新发布的 AWS 托管 Kubernetes 服务 Amazon Elastic Container Service for Kubernetes( Amazon EKS )和 AWS Fargate 。AWS Fargate 是一种用于 Amazon ECS 和 Amazon EKS 的技术,使得无需托管服务器或集群就可运行容器。Fuller 在演讲中给出了一个重要信息,即 AWS 提供的托管服务使客户可以“只聚焦于工作负载”,而不必去做管理底层基础架构的“千篇一律的繁重工作”。并且只要保证系统架构的正确,应用程序就可以安全、可扩展并可靠地执行。

在结束 21 世纪体系结构的演讲前,Vogels 让听众构想一下未来软件应用程序开发的情形。他提出,在不远的将来,编写代码将完全是用于实现业务逻辑。Vogels 认为,随着“无服务器”架构(“功能即服务”和托管服务)的日益普及,这一愿景的实现可能会早于许多人的预想。

AWS re:invent 2017 大会中产品发布和公告的详细内容,可参见 InfoQ 的相关新闻报道:

更多 AWS re:invent 大会信息,可访问此次大会的官方主页。

查看英文原文: Werner Vogels on “21st Century [Cloud] Architectures”: Availability, Reliability and Resilience


感谢罗远航对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-12-10 18:001963
用户头像

发布了 391 篇内容, 共 143.4 次阅读, 收获喜欢 257 次。

关注

评论

发布
暂无评论
发现更多内容

后Kubernetes时代的虚拟机管理技术之kubevirt篇

谐云

虚拟机 #Kubernetes#

多样数字人民币钱包来袭,阻力与动力并存

CECBC

终于有大牛把Spring微服务架构设计第2版文档给整理完毕了

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

【等保测评】黑龙江等保测评机构详细信息说明

行云管家

网络安全 等保 等级保护 等保测评

protocol buffer的高效编码方式

程序那些事

Java protobuf 程序那些事

国产接口调试工具ApiPost中的内置变量

Proud lion

大前端 测试 后端 Postman 开发工具

来了!《中国移动2021智能硬件质量报告》正式发布

【虚拟机专栏】智能合约执行引擎的前世今生

趣链科技

立于山巅!他,凭什么抗住万亿级流量冲击!

博文视点Broadview

文件上传绕过思路拓展

网络安全学海

黑客 网络安全 信息安全 渗透测试 安全漏洞

一分钟学会使用ApiPost中的全局参数和目录参数

CodeNongXiaoW

大前端 测试 后端 接口工具

零基础入门:基于开源WebRTC,从0到1实现实时音视频聊天功能

JackJiang

音视频 WebRTC 即时通讯 IM

华为高级技术专家多年经验分享微服务治理体系、架构及实践文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

20年IT老民工苦心编撰成超大流量分布式系统架构解决方案文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

MySQL 不完全入门指南

Java 编程 架构 面试 架构师

一文带你掌握 OceanBase 社区版部署细节及原理

OceanBase 数据库

数据库 分布式数据库 oceanbase OceanBase 开源 OceanBase 社区版

Java NIO在接口自动化中应用

FunTester

Java nio 接口测试 测试开发

GraphQL设计思想

Ryan Zheng

graphql

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

DEX去中心化交易所自动刷量机器人开发|去中心化做市机器人

Geek_23f0c3

去中心化交易所系统开发 量化交易机器人系统开发 量化机器人 做市机器人 自动刷量机器人

堡垒机和跳板机的三大区别分析-行云管家

行云管家

运维 堡垒机 IT运维 跳板机

摩尔时代如何押注AI算力?英特尔战术大揭秘

科技新消息

区块链+物联网设备,能产生什么反应?

CECBC

web技术分析| 一篇前端图像处理秘籍

anyRTC开发者

大前端 音视频 WebRTC web技术分享

模块一作业

小智

架构实战营

没有7年经验你真学不会这份SpringCloud实战演练文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

DEX去中心化交易所自动刷量机器人开发|去中心化做市机器人

量化系统19942438797

去中心化 做市机器人

软件测试框架之——Postman参数化(超详细小白教程)

程序员阿沐

软件测试 自动化测试 接口测试

打造数字人民币的大运应用场景

CECBC

🏆「作者推荐」Java技术专题-JDK/JVM的新储君—GraalVM和Quarkus

码界西柚

Java JVM GraalVM 8月日更

在?进来看看新一季周边到底做点啥?【话题讨论】

气气

话题讨论

Werner Vogels报告“21世纪的(云)架构”:可用性、可靠性和恢复能力_架构_Daniel Bryant_InfoQ精选文章