HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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:001740
用户头像

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

关注

评论

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

Go 学习笔记之 函数

架构精进之路

Go 语言 7月日更

台达DOP-100系列触摸屏(LUA程序编写用户管理应用)

林建

lua 台达 触摸屏 用户管理 DOP-100

直击技术最前沿 | Amazon S3增加新的存档访问层

亚马逊云科技 (Amazon Web Services)

云图说|ASM灰度发布,让服务发布变得更敏捷、更安全

华为云开发者联盟

灰度发布 application 云图说 应用服务网格服务 Service Mesh (ASM)

数牍科技亮相上海 AI 基金“AI 驱动企业转型” 应用场景战略合作仪式,隐私计算拓展AI应用疆域

全面解读自动驾驶数据存储关键

焱融科技

人工智能 自动驾驶 云计算 高性能 文件存储

互联网产品经理之需求的一生

路边水果摊

产品经理

英特尔中国研究院宋继强:AI技术已成为推动数字化转型的超级力量|WAIC 2021

E科讯

Mtail导致Nginx报警延迟

BUG侦探

运维 监控 日志

阿里P7大牛手把手教你!卧薪尝胆70天内推入职阿里

欢喜学安卓

android 程序员 面试 移动开发

夏令营|第五届埃文网络安全技能训练营火热报名中

郑州埃文科技

阿里P7亲自讲解!Android大厂面试真题解析大全

欢喜学安卓

android 程序员 面试 移动开发

详解 nebula 2.0 性能测试和 nebula-importer 数据导入调优

NebulaGraph

数据库 开源 图数据库

鸿蒙轻内核源码分析:掌握信号量使用差异

华为云开发者联盟

鸿蒙 数据结构 信号量 结构体 OpenHarmony

铂金10:能工巧匠-ThreadLocal如何为线程打造私有数据空间

MetaThoughts

Java 后端 多线程 并发

Eureka可用性解读

赵镇

Eureka

玩转Spring Boot Actuator集成,基操,勿六

白亦杨

Java

10万QPS,K6、Gatling和FunTester对比测试

FunTester

性能测试 接口测试 测试框架 压力测试 测试开发

程序员的自我修养-用科学的方法提高交付质量

刘绍

程序员 软件工程 软件质量 TDD 单元测试

我写什么,你们决定

喵叔

架构实战营模块8作业

eoeoeo

架构实战营

由浅入深C A S

程序猿阿星

CAS 自旋锁

阿里P9看了都说牛B!阿里巴巴史上最牛的分布式核心原理深度解析全彩手册

Java架构追梦

Java 阿里巴巴 架构 面试 分布式核心原理解析

工商银行:应用多k8s集群管理及容灾实践

华为云开发者联盟

容器 多云 工商银行 k8s集群 Karmada

亚马逊云科技和 Verizon 利用专有 MEC 解决方案扩大 5G 合作

亚马逊云科技 (Amazon Web Services)

理解Linux 终端、终端模拟器和伪终端

mazhen

Linux Shell SSH Linux Kenel

全美第四大无线运营商 DISH 和亚马逊云科技开展战略合作

亚马逊云科技 (Amazon Web Services)

细说.NET 缓存

喵叔

7月日更

从装大象中我们学会了什么设计模式

skow

Java 面试 后端 设计模式

【LeetCode】 H 指数 IIJava题解

Albert

算法 LeetCode 7月日更

FIL币最新价格怎么样?FIL币最新消息是什么?

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