和大多数 IT 热词一样, 无服务器自诞生以来, 一直处于不温不火的状态. 可就在今年忽然爆发, 令人惊讶, 也有技术专家称之为 "临界点" 来临. 如果这样的话, 无服务器将迅速与其他技术相融合, 成为新型部署方式.
不要盲目乐观. IT 热词之所以 "热", 是因为它从来不是单独发展的, 而是建立在云, 大数据, 容器等技术的成熟度之上. 从这样的角度来看, 无服务器是 "云计算的一小步", 不断驱使云计算更加完善, 进入千百行业, 服务用户.
那么, 究竟什么是无服务器技术, 它是如何发展的, 它的优点, 缺点是什么, 对企业的价值在哪里? 本文将全面梳理.
1
潮流来了, 覆盖率或达 38%
在定义无服务器之前, 先看一下业内的趋势.
以去年 8 月 CNCF(Cloud Native Computing Foundation, 云原生基金会)的一项调查为例, 无服务器的应用正在快速增长. 38% 的企业表示目前正在使用无服务器技术, 这一比例较以往的 31% 有所增加, 其中 32% 的企业采用托管类无服务器平台, 6% 的企业采用安装类无服务器平台.
调查中, 部分受访者目前仍未采用无服务器技术, 这一比例从过去的 41% 下降到了 37%. 但是, 另外有 26% 的受访者表示, 计划在未来 12 至 18 个月内使用无服务器技术.
这项调查还对可安装类无服务器平台市场的使用情况做了具体研究, 其中 Kubeless 占比最大, 达到 42%;Apache Open Whisk 和 OpenFaaS 分别居于第二, 三位, 占比达 25% 和 20%.
除了安装类无服务器平台外, 托管类无服务器平台也是一大选择, 具体的市场分布情况在这里不一一赘述, 详细情况可参考下图.
数据来源如下.
https://www.cncf.io/blog/2018/08/29/cncf-survey-use-of-cloud-native-technologies-in-production-has-grown-over-200-percent/
据了解, 本次调查覆盖 2400 名人员, 其中包括 49% 的开发人员, 36% 的运营人员, 11% 的 IT 经理以及 14% 的开发经理.
事实证明, 无服务器潮流已来.
2
什么是无服务器?
既然无服务器是未来的一个趋势, 那么, 什么是无服务器?
我们稍微回顾一下历史沿革. 在 2009 年, 业内提出 DevOps 理念, 指向敏捷开发, 运维和协作的方向. 在 2011 年, 有机构预测 DevOps 将发展成为 NoOps, 也就是未来不需要运维人员. 直到 2014 年, 该概念才进一步得到了扩展, 落实到企业.
根据定义不同, 业内通常有几类简称:
FaaS: 函数即服务(Function-as-a-Service,FaaS), 或译为功能即服务.
BaaS: 后端即服务(Backend-as-a-Service,BaaS)
MBaaS: 移动后端即服务(MobileBackend-as-a-service,MBaaS)
CaaS: 容器即服务(Containers-as-a-Service,CaaS)
3
FaaS 的优点和不足
业内通常以 FaaS 来定义无服务器, 它有几个鲜明的特点.
首先, 它同云计算一样, 演变成为服务. 开发者无需购买硬件资源, 更不用关心硬件的配置环境, 物理设备和虚拟服务器, 只需关心代码的运营状态是否高效.
其次, 这种代码可以与传统服务器代码混用, 也可以编写不需要任何服务器配置要素的应用程序.
第三, FaaS 将更多的运维压力交给了第三方云厂商, 由第三方管理服务器 (物理或者虚拟) 的运营状态, 特别是在多租户的情况下确保运营的高效, 稳定和安全.
第四, 与容器, 微服务的概念和应用密不可分, 越来越趋于融合.
但是, 正如所有的技术都有不足一样, 无服务器的这种完全依赖于第三方云厂商的技术还存在明显的不足.
首先, 对云厂商的要求提高. 这意味着寻找可靠的第三方云服务商尤为重要, 毕竟安全问题, 多租户问题, 供应商锁定, API 调用, 功能缺失等基础设施方面的功能都取决于云厂商.
第二, 评估和测试工具. 如何确保程序能顺畅运营在第三方提供的无服务器环境中? 是否有一些评估标准和指标? 通常来说, 就是基于何种标准来评定云厂商的环境更好更优?
第三, 实施的困难. 这并不指程序能否运行, 而是指程序集成, 封装的难度增加. 由于只能是运行某一类功能, 并且也无法实现 "原子回滚", 程序的稳定性就更为重要了.
4
无服务器是否可以 "包打天下"?
所有技术都有其适用的场景, 无服务器也并不是 "包打天下", 它主要应用在以下这些范围.
函数计算有人把无服务器也称之为函数即服务, 因为其轻量级适合无状态应用程序和函数式编程模型, 包括应用程序的编程接口发布, 查询响应, 面部识别和语音识别等.
边缘计算边缘计算的核心是将一部分数据放在边缘节点收集, 存储和处理, 具有轻量级, 数据量大, 功能较为单一等特点. 这也是无服务器领域一个较为广泛的应用, 可以与边缘计算的存储产品相结合.
某些数据的工作负载如果只具有某一类型功能, 并不需要太多的数据交互功能, 那么像高性能计算, 商业智能, 建模, 基础科学研究等都是应用的场景.
从这几点来看, 无服务器之所以流行是由执行任务单一, 数据轻量, 部署简单的特性决定的. 如果真要大规模落地, 必然会推翻现有的诸多技术架构, 尤其是编写代码的方式.
5
对企业的好处是什么?
通常来说, 新技术之所以能被应用, 是因为具有降低成本, 减少人力和让 IT 团队更敏捷等优势, 这些无服务器技术都具有.
使用无服务器技术就如当前我们使用云计算一样, 按照实际的使用情况来计费, 而不是按照预留的计算资源来计费. 这也是无服务器技术的本质 -- 功能既服务, 这是在平台即服务 (PaaS) 甚至是容器即服务 (CaaS) 之上发展衍生出的一种服务形式, 没有脱离云计算的商业范畴.
在一些研究机构中甚至认为, 无服务器技术可以为企业节省 70%~90%的成本, 这要取决于具体环境. 也有人认为这种想法过于乐观.
当然, 由于不用关心硬件, 配置环境和运营, 无服务器技术会让开发者的敏捷性提高. DevOps 最终演变成 NoOps, 就会减少人力, 让企业的开发人员专注在代码方面. 但这一愿景一时半刻还实现不了. 目前可见的好处是, 会让开发具有更快的开发速度和更低的成本.
6
临界点已到, 未来该走向何方?
无服务器技术始终在不断演进的过程中, 应用也不断增多. 福布斯技术委员会认为, 采用无服务器应用已经到了一个临界点. 他们预测, 2019 年无服务器技术将有如下几个重要趋势.
标准化越来越多有关于无服务器技术的标准将出台, 这将确保各个平台之间具有更好的移植性和互操作性. 以 CNCF 为例, 已经将相关标准列入日程中. 标准化的好处在于, 促使越来越多的厂商加大创新力度, 这也是技术成熟的一个象征.
编排服务目前, 各大厂商之间的无服务器联盟正在形成. 包括百度智能云, 谷歌和 IBM 等都推出了 Knative 的开源框架. 试图基于 Kubernetes 之上实现无服务器, 服务网络和容器之间的统一, 并形成一个云应用的编排平台. 这可能也是趋势之一: 容器和无服务器正在并行发展, 最终将统一.
融合加快无服务器让应用程序呈现分布式状态, 在开发速度, 模块化方面都有优势. 但在一致性, 完整性和运营方面还有缺点. 未来, 企业将会越来越多的要求统一管理云资源 -- 包括网络, 公有云和私有云的资源, 从不同的颗粒度来控制, 这将为无服务器的应用迎来新的转机.
更复杂的测试工具为了确保这种基于微服务的应用顺利通过测试, 将会出现更多复杂的测试工具以应对测试挑战. 可能包括集成测试, 基于应用的关键组件的测试等.
当然, 这些趋势还包括安全性, 提高交付的速度和稳定性等, 这是任何新技术出现或者在应用之前都需要考虑的问题. 所有问题并不是一蹴而就的, 需要在实践中慢慢得到解决.
7
结束语
本篇文章回答了无服务器是什么, 优点和不足, 以及为企业带来的好处等, 尤其是针对未来的趋势给出了一个判断. 从中不难发现, 作为一种服务, 无服务器天然与容器, 微服务密不可分, 相互融合. 而且随着技术的不断演进, 标准的不断推出, 相信各大厂商的联盟也会促进无服务器最终形成一个事实上的标准, 加速落地.
本文转自百度智能云
来源: https://blog.csdn.net/ZPWhPdjl/article/details/100973311