2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

将微服务浓缩为函数:Adrian Cockcroft 在 microXchg 大会上讨论了无服务器架构

  • 2017-03-01
  • 本文字数:1892 字

    阅读完需:约 6 分钟

在柏林举行的 microXchg 微服务大会上, Adrian Cockcroft 做了题为“将微服务浓缩为函数”的演讲。演讲的关键要点包括:网络速度的提升、二进制协议的使用、配置管理和容器技术等使得部署包含多种微服务的应用程序成为可能;由无服务器架构技术带来的机会为在数据中心运行快速开发的函数即服务(functions-as-a-service,FaaS)带来了更多的可能;为了有效地交付业务价值,现代公司必须能够快速地构建原型和应用程序;现代企业里软件开发的最大挑战是与企业内的人和流程紧密相关的。

身为AWS 的云架构战略VP,Cockcroft 在演讲开始首先讨论了十年前的软件交付状态,以及它们与现代工程师们具备的能力之间的关系。在九十年代以及21 世纪初,手工部署物理硬件的挑战带来了运维团队对部署流程的优化,尽量少地涉及人工产品(也就是单体应用程序)。这就导致了所谓的“大泥球”( big ball of mud )架构反模式的产生。

尽管 21 世纪初在软业开发业中面向服务架构( Service Oriented Architecture ,SOA)以及相应的 WS-* 很流行,刚才提到的最小化可部署人工产品的趋势,再加上局域网内每秒 1Gb 的网络传输速度限制,这些催生了由粗粒度 API 提供的大型服务,它们利用一定数量的 SOAP/XML 消息进行通信。相对应的,现代局域网络的传输速度已经可以达到每秒25Gb ,而且对 Avro gRPC 简单二进制编码等许多高效的二进制编码协议的使用,这些改进使得消息通信效率提升了至少两个数量级。

最新一代的 AWS 实例相互之间的连通网速为 25Gb/s,而不是 1Gb/s,这个优势加上使用 Avro 和 gRPC 等二进制通信协议(要是你更聪明的话就直接做简单的二进制编码……),这些都使得最新的微服务架构风格成为可能。

大概是五年前出现了第一代 DevOps 工具,比如 Chef Puppet 等,这些让自动化部署和配置硬件,以及持续部署和升级软件成为可能。Cockcroft 谈到当初他还在 Netflix 工作时,还没有采用这种“自动化系统管理”的方式,所以 Netflix 团队采用的是不可变基础架构。在Netflix 的系统里,像预定制的亚马逊服务器镜像( Amazon Machine Images ,AMIs)这样的粗粒度程序,都会通过可编程的模式与一个虚拟机计算实例相关联,并且部署在负载均衡器后面的可动态扩展的自动扩展组( Auto Scale Group ,ASG)里。这样就可以支持对应用程序功能的“当场替换”,而不是通过操作系统命令来控制部署和升级。

更近一些,以容器一类的技术为代表的第二代DevOps 工具更进一步地推动了对不可变架构的应用,这种操作系统级的虚拟化技术让大家可以更快地创建和实例化软件系统的各个部分,让部署时间从几分钟降为几秒钟。对容器技术的广泛使用和 Docker 形成的事实标准也创造了标准化资源。比如说,许多数据库和中间件供应商都可以提供官方版的 Docker 镜像,其中提前打包了他们的产品,并且做了一般性的配置。

Cockcrost 表示,最新的“无服务器架构”或者“函数即服务”技术风潮已经开启了软件开发业的一次新革命。之前使用虚拟机和容器进行“快速部署和持久运行”的模式已经过时了,现在是要使用无服务器架构技术进行“快速部署和按需(按付费)运行”。

有了 AWS Lambda 之类的 FaaS 或无服务器架构等技术带来的简化编程模型、弹性部署、可组合性等好处,Cockcroft 表示整个系统都可以快速建立原型和构建。而像 AWS Greengrass 一类的技术,则可以让 AWS Lambda 函数离线地运行在基于 Linux 的物联网设备上,因此可以进一步扩展无服务器架构技术的适用范围和可用性,“从数据中心到最前端,也可以是混合型”。

随着 AWS Lambda 一类无服务器架构技术的兴起,整个系统都可以只需几天便构建完毕,你该问问你自己:“我该把团队投入到升级迁移类活动中,还是干脆把现在的应用程序重写一套呢?”

在演讲的最后,Cockcroft 表示在许多现代企业中,软件开发的问题总是与企业中的人和流程密切相关的。反向康威操纵( Inverse Conway Maneuver )之类的方法,以及 Pheonix 项目 DevOps 手册等资源都可以用于驱动变革性的改变。微服务架构风格就是一个建立跨功能、自治的和紧密配合的业务单元的成功案例。

微服务不适用于组织仓库。在微服务开发中,要在单个服务的边界内有对开发活动的高度信任。服务供应商之间的任何低信任度行为都要通过良好设计的 API 以及服务水平协议(service level agreements,SLA)来解决。

Adrian Cockcroft 的 microXchg 演讲“将微服务浓缩为函数”视频可以在大会的YouTube 频道找到。关于这个话题的更多内容可以参考Cockcroft 的一篇最新博客:“业务逻辑从单体到微服务,再到函数的演变”。

阅读英文原文 Shrinking Microservices to Functions: Adrian Cockcroft Discusses Serverless at microXchg

2017-03-01 18:003002
用户头像

发布了 152 篇内容, 共 75.6 次阅读, 收获喜欢 64 次。

关注

评论

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

88邮箱-从入职到离职

D

推开GraphQL大门

梁龙先森

签约计划第二季

支撑1300+矿井监控,华为云数据库助力打造智能矿山

华为云开发者联盟

数据库 监控 华为云 数据复制服务 煤矿

python scrapy 管道学习,并拿在行练手爬虫项目

梦想橡皮擦

12月日更

【LeetCode】电话号码的字母组合Java题解

Albert

算法 LeetCode 12月日更

终于购买了自己的第一个硬件钱包Ledger Nano(8/28)

赵新龙

28天写作

MongoDB技术实践与应用案例征集中

MongoDB中文社区

mongodb

预计算 or 数据虚拟化,你 pick 谁?

Kyligence

Flutter开发:项目加载本地html文件的步骤

三掌柜

28天写作 21天挑战 12月日更 12月

使用 HTML、CSS、JS 和 API 制作一个很棒的天气 Web 应用程序

海拥(haiyong.site)

JavaScript API 28天写作 签约计划第二季 12月日更

react源码解析19.手写迷你版react

buchila11

React React Hooks

[vue3组件库]0到1参与7k Star大型开源项目成为贡献者🎃

速冻鱼

开源 大前端 签约计划第二季 12月日更

列存数据库,不只是列式存储

Kyligence

说了半天跨平台,今儿咱就来跨跨!(中)

为自己带盐

Docker jenkins 28天写作 签约计划第二季 12月日更

入驻快讯|欢迎 OpenI 启智社区正式入驻 InfoQ 写作平台!

InfoQ写作社区官方

入驻快讯

实用机器学习笔记七:数据变换

打工人!

机器学习 算法 学习笔记 12月日更

TCP的慢启动、拥塞避免、重传、快恢复乱七八糟总是记不清?11个连环问让你一次性打通任督二脉

华为云开发者联盟

TCP 报文 TCP协议 ACK RTT

硬核榜单 | 拍乐云荣登福布斯中国「企业科技50强」

拍乐云Pano

音视频 拍乐云 福布斯 科技企业

iTerm通过SSH配置登录服务器

eva

Mac iTerm 服务器

通过 nginx 日志做监控

Arch

云脑启智 院士压轴 | 2021新一代人工智能院士高峰论坛暨OpenI/O启智开发者大会即将开幕

OpenI启智社区

人工智能 开源社区 院士峰会 启智开发者大会 鹏城云脑

Flutter中如何添加垂直分隔线【Flutter 专题 18】

坚果

flutter 28天写作 12月日更

一款好用的Maven插件 - Maven Helper

恒生LIGHT云社区

Java maven

计划会议想开好,这两件事必须清楚

华为云开发者联盟

计划 敏捷 团队 计划会议 故事分解

关于库存扣减方案的思考总结

得物技术

后端 电商 库存 电商大促

Java开发中 API接口不用写 Controller也可以

@零度

Java API Controller

Flutter 详解 Timer & ACETimerButton 自定义计时器按钮

阿策小和尚

28天写作 0 基础学习 Flutter 内容合集 签约计划第二季 12月日更

Linux系统学习《Linux一学就会》:LVM管理和ssm存储管理器使用

侠盗安全

Linux linux运维 运维工程师 云计算架构师

好好学react源码然后惊艳所有人

全栈潇晨

React react源码

Hybris Storefront里产品图片显示不出来的分析方法

汪子熙

28天写作 SAP Hybris 12月日更 Backoffice

低代码实现探索(六)复杂业务的去处事件码

零道云-混合式低代码平台

将微服务浓缩为函数:Adrian Cockcroft在microXchg大会上讨论了无服务器架构_亚马逊云科技_Daniel Bryant_InfoQ精选文章