写点什么

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

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

关注

评论

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

软硬件融合新时代——让软件够灵活,硬件够高效,鱼和熊掌可兼得

博文视点Broadview

云智慧发布《智能业务运维》2021年刊 邀您共览数字化运维全景象

云智慧AIOps社区

AIOPS 智能运维

超详细的JQuery的 DOM操作,一篇就足够!

华为云开发者联盟

html 大前端 DOM 函数 JQuery框架

李开复、张亚勤、吴恩达…国际大咖给你讲解AI知识

博文视点Broadview

阿里的互联网三高架构是真的牛!腾讯百度根本模仿不来

Java架构师迁哥

Docker挂了,数据如何找回

运维研习社

Docker 运维 数据恢复 5月日更

书单 | 职场办公类私藏好书,轻松Get职场必备技能

博文视点Broadview

联邦学习在视觉领域的应用,揭秘AI人工智能创新应用奖获奖案例

博文视点Broadview

IDC数据中心介绍

大数据技术指南

数据中心 5月日更

dubbo的前世今生

捉虫大师

dubbo

强化学习落地:竞态场景下基于锁机制的闲置端口查用

行者AI

强化学习

如何快速构建嵌入式全栈知识体系?

博文视点Broadview

面试37次,16个offer上岸,总结了一些面试心得

北游学Java

面试 offer

云小课 | 华为云KYON之L2CG

华为云开发者联盟

虚拟私有云 华为云 大二层网络 KYON企业级云网络 L2CG

麦肯锡最新报告 | 开发者速率成为企业增长助推剂

LigaAI

SaaS

Java程序员想要拿到50W以上年薪,哪个技术是必备的?

Java架构师迁哥

打破固有思维(十八)

Changing Lin

5月日更

架构是什么?空中楼阁?不切实际?

Java架构师迁哥

Mybatis-Plus的应用场景及注入SQL原理分析

vivo互联网技术

源码分析 mybatis

做开发,这几种锁机制你不得不了解一下

华为云开发者联盟

读写锁 自旋锁 互斥锁 优先锁

深度分享|中小银行如何实现数字化转型,建设智能营销新体系?

索信达控股

大数据 数字化转型 金融 银行 营销数字化

网页端IM通信技术快速入门:短轮询、长轮询、SSE、WebSocket

JackJiang

websocket 消息推送 即时通讯 IM

毕业设计So Easy:基于Java语言西餐厅点餐系统

不脱发的程序猿

Java 开源 Java语言西餐厅点餐系统 毕业设计

当当购书优惠码又可以限时抢啦(热卖新书等你来)

博文视点Broadview

一颗CPU与病魔赛跑

E科讯

树莓派上的 K8S 集群挂了,怎么办?

百度开发者中心

百度 技术 经验分享

一种基于实时分位数计算的系统及方法

百度Geek说

云计算 大前端 云服务

☕【JVM 技术之旅】带你重塑对类加载机制的认识

洛神灬殇

JVM Java虚拟机 类加载器 原理分析 5月日更

iOS 面试策略之系统框架-设计模式

iOSer

ios 并发编程 tableView

ASP.NET Core整合Zipkin链路跟踪

yi念之间

Hive对分区分桶表的操作

五分钟学大数据

大数据 hive 5月日更

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