50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

将微服务浓缩为函数: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:003186
用户头像

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

关注

评论

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

JavaScript数组,看这篇就ok了!

坚果

3月月更

100行代码实现HarmonyOS“画图”应用,eTS开发走起!

HarmonyOS开发者

HarmonyOS ETS ArKUI 3.0

云效持续交付流水线,免费还好用!

阿里云云效

云计算 阿里云 持续集成 持续交付 持续交付流水线

学习编程是最好的复利方式

FunTester

FunTester

TDengine 助力国产芯片打造“梦芯解算”,监测地质灾害 24 小时无间断

TDengine

数据库 tdengine 物联网

web前端培训-MySQL的索引下推解析

@零度

MySQL 前端开发

传统数据库改造难?华为云GaussDB“五心”解决

华为云开发者联盟

数据库 数字化转型 GaussDB 云数据库 华为云数据库

2.7万只!当前及未来仍将是量化交易的黄金期

非凸科技

rust 招聘 机器学习算法 算法交易

生产环境频繁内存溢出,原来就是因为这个“String类”

华为云开发者联盟

jdk JVM 内存 字符串 String类

减少计算、简化架构——TDengine在灌区信息化平台中的应用

TDengine

数据库 tdengine 物联网

面试突击35:如何判断线程池已经执行完所有任务了?

王磊

Java java面试

espnet中的transformer和LSTM语言模型对比实验

华为云开发者联盟

nlp Transformer espnet LSTM语言模型 aishell

机器使用成本下降 50%,TDengine 在同程旅行基础监控中的实践

TDengine

数据库 tdengine

基于服务网格的分布式 ESB, 实现应用无关的传统 ESB 转型升级

BoCloud博云

微服务 ESB

求职有 Pulsar | 中国联通、StreamNative 多个热招岗位

Apache Pulsar

开源 云原生 代码 Apache Pulsar 岗位招聘

亚马逊云科技创新大会 | 云基础架构

亚马逊云科技 (Amazon Web Services)

架构

一个服务器轻松存储上亿数据,TDengine 在北京智能建筑边缘存储的应用

TDengine

数据库 tdengine 物联网

TiDB 在携程 | 实时标签处理平台优化实践

PingCAP

如何判断线程池已经执行完所有任务了?

CRMEB

得物技术登录组件重构

得物技术

重构 用户增长 增长 组件 用户登录

从 OpenTSDB 到 TDengine,至数物联网平台技术改造之路

TDengine

数据库 tdengine 物联网

java版gRPC实战之七:基于eureka的注册发现

程序员欣宸

gRPC 注册中心 eureak

Linux下TCP网络编程-创建服务器与客户端

DS小龙哥

3月月更

大数据自动管理,24 小时服务无间断,StarRocks 如何做到?

StarRocks

大数据 数据分析 StarRocks

大数据培训Flink 源码解析Async IO

@零度

flink 大数据开发

java版gRPC实战之六:客户端动态获取服务端地址

程序员欣宸

gRPC grpc双向流

《2022网络威胁形势研究报告》重磅发布 | 附下载

青藤云安全

《LeetCode刷题报告》题解内容 Ⅲ

謓泽

3月月更

java培训-JVM内存分配面试题分享

@零度

JVM JAVA开发

NFT游戏NFT交易系统开发技术

薇電13242772558

NFT

学生管理系统毕业架构设计

天琪实刚亮

「架构实战营」

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