DevOps系列二:事件驱动型计算会超过微服务吗?

我们在《DevOps系列一:认识事件驱动型计算》中介绍了事件驱动型计算对现代世界的影响。本文是系列二,对比事件驱动型计算与容器和微服务。

面向群众的消息队列

在某种程度上说,旧的东西会变成新的。对于Iron.io和StackStorm公司的产品来说,老式的消息队列是软件运行的核心。Iron.io甚至还单独销售一款消息队列产品IronMQ,这个产品能触发姐妹软件IronWorker的事件。

但是,StackStorm公司的Powell说新的消息队列跟以前还是有一些不一样的,“新的消息队列从你系统发出去,查看系统运行效果的好坏,并返回决策是否应该执行什么(任务)。所有的这些都需要预定义并且写入队列中。不同之处在于返回方式的变化和条件逻辑的变化,以及从适合的出口出去的方式。”

StackStorm的产品是打算让用户完全管理的,不过云服务可以从用户那里将消息队列元素进行合理化和抽象化,可以达到看似应用无需任何服务器就能运行。

Lambda用户Theodore Kim,也是Jobvite(一家软件制造商)的SaaS业务主管说,基于云的事件驱动型计算服务能承担自动化重任的其中一个原因是它不需要应用调查环境,寻找发生的改变,以触发自动化。

AWS Lambda服务在后台是使用轮询还是消息队列不得而知,但是对于用户来说,Lambda函数是马上就可以开始工作的,并不需要等待轮询。

Kim说:“以前,我们需要将数据放到队列中,并且对其进行轮询。Lambda却是立即起作用的。它就像是一个黑盒,所有的事情都会被Lambda服务处理,但是在我们看来,有事件触发时,它马上就执行了。”

事件驱动型计算会超过微服务吗?
事件驱动型计算越来越火了,它正在追上另一个火爆的软件开发趋势:使用Docker的容器,以及基于微服务的软件开发。

就像事件驱动的自动化一样,容器和微服务也能承诺应用的灵活性、组件间的自动化和可扩展性。事件驱动型计算和Docker并不是完全独立的技术。事实上,在EC2 Container Service里,亚马逊也建议引入Lambda来触发对容器的创建,并对容器进行横向扩展。

Edeva公司的Eskilsson说:“当我们进行横向扩展的时候,我并不担心迁移到基于Docker的开发环境。但是对Yii框架进行整合,并让代码推送到Iron.io,是很合理的一件事情。因此坦诚来讲我并没有看到(使用容器的)需要。”

VidRoll公司的Young称,对于一些迫于将自有架构迁移到云上的企业,事件驱动型计算可能在架构变更上太过跳跃了。但是容器技术提供了一种更敏捷的方式来将传统的基础架构迁移到自动、云的环境。

事实上,Young的公司已经进行了一些开发,能让他们的应用架构在Lambda和Docker之间进行切换,好让应用随着Lambda的发展得以保全。Young说:“容器是有意义的,因为它比起维护一个完整的服务器来说,是一个更好的抽象品。”

StackStorm公司的Powell称,IT企业在开发者的生产力和运维自由度之间会有不同的偏好。

基于容器的计算对于将负载向内部云的迁移来说有更多的潜力。相反的,类似Lambda的东西有来自厂家的锁定。Powell称,“简单地说,你的业务逻辑至少需要有一个应用需要运行在Amazon as a service上。”

本文转自d1net(转载)

时间: 2024-09-12 07:00:58

DevOps系列二:事件驱动型计算会超过微服务吗?的相关文章

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

很多使用DevOps的企业在见证了一些积极改变之后,发现自己仍在高度敏捷的应用开发与仍然笨重的IT运维之间挣扎.那么事件驱动型的计算能否跨越这道鸿沟呢? 在事件驱动的世界里,用户行为.感应器或者其他应用或服务的消息都会触发工作(流).这和目前主流的预定义了一系列要执行步骤的程序性编程模型大不相同. 坐落在纽约的一家在线求职网站WayUp的DevOps架构师Jonathan Eunice说:"这简直就是颠覆了世界.使用程序性编程的时候,程序驱动了一切:使用事件驱动编程的时候,用户.结果以及事件驱动

跟上DevOps、微服务和混合云:网络需要自动化

网络正朝向基于软件的系统迅速发展,提供自动配置.改进的管理与安全性,以更好地支持DevOps风格的应用程序开发.软件网络(软件定义网络和网络功能虚拟化)的自动化优势对于支持采用新IT与网络架构(包括混合云和物联网)至关重要. 传统上,网络是用特定功能优化的基于硬件的平台所构建.这些盒子包括路由器.以太网交换机.Wi-Fi控制器.服务器负载平衡器和网络安全设备,如防火墙与入侵检测系统.网络硬件通常运行复杂的分布式控制软件,所有这些都具有独立的配置和管理系统.配置和管理要求因网络类型和网络位置而异.

C++事件驱动型银行排队模拟_C 语言

最近重拾之前半途而废的C++,恰好看到了<C++ 实现银行排队服务模拟>,但是没有实验楼的会员,看不到具体的实现,正好用来作为练习.  模拟的是银行的排队叫号系统,所有顾客以先来后到的顺序在同一个队列中等待,当有服务窗口空闲时,则队首的顾客接受服务,完成后则下一位顾客开始接受服务.  本实现是事件驱动型的,处理对象是事件而不是顾客:  有2种事件:顾客到事件和顾客离开事件.  有2个队列:顾客队列和事件队列.  程序的逻辑如下:  1.初始化事件队列,填充顾客到达事件:  2.处理事件队列的头

WorldWind系列二:擒贼先擒王篇1

有了WorldWind系列一的基础,我们已经可以进行正常调试运行啦!可以先操作看看软件的功能吧,这样我们才可以知道WorldWind有哪些功能等待我们学习的. 开始我们的"WorldWind系列二:擒贼先擒王"分析WorldWind主窗体,从Main函数入口一步步解析学习.至少对于我来说,里面有很多知识要学的.(补充一下:无法进入WorldWind.cs窗体的设计界面,这个问题我早就发现了,但没解决,我们根据功能直接看代码吧) 1.使用System.Version在内部,读取软件版本信

iOS开发UINavigation系列二——UINavigationItem

iOS开发UINavigation系列二--UINavigationItem 一.引言         UINavigationItem是导航栏上用于管理导航项的类,在上一篇博客中,我们知道导航栏是通过push与pop的堆栈操作来对item进行管理的,同样,每一个Item自身也有许多属性可供我们进行自定制.这篇博客,主要讨论UINavigationItem的使用方法. UINavigationBar:http://my.oschina.net/u/2340880/blog/527706. 二.来

VSTO之旅系列(二):创建Excel解决方案

原文:VSTO之旅系列(二):创建Excel解决方案   本专题概要 引言 创建VSTO项目 Excel对象模型 创建Excel外接程序 创建Excel文档级自定义项 小结   一.引言 也许很多朋友都没有听说过VSTO这个东西的,本人之前也同样也不知道的,但是由于工作的原因接触了这方面,由于VSTO方面国内的资料比较少,本人刚开始学习的时候都是参考MSDN的,但是上面很多资料都是英文的,可能学习起来会比较慢点,所以本人把最近一段时间学习的内容记录下来,一来是作为一个巩固的学习笔记,二来希望这些

Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能

Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 我的本意是第二篇写Mob的shareSDK分享组件的,奈何需要去注册各平台的账号,还要审核,有些审核还挺久,就没办法,改为写这个Bmob了,相信大家对Bmob都是挺期待的吧,因为他作为Android后端的实现很好的支持,国内很多软件都在使用它,他的功能也是特别神奇,这里就不一一细说了,我们用实际的例子来见证他的神奇 官网:http://w

iOS中CoreData数据管理系列二——CoreData框架中三个重要的类

iOS中CoreData数据管理系列二--CoreData框架中三个重要的类 一.引言     在上一篇博客中,介绍了iOS中使用CoreData框架设计数据模型的相关步骤.CoreData框架中通过相关的类将数据--数据模型--开发者无缝的衔接起来.NSManagedObjectModel对应数据模型,即上篇博客中我们创建的.xcdatamodeld文件:NSPersistentStoreCoordinator相当于数据库与数据模型之间的桥接器,通过NSPersistentStoreCoord

系列二VS项目软件配置工具介绍

原文:系列二VS项目软件配置工具介绍 Svn和VisualSvn介绍      在使用TortoiseSvn(SVN客户端)+ AnkhSvn(VS2008插件) +VisualSvn Server(版本控制服务器)进行源代码版本控制前,有必要先了解下Subversion(Svn).     Svn(Subversion)是近年来崛起的版本管理工具,是CVS的接班人.目前,绝大多数开源软件都使用Svn作为代码版本管理软件.      Svn客户端: Subversion的客户端有两类,一类是we