程序员请注意,无服务器将改变应用程序开发

无服务器软件架构已经吸引很多人关注,它为什么会让人们这么感兴趣呢?无服务器意味着什么呢?function-as-a-service 与无服务器有什么区别?AWS Lambda、IBM OpenWhisk、Azure Functions和谷歌Cloud Functions等服务的机制是什么?这一切会如何发展?

无服务器与FaaS

在最近举行的Serverless大会中,主题演讲中最引人关注的是无服务器的各种定义。这也表明这项技术仍然处于其生命周期非常早的介入期。一般来说,大多数人都会认同“无服务器”是指软件架构,而FaaS则描述了开发人员在这个架构中部署业务逻辑的关键机制。

例如,如果你在AWS S3服务运行静态HTML网站,这是无服务器(架构)的定义。但如果没有业务逻辑来用自定义数据对用户交互作出响应,这个网站无法完成很多工作。这也是四大云服务提供商(AWS、IBM、微软和谷歌)以及其他开源提供商(例如Iron.io和Fission)发挥作用的地方。

FaaS的最佳定义来自Serverless Framework首席执行官Austen Collins,该公司可能是该领域最热门的初创公司。Collins认为,FaaS的定义如下图所示:

FaaS平台为开发人员提供构建微服务的能力,微服务可对事件作出响应、自动扩展、每次执行支付费用,并利用Amazon DynamoDB或者IBM Watson等大型服务器系统。生态系统和微服务方法是FaaS平台与容器世界分享的好功能。当你了解FaaS平台的工作原理后,你就会明白为什么存在这些相似之处。

FaaS平台内部运作

我们可以在历史背景下考虑FaaS。在20世纪90年代初,我们只有裸机可用来运行我们的代码,而获得新的计算单元需要几个月时间。随着虚拟机管理程序的出现,虚拟化将这个时间缩短到几分钟。通过使用不同的Linux内核资源分离技术,而不需要使用虚拟机管理器,现在容器可在几秒钟内为我们提供计算单元。

FaaS平台如何将这个时间达到毫秒级?想象一下已经分离的容器装配线,内部有Node.js或者Python等语言运行时间,但还没有业务逻辑代码。当事件被触发时,包含响应该事件的业务逻辑的函数会从磁盘读取,并被插入到预热的容器中,其中已经具有相应的语言。你的函数会执行,代码被删除,相同的容器还可用于下次事件。

当然,在这个过程中会有些变化,将你的代码保存在完全热的容器中用于下次处理相同的事件。但这里的关键概念是,FaaS平台以创造性的方式利用容器,让你可映射函数执行到特定事件。当你关联这些事件(例如数据库写入或者IoT设备信号)时,你可从这些更小的组件中创建更大的应用程序。

这一切都将如何发展?

无服务器仍然是一个年轻的市场,现在还可能处于早期部署的开始阶段。但它背后有着大型提供商的支持,还有很多开源替代品,并且很多初创公司也正在为其提供免费工具。

无服务器的一个有趣的方面是,它可能可完全改变供应商锁定的概念。假设你喜欢使用Amazon Polly进行语音文本转换,但文字情感分析又喜欢使用IBM Watson。你的前端应用程序可以录制语音,发送录音到AWS的Polly功能,并将结果发送到Watson。因此,你可为特定的工作选择合适的工具,而不是被锁定在特定供应商或者生态系统。当你通过功能即服务构建时,各个部件都足够小,可随时挑选以及选择供应商。

在Serverless大会中,iRobot、Norstrom和Capital One等公司讨论了他们如何成功地应用这项技术,这证明该技术不仅仅适合初创公司,也适合成熟的企业。尽管很多早期部署者还没有使用无服务器用于面向用户的工作负载,但用户与无服务器应用交互的那一天即将到来。

本文转自d1net(转载)

时间: 2024-12-03 08:39:24

程序员请注意,无服务器将改变应用程序开发的相关文章

量化管理在程序员身上永无可能

恰如标题,第二定律表示为:在思维可以精确量化前,量化管理在程序员身上永无可能. 这次估计会有争议,所以这里给出具体的逻辑链以及对应的分析. 逻辑链: 软件是一种固化的思维 →思维的本质是概念和逻辑 → 概念和逻辑无法直接度量和精确度量 → 度量过程中需要很多的主观判断 → 以目标为导向的,个人中心的量化管理(相关的激励和惩罚)将崩溃  具体分析: 公平公正是管理的基石,为达成这一目的很多人会想到量化管理,但量化管理的基石却往往被忽略. 对人进行量化管理的基石是:量化后的数字主要受个人表现这一个因

在程序员的眼里,用户是这样使用他们开发软件的

简评:在编程这个行业中,有一个原则名为"KISS",当然你别想歪了,不是那个男女之间的Kiss,而是"keep it simple,stupid"的缩略用语,意为"长话短说,傻瓜",其实就是程序员在实现功能或者写一个应用时需要将用户当成"傻子",没错就是傻子...,这样写出来的程序才能不是程序猿的用户使用(哭笑ing). 我曾经说过,程序员不是一般人,是具有某种超能力的人.但问题是,程序员往往意识不到自己的这种特异功能,在他们

在程序员的眼里,用户是这样使用他们开发的软件的

我曾经说过,程序员不是一般的人,是具有某种超能里的人.但问题是,程序员往往意识不到自己 的这种特异功能,在他们的眼里,会认为自己很普通,跟常人一样,所以,程序员能做到的事情,其他人--比如他们的客户/软件用户--也应该很容易做到.但 事实上,由于大部分人--绝大部分人(包括软件开发公司的客户/购买软件的用户)--都是电脑小白(对电脑知识/计算机知识/软件知识知之甚少的人).一 个对于程序员来说很显而易见的软件操作,换成让用户来操作,就会出现各种各样奇怪的事情.这让程序员非常痛苦. 记得有一次,一

程序员的3年之痒改变的不止薪水(一)

                              写在开始,这里借用特立独行的猫的一句话,你可以原地踏步,但别觉得别人都该和你一样.        程序员的3年之痒,的确是时候该挠挠自己了.3年的程序员生涯,不长不短,但它的确是一个坎.3年改变了我们的不仅仅是年龄,当然还有薪水.       工作也有几年了,特别是今年要学的东西越来越多,然后感觉自己越来越无知.有时候恨不能所有的东西都要了解都要懂甚至要精通.但时间毕竟是有限的,况且你还有项目任务在身.当然很多时候也是惰性使然,空闲时间

微服务器和无服务器可改变应用交付

云服务已经改变了IT基础设施,但最新的云趋势表明了重组作业更根本性的转变.较新的云服务和应用程序设计理念(如微服务,无服务器计算和函数即服务)对IT运营人员和开发人员都有重要的影响. 然而,了解这些服务之间的差异以及它们如何影响应用程序部署可能会令人困惑,特别是因为大多数云提供商只会告诉您他们的服务是最好的.我们来看一下每个服务的特征,以及他们如何使用DevOps方法. 微服务的崛起 2011年,微服务架构的概念才刚刚开始.到2015年,每个开发人员都在谈论它.大型公司都在微服务中,宣传代码可重

大连地区程序员请注意

问题描述 本公司急招Java..net.cobol.C语言.C++.DB2程序员.语言英语/日语要求:能与外方口语交流,能看懂式样书.有意向者请将简历发到shmily7047@163.com 解决方案 解决方案二:struts2的呢?解决方案三:··········解决方案四:都是语言惹的祸

程序员请注意:异步编程模式已被人注册为专利

不论是服务器端编程还是客户端编程,编程中的同步和异步对程序员来说都应该不陌生,我们经常会用同步编程来解决顺序执行问题.用异步解决并行执行问题.然而,就是这样的常见的编程模式,有人却将其申请为专利.在谷歌专利查询网站上专利公开号为"US 20140282625 A1"的专利内容就是"Asynchronous programming model for concurrent workflow scenarios",在这个专利的内容摘要描述有: 异步方式在编程中的执行过程

在外地工作的湘潭或者周边城市的java程序员请进啊!!!!

问题描述 我很想知道是否愿意如果回湘潭继续做java程序员,你期望的收入是多少啊,顺便说下工作年限哦,呵呵,拜托老乡们了啊 解决方案 解决方案二:我是正宗xt地这个要看待遇跟机遇.......解决方案三:两年,不过不全是做java在湘潭,考虑到消费因素,4k左右吧,得看是做什么...解决方案四:sping3.0+groovy+xform解决方案五:1年多的工作经验能给多少解决方案六:看水平,有的人5年还是什么不会,有的人半年就会是很厉害的角色,每个人的能力是不同的,我只能说在同样的水平的前提下,

《程序员之禅》一一第10章 程序员之禅的10条法则

第10章 程序员之禅的10条法则 程序员之禅在一个飘雨的清晨,我坐在书桌前,思考如何进行高效率工作的问题.在成为自由职业者之前,我一度拼命工作而结果却令人闷郁.自2006年起,我开始参禅.过了许久,我终于明白,千百年前的禅师就已知道今天的程序员该如何工作.从那时起--尽管我并不喜欢"如何成为一名更好的程序员"之类的帖子,我便希望能够总结一下个人参禅心得.它可以让我保持清醒.如果你对这篇文章有什么看法,欢迎随评.