DevOps系列一:认识事件驱动型计算

简介:

很多使用DevOps的企业在见证了一些积极改变之后,发现自己仍在高度敏捷的应用开发与仍然笨重的IT运维之间挣扎。那么事件驱动型的计算能否跨越这道鸿沟呢?

在事件驱动的世界里,用户行为、感应器或者其他应用或服务的消息都会触发工作(流)。这和目前主流的预定义了一系列要执行步骤的程序性编程模型大不相同。

坐落在纽约的一家在线求职网站WayUp的DevOps架构师Jonathan Eunice说:“这简直就是颠覆了世界。使用程序性编程的时候,程序驱动了一切;使用事件驱动编程的时候,用户、结果以及事件驱动了一切。”

在最近的几年,许多云计算供应商开始提供基于事件的自动化服务。最著名的要数Amazon Web Services(AWS)的Lambda了,用户可以在不需要提供服务器的前提下使用它运行代码。业界专家相信这种事件驱动型的服务可以让现在的软件开发更加敏捷,反应更快速并达到自动化基础架构运维。这会使DevOps的天秤达到一定平衡。

StackStorm是一家事件驱动软件制造商,该公司很自豪在自己的客户(如Netflix)中扮演着很重要的角色。该公司CEO Evan Powell说:“‘事件驱动型计算’对于生产力需要提升的公司来说是很基础的,他们的厂家会告诉他们,‘嘿,快使用Agile吧!’,但是只要运维并没有以Agile方式运行,Agile还是远远不够的。

Powell还指出,在当今闭环的自动化过程中,使用软件代码片段来做基础架构的自动化允许用户在现实环境中开发应用和管理他们的资源时候更加具有生产力,更加Agile。

Power说:“我想这就是缺失的部分。”
事件驱动在起作用

将自动化产品引入到生产环境中的IT专家会很同意这个评价的。

Seamus James是在线服装零售商Bentabrand的软件工程师,他表示,“好的程序员并不总是好的服务器管理员。”

“我们不希望他们陷于服务器管理的困难之中。Amazon和Lambda在剔除这些困难,让程序员专注于写程序,毕竟这才是我们应该做的事情。”

事件驱动的自动化也让人力很难实现的大型计算资源管理变得更加容易。举个例子,Betabrand第一次使用Lambda也是因为销售的合伙企业拥有一个很受欢迎的游戏博客,博客产生的流量将Betabrand网站背后的以传统托管环境搭建的服务器冲垮了。

James说:“这个事情对我们的服务器造成了损伤,并宕机了大概20秒。”

与此同时,James和他的团队将Jaws平台(现在改名为Serverless了)部署在AWS Lambda函数上,使用Simple Storage Service(S3),并且利用命令行接口将所有可以Lambda自动化的部分绑在了一起。Betabrand使用这种框架彻底检查它的Web架构来适应流量高峰。

具体来说,Betabrand需要做的第一步是将公司页面设计拆解成托管在S3上的静态网页。

然后,为了在某些产品变得可用的时候通知对这些产品感兴趣的用户,Betabrand设置了Lambda函数来收集邮箱地址,并将这些邮箱地址添加到DynamoDB数据库中。这样子Betabrand可以在网页达到了百万级独立用户访问的时候捕获销售头羊,而不至于将服务器弄垮。

James说:“没有比配置这个更简单的了。”再加上Amazon的免费服务之后,初始的费用只需要7美分。

James说:“如果加上了S3带宽费用的话,这个价格会上升到200美金。如果同横向扩张Web服务器来达到同样带宽对比的话,这是微不足道的。”

VidRoll是亚马逊的另一个客户。该公司使用事件驱动型计算来满足大型基础架构的管理。在公司的技术计算平台上每个月都需要处理数百万的事件,而且这个数字还在增长。刚开始每个月处理40亿数据点;在今年的六个星期内,这个数字上升到400亿;几个星期后,达到了2000亿。

VidRoll的CTO James Young在Lambda的beta版本的时候已经开始使用Lambda了,他说:“如果你需要加速服务器并且管理所有高峰的流量,那么你会很难管理大范围的网络影响。”在几个月的时间内,他们4个人组成的公司已经步入正轨,并且能每个月处理400亿事件。

Young说:“使用Lambda可以让我们并不需要担心如何让服务器一直保持可用的状态。”因为工程师可以通过他们的代码很快地把问题解决,而不需要协调开发和运维团队。

事件驱动型计算对于一些管理员没办法到达服务器所在地的情况来说很有必要,不过这需要依赖于对事件分析频繁的更新。这也是Edvan,一家瑞典公司所做的“聪明的”加速。Edeva使用Iron.io提供的软件即服务让位于加速带的服务器发送数据到运行在AWS的中央分析系统中,并对数据进行处理。

负责在Edeva设置Iron.io基础架构的咨询师John Eskilsson说,“集成到Yii软件开发架构的简易性和它对Python语言的早期支持让服务器的远程管理对开发者更加友好,无论这个服务器在不在AWS上。”

Eskilsson说:“这样子使用软件即服务是有意义的,因为这样你就不需要管理所有这些多余的服务器了。”

请继续阅读第二部分《DevOps系列二:事件驱动型计算会超过微服务吗?》

本文转自d1net(转载)

相关文章
|
8月前
|
人工智能 运维 安全
技术深析快手直播安全事件:为什么大量违规直播“关不掉”?
快手直播安全事件暴露了高并发下账号权限、风控与审核系统的系统性失效。对测试开发而言,需从功能验证转向系统性防控,强化极端场景测试、高负载审核链路验证及熔断机制演练,提升对复杂风险的预判与拦截能力。
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
AI大模型Transformer基础结构
Transformer是2017年提出的基于注意力机制的神经网络,摒弃了传统RNN结构,采用自注意力与多头注意力机制,实现并行化处理和长距离依赖建模。其核心由编码器-解码器架构、位置编码、残差连接和层归一化组成,广泛应用于NLP任务,成为BERT、GPT等模型的基础。
861 0
|
8月前
|
搜索推荐 API 开发者
支持"同款搜索"(精确匹配)和"相似搜索"(模糊匹配)两种模式
图搜接口对图片的一个要求:图片不要大于2兆,600*600像素大小,要符合系统规则,图片尽量清晰, 图片越小越好,处理API返回的错误码和异常情况。
|
10月前
|
人工智能 开发框架 自然语言处理
智能体来了:AI教育与创业的新引擎|黎跃春谈智能体教育与产业融合
AI正从工具迈向“伙伴”时代,智能体(AI Agent)成为新引擎。它具备目标、逻辑与执行力,推动教育、产业与创业变革。黎跃春倡导“智能体IP操盘手”理念,阿里云等平台助力产教融合,大学生零基础也可参与开发,开启人人可创的AI新纪元。
|
7月前
|
人工智能 C++
【AI大模型面试宝典十一】- 评估应用篇
【AI大模型面试宝典】聚焦高频考点,拆解核心原理!涵盖基础能力、对齐与效率评估,详解MMLU、C-Eval、HumanEval等基准,教你应对幻觉检测、指标设计等面试难题。代码实操+避坑指南,助你精准拿分,offer到手!点赞关注,持续更新中→ #大模型面试 #AI求职
345 0
|
11月前
|
存储 缓存 数据处理
孔夫子旧书网开放平台接口实战:古籍图书检索与商铺数据集成
本文详解孔夫子旧书网古籍数据接口的实战调用,涵盖认证签名、古籍检索、商铺集成与特色数据处理四大场景,提供可复用的Python代码及避坑指南,助力学术研究、旧书商管理与古籍数字化落地。
|
设计模式 算法 C++
C++架构之美:设计卓越应用
C++架构之美:设计卓越应用
1173 3
|
存储 Java
计算机如何存储数据
计算机如何存储数据
898 1
|
算法 数据可视化 数据挖掘
R语言确定聚类的最佳簇数:3种聚类优化方法
R语言确定聚类的最佳簇数:3种聚类优化方法
|
C语言
C语言一元多项式的表示及相加讲解及相关代码
C语言一元多项式的表示及相加讲解及相关代码
766 0