自从世界上第一台通用计算机问世以来埃尼亚克自诞生以来,计算机科学技术的发展从未停止过。从2003年到2006年,谷歌这三篇非常经典的论文相继发表(图右),表明HDFS(分布式文件系统)MapReduce(并行计算)和HBase分布式数据库技术基础与未来机遇云计算发展方向奠定了基础。
所以从。从ENIAC到谷歌的三篇经典论文,计算机科学与技术科技的发展在不断推进。在云计算时代,可以说计算机科学技术的发展日新月异。
云计算的概念对于云计算的定义,学术界和工业界有不同的理解。回顾云计算的发展过程:
1.2006年,谷歌首席执行官在搜索引擎大会上首次提出了云计算的概念;同年亚马逊以其弹性计算能力为例云服务器此次出售标志着新兴云计算商业模式的正式诞生;
2.2008年,微软发布云计算平台WindowsAzure,尝试将技术和服务托管在网上;
3.2009年,《伯克利云计算白皮书》文章明确指出了云计算的定义:云计算包括互联网上的应用服务以及在数据中心提供这些服务的软件和硬件设施。
一旦定义明确,伯克利同时指出了云计算面临的10个问题,如服务可用性、数据丢失、数据安全性和可审计性。
2、无服务器概念无服务器定义
Serverless被翻译成中文,意思是没有服务器。所谓无服务器并不意味着你不需要依赖服务器和其他资源,相反,开发人员不再需要过多地考虑服务器,可以更加关注服务器在产品中在代码方面,计算资源也开始以服务的形式出现,而不是服务器的概念,无服务器是构建和管理基于微服务的体系结构的完整过程,它允许用户在服务部署级别而不是服务器部署级别管理用户的应用程序部署。与传统体系结构的区别在于,它完全由第三方管理,由事件触发,以无状态存在,并临时存储(可能只存在于一次调用的过程中)在计算容器中。无服务器部署应用基本上可以实现服务的自动构建、部署和启动,而不需要涉及更多的基础设施建设。
无服务器架构
左边是web应用程序的体系结构,这在传统意义上更为常见。它由客户端、服务器、数据库和其他元素组成。
过去,在做这样的项目时,开发人员需要在服务器端做很多操作,比如购买服务器,考虑购买数量、宽带、操作系统、部署区域、环境、软件等。随后,需要实时监控并持续感知该服务器的运行状况。
在无服务器架构下,开发人员只需要关心我们的业务代码。在项目开发、启动和维护的全过程中,用户不需要关注服务器级的维护,也不需要为流量的高峰和低谷投入运维资源。该部分将由云制造商承担;同时,在无服务器架构下,用户不需要为空闲资源支付额外费用。
无服务器福利
无服务器体系结构具有零服务器操作和维护、空闲时无计算成本的特点;它的交付心态可以反映为将复杂性留给云制造商,并为更多开发者带来便利。综上所述,无服务器的优势可以体现在以下方面:
1)降低成本提高效率
云供应商为用户提供服务器管理、操作和维护,并为用户提供数据库对象存储以及其他baas服务,让用户更加关注自己的业务逻辑,提高研发效率,缩短项目创新周期。同时,无服务器用户不必为自己的服务器运维、基础设施运维等工作操心,更不用说这部分的额外费用,承担更多的运维成本;无服务器架构提供了一个相对完整和全面的现收现付模式。用户只需根据实际使用的资源量付费;无服务器体系结构在这一级别有明显的优势。
- 降低维护成本
- 降低劳动力成本
- 提高研发效率
- 缩短创新周期
- 按数量支付,减少支出成本
2)安全、方便、可靠
给更专业的人更多专业的东西。无服务器架构为云厂商提供更多服务器运维和安全相关的东西,大规模提升项目整体安全性;同时,无服务器架构明显比其他架构简单,因为云厂商提供的baas服务更多,用户管理的组件更少,这意味着无服务器用户可以更简单方便地管理项目;同时,无服务器架构具有灵活性,即自动伸缩的能力,允许项目在流量增加时自动扩展,在流量减少时自动收缩,确保整个业务的安全稳定。专业团队确保用户的安全和性能,这使得无服务器架构:
- 降低安全风险
- 减少资源开销
- 符合“绿色”计算理念
- 更方便的管理
- 灵活可靠的服务
总体而言,托管到云供应商不仅可以大规模提高项目的整体安全性和稳定性,而且无服务器架构显然比其他架构更简单。
面临的挑战
虽然无服务器架构已经出现多年,但它真正进入“第一年”并迅速发展的时间其实很短;因此,尽管无服务器体系结构有许多优点,但它也面临一些困难和挑战,包括但不限于严重的冷启动问题、不完善的开发工具、供应商锁定等。然而,近年来,无服务器体系结构的普及率持续上升。人们对它寄予厚望,各厂商也纷纷加大投入。我相信当前的问题是暂时的,无服务器架构将朝着更好的使用和更容易的使用方向发展。
虽然无服务器架构为用户提供了一种新的编程范式,但当用户享受到无服务器带来的第一波技术红利时,无服务器的缺点逐渐暴露出来。例如,函数的冷启动问题是一个非常严重和令人关注的问题。由于无服务器架构具有弹性伸缩的能力,无服务器服务提供商将根据用户服务的流量波动增加或减少实例,如图所示。
具有阿里云函数计算作为一个例子,当系统收到触发函数的第一个事件时,它将启动一个容器来运行代码。如果此时接收到新事件,且第一个容器仍在处理前一个事件,则平台将启动第二个代码实例来处理第二个事件。无服务器体系结构的这种自动零管理级别扩展将继续下去,直到有足够的代码实例来处理所有工作负载。当然,在并发的情况下,不仅很容易触发函数的冷启动,而且当函数的两个触发器之间的时间间隔超过实例释放时间的阈值时,也会触发函数的冷启动,如下图所示。
然而,这里涉及到一个问题。当新的请求或事件到达时,广义上可能会出现以下两种情况:
- 有些实例是空闲的,可以直接重用:热启动。
- 没有可以直接重用的空闲实例:冷启动。
当函数在本地执行时,环境通常已准备就绪。每次执行只需要执行与函数对应的方法,而不是在无服务器架构中执行。本地和FAAS函数调用之间的差异如图所示。
3、典型应用场景自从提出无服务器体系结构以来,经过几年的发展,在许多领域已经有了许多最佳实践。CNCF总结了一些适合无服务器架构的场景。
实时文件处理
在视频应用、社交应用等场景中,用户上传的图片、音频和视频总量往往较大,频率较高,对处理系统的实时性和并发性要求较高。例如,对于用户上传的图片,可以使用多种功能分别进行处理,包括图像压缩、格式转换等,以满足不同场景的需要。
数据ETL手柄
处理大数据、Hadoop或火花以及其他相关的大数据框架。同时,应该有一个数据处理集群。通过无服务器技术,您只需将获取的数据连续存储到对象存储器中,并通过对象存储器相关触发器触发数据拆分功能,拆分相关数据或任务,然后调用相关处理功能。处理完成后,将其存储在云数据库对
函数计算的容量几乎是无限的,这使得用户可以轻松地计算大容量数据。使用无服务器架构,可以在源数据上同时执行多个映射器和reducer函数,以便在短时间内完成工作。整个过程可以简化,如下图所示;与传统的工作方式相比,采用无服务器架构可以避免资源的闲置浪费,节约成本。
实时数据处理
通过无服务器体系结构和事件触发机制支持的丰富事件源,可以通过几行代码和简单的配置(如对象存储)实时处理数据压缩包解压缩、清理日志或数据库中的数据,并自定义MNS消息的使用。
机器学习(人工智能推理和预测)
人工智能模型训练完成后,在外部提供推理服务时,可以使用无服务器架构将数据模型封装在调用函数中,并在实际用户请求到达时运行代码。与传统的推理和预测相比,它的优势在于,无论是功能模块还是后端GPU服务器,以及其他相关的机器学习服务,它都可以按卷付费并自动扩展,从而确保服务的性能和稳定性。
网络应用/移动应用后端
通过将无服务器架构与云制造商提供的其他云产品相结合,开发人员可以构建弹性可扩展的移动或web应用程序,轻松创建丰富的无服务器后端,这些程序可以在多个数据中心中高度可用,而无需在可扩展性和备份冗余方面进行任何管理工作。
音频和视频转码
在视频应用、社交应用和其他场景中,用户会上传一些视频。通常,上传的视频会被转码,包括转换成不同的清晰度。无服务器技术与对象存储相关产品结合后,可以使用对象存储相关触发器,即上传者将视频上传到对象存储,触发无服务器架构的计算平台(FAAS平台)进行处理,然后将其重新存储在对象存储中。此时,其他用户可以选择播放编码后的视频,也可以选择不同的清晰度,如图所示。
综上所述,无服务器体系结构的典型应用场景更多地取决于无服务器体系结构的特点。当然,随着时间的推移,无服务器体系结构也在不断发展,其特点将更加突出,缺点将得到弥补。
4、无服务器数据表公共云产品
自从无服务器的概念被提出以来,人们一直不知道它会引起注意。几年后,无服务器架构也在快速发展。在无服务器体系结构中,计算机服务通常由FAAS平台提供。AWSlambda、谷歌云功能和阿里巴巴云功能计算是具有代表性的工业产品。
CNCF列出的FAAS平台
阿里云无服务器
无服务器架构对底层技术基础有很高的要求。从图中可以看出,阿里云无服务器架构的整体形式非常完美,在自我建设和自我研究的道路上不断完善。中国的阿里云无服务器产品阿里巴巴内地经济已经登陆淘宝、支付宝和休闲鱼。飞猪、钉子,这在鸟的语言中得到了很好的体现。
函数计算是中国最完整、功能最齐全的无服务器产品。对于开发者来说,使用云计算和一键无服务器将成为现实。上图显示了从产品维度对阿里云无服务器的一些分析。下图从功能或体系结构、底层基础设施和计算级别显示了无服务器的典型业务能力。例如,弹性伸缩、负载平衡流量控制、高可用性部署、版本故障恢复等。与运行时的容器映像服务一样,阿里云去年推出了该服务,随后是AWS腾讯等等通过在底层如何使用serverless的图表,开发人员在上层更容易使用serverless。
开源产品
不仅在业界,许多制造商一直在为无服务器体系结构而努力,而且在开源领域,也有许多优秀的无服务器项目。许多优秀的开源FAAS平台,包括opentask、裂变、knative和kubeless,都得到了CNCF的认可。
原始链接:http://click.aliyun.com/m/1000301301/
本文为阿里云原创内容,未经许可不得转载。
最新评论