云计算 频道

为什么说无服务器是云计算的未来?

  【IT168 评论】无服务器计算是一种由云提供商完全管理代码执行的体系结构,而不是传统的将开发应用程序部署到服务器上的方式。

  这意味着开发人员在部署代码时不必担心管理、采购和维护服务器。以前,开发人员必须考虑部署前需要多少存储和数据库容量,这减慢了整个过程。

  无服务器的功能有哪些?

  无服务器依赖于功能即服务(functions-as-a-service),开发人员将他们的应用程序分解成小的、无状态的块,这意味着他们可以在没有任何与底层服务器相关的的情况下执行。

  最受欢迎的功能即服务产品之一是来自市场领先云供应商Amazon Web Services (AWS)的AWS Lambda。Lambda早在2014年就推出了,在Lambda上,开发人员无需配置或管理服务器即可运行代码。AWS按100毫秒的增量对使用的计算能力收费。因此,开发人员可以专注于他们的代码和事件触发器,而AWS负责其余的工作。

  AWS负责的工作可能包括对Amazon S3或Amazon DynamoDB表中的数据进行更改、响应使用Amazon API Gateway的HTTP请求或使用AWS SDK进行的API调用。例如,当用户在乘车共享应用程序上申请汽车时,这可能触发写入获取汽车的代码,或者点击应用程序上的“购买”按钮将触发该购买过程。

  “Lambda是一个由事件驱动的执行环境,”AWS的Ian Massingham解释道, “因此,在非常简单的术语中,只要您有代码和事件,当事件发生时,代码会自动为您执行。您不必预先定位资源或创建任何常设基础架构来提供执行环境。”

  他当事件被触发时,系统会自动分配基础设施来执行代码:首先在机器上启动的Linux容器和详细信息,然后获得有关事件的元数据,最后将数据传递到执行点。

  这与AWS本身内部的“传统”部署模型相反,EC2 (弹性计算云)实例运行Web服务器或应用程序服务器,以及确定何时为他们提供服务。这为企业提供了超低成本,使用Lambda时的执行成本为0。而且,它在低使用率时具有高成本效益,在高使用率时更具可扩展性,因此不管规模大小都有好处。

  Massingham表示,重要的是,Lambda并不完全等同于无服务器。 Lambda是执行部分,无服务器要大一些。“除了计算之外,您还希望不需要操作基础架构就能运行数据存储, Lambda就是一种不需要您操作基础架构的方法。

  在2016年的主题演讲中,亚马逊CTO Werner Vogels用了一个比喻:“以前,你的服务器就像宠物一样。如果它们生病了,你就得把它们养好。它们像是牛,你必须放他们去吃草。但在无服务器中没有这样的牛,只有您的应用程序。您甚至不需要考虑恢复其健康或获得新的应用程序,其中的所有的任务都能自动执行。”

  有哪些厂商正在提供无服务器解决方案?

  不过,无服务器并不只是对AWS客户可用。IBM OpenWhisk是另一种基于事件的体系结构。谷歌具有云功能,“开发人员可以创建单一用途的、独立的功能来响应云事件,而不需管理服务器或运行时环境”。类似地,微软也有Azure功能。

  2019年4月,谷歌云宣布推出Cloud Run的公共测试版,这是一个完全托管的环境,供客户以“无服务器”方式部署应用程序。

  在当时发布的博客文章中,工程副总裁Eyal Manor和谷歌云产品管理总监Oren Teich表示:“传统的无服务器产品遇到了诸如运行时支持受限和供应商锁定等挑战。开发人员经常需要在各种纠结中选择:到底选择无服务器带来的易用性和速度,还是选择容器带来的灵活性和可迁移性。但在谷歌云,这两种优势你可以同时拥有。”

  以前,谷歌用户可以使用谷歌云功能有效地运行无服务器,运行客户可以“运行无状态HTTP驱动的容器,而不必担心基础设施”。然后,客户将被按每100毫秒的使用时间收取费用。

  Cloud Run基本上可以根据请求旋转Docker容器,这意味着开发人员可以编写代码并将其提交到Cloud Run环境,GCP将负责配置和管理服务器,以及自动扩展以确保客户真正支付他们使用的时间。

  “我们可以做各种专有的缓存和性能增强,”Teich说,“因此,Cloud Run能够利用我们在过去十年中建立的良好基础,满足用户规模化以及灵活部署需求。”

  Cloud Ru还可以与Google Kubernetes Engine(GKE)协同工作,这意味着客户“可以在现有GKE集群上运行无服务器”。您可以将相同的无状态HTTP服务部署到GKE集群,同时抽象出复杂的Kubernetes概念。”

  Oracle还在JavaOne 2017大会上宣布了与云无关的无服务器Fn项目。在关于这个主题的博客文章中,Gluon和LodgON的联合创始人Johan Vos写道:“Fn的一个关键特征是,虽然它打算在云环境中运行,但它并不依赖于特定的云供应商。平台本身可以托管在任何支持Docker的云环境中。这意味着您可以在Oracle云上运行它,但您也可以在自己的基础架构或其他云系统上运行它,例如,AWS 、Google云、Microsoft Azure等。”

  如何看待无服务器的未来发展?

  2018年11月,亚马逊CTO Werner Vogels在其“2018年re: create”主题演讲时谈到了无服务器计算的发展轨迹,尤其是它与企业的关系。

  他表示,通常应该是更年轻的、以技术为导向的企业率先尝试这种技术,但我们实际上看到的是,大型企业才是真正拥抱无服务器技术的企业。只需要构建业务逻辑而不考虑其他任何事情的概念确实推动了无服务器的发展。

  吉他制造商芬达(Fender)也加入了Vogels的行列,该公司使用Lambda触发器来支撑其数字内容流程,并大谈其解放开发者、专注于其数字产品而非基础设施的雄心。

  Vogels表示,甚至像Fender这样的传统企业 也在走向无服务器。无服务器的好处是显而易见的:无需提供任何服务,它可以自动扩展,并且具有高度可用性和安全性。最重要的是,你只需为你使用过的东西付费。

  AWS Lambda工程总监Holly Mesrobian说:“人们讨论过很多关于可伸缩性、可靠性、性能、安全性和成本的问题。当我们构建AWS Lambda时以无服务器的方式对所有这些问题进行优化。”

  在增强这些功能时,让开发人员兴奋的是Firecracker的开源版本,它允许安全的无服务器开发,同时不会降低性能。

  Firecracker扩展了它的工作原理,为无服务器计算提供了安全、快速的microVM 。为了实现安全性,它设计的速度非常快,在不到125毫秒的时间内启动代码,创建速度高于每台主机每秒150个microVM的速度。Firecracker同时确保了规模和效率,其内存开销低且每个microVM的内存占用量小于5MB,每个主机上有数千个microVM。

  让开发人员如此激动的原因是,它带来了Fargate的性能变化,Fargate是AWS计算引擎,允许客户无需管理服务器或集群即可运行系统。

  无服务器有哪些落地案例?

  丹麦网络公司Trustpilot是一家真正应用无服务器的公司。

  该公司成为云企业已经有五年了,运行由事件驱动的微服务和REST api组成的高级体系结构。它在线整合了对产品和服务的独立评论,该公司首先“无服务器化”,并将在2019年年中关闭其最后一个EC2实例。

  它的第一步是确定Trustpilot所谓的“工程原理”,以便在其架构中添加“无服务器优先”。

  其原则是:坚信无服务器(FaaS、BaaS、DBaaS)是云的未来,并站在这一趋势的最前沿。目前,无服务器可能不是所有企业的非常好的选择,但是改变正从这里开始,虚拟服务器正在被淘汰。

  该公司现已减少运行53%的虚拟服务器,从今180个到今天的95个。同时已经拥有283个容器,比2016年的80个增加了354%。另外,常规Lambda功能从40个增加到252个。

  其他已经通过Lambda将应用程序移至无服务器的企业客户包括Thomson Reuters、Finra、Hearst、Vevo和Expedia。

  在谷歌云中,Teich表示,在过去一年左右的时间里使用Alpha Run的客户运行了大量的程序,他们已经取消并转移他们现有的基于Web的数据。 他还强调了Alpha Run在科学界的受欢迎程度。

  总而言之,现在是应用无服务器的非常好的时机。

0
相关文章