Serverless架构的前世此生

1、Serverless简介

云计算的不断发展,涌现出不少改变传统IT架构和运维方式的新技术,而以虚拟机、容器、微服务为表明的技术更是在各个层面不断提高云服务的技术能力,它们将应用和环境中不少通用能力变成了一种服务。但不管这些技术应用在哪里,帮助企业“降本增效”是技术变革永恒的主题。数据库

Serverless架构的出现,带来了跨越式的变革。Serverless下主机管理、操做系统管理、基础软件的部署运维、资源分配和扩缩容能力所有由云厂商提供,把计算能力作成像水电煤同样的公共服务,这就意味着基于Serverless服务构建应用,开发者只须要专一在产品代码上,而无需管理和操做云端服务运行环境,计算资源从过去购买“服务器”转向购买对应的“服务”。后端

Serverless = Faas (Function as a service) + Baas (Backend as a service)服务器

Serverless处理模型:架构

Serverless的典型工做流程:less

2、Serverless开发模式

Serverless真正作到了部署应用无需涉及基础设施的建设,自动构建、部署和启动服务。以大数据应用开发举例:运维

在传统开发流程中,咱们须要先根据大数据实际应用从采集,存储,清洗,关联,到分析挖掘全链路所涉及的组件列表,完成后端大数据平台一系列组件的安装部署,再等到大数据应用完成后,进行应用功能调试、应用+平台性能调优,最终测试、上线后,还须要大数据平台运维工程师对整个大数据平台进行维护。整个过程涉及多个角色,而自己大数据平台的运维和调优具有必定的技术门槛,调优效果彻底取决于自有员工的能力,而一个好的调优人员,就像一个好的数据库DBA同样,须要长期项目实践积累,属于关键稀缺人才。函数

基于Serverless,全部事情变得很是简单了,云厂商以服务的形式对外提供大数据组件能力,以往复杂的平台搭建过程获得彻底解放,只须要写完大数据应用程序后部署到Serverless服务便可,后续也不须要关心任何服务器以及大数据平台组件的运维、调优操做。云厂商在对外提供服务的同时,背后都有一个完备的团队7*24提供专业的支撑。所以只须要大数据应用开发工程师便可完成全部工做。固然,若是具有必定的大数据平台能力,对大数据应用侧的性能调优也是很是有利的,每每能够事半功倍。微服务

3、Serverless带来的价值

一、下降运营复杂度工具

Serverless架构使软件应用和服务器实现了解耦,服务器再也不是用户开发和运营应用的焦点。在应用上线前,用户无须再提早规划服务器的数量和规格。在运维过程当中,用户无须再持续监控和维护具体服务器的状态,只须要关心应用的总体状态。应用运营的总体复杂度降低,用户的关注点能够更多地放在软件应用的体验、改进以及其余能带来更高业务价值的地方。性能

二、下降运营成本

服务器再也不是用户关注的受管资源,运营的复杂度降低,应用运营所须要投入的时间和人力大大下降。在最好的状况下,能够作到少数几个应用管理员便可管理一个处理海量请求的应用系统。

三、缩短产品的上市时间

在Serverless架构下,应用的功能被解构成若干个细颗粒度的无状态函数,功能与功能之间的边界变得更加清晰,功能模块之间的耦合度大大减少。这使得软件应用的开发效率更高,应用开发的迭代周期更短。

4、Serverless现存问题

对于企业来讲,支持Serverless计算的平台能够节省大量时间和成本,释放基础设施相关员工,转移到开展更有价值的工做,而不是管理基础设施。另外一方面能够提升敏捷度,更快速地推出新应用和新服务,进而提升客户满意度。可是任何事情都有两面性,Serverless并非完美的,它也存在一些问题:

一、彻底依赖于第三方服务

当咱们采用某云服务厂商的 Serverless 架构时,理论上咱们就和该服务供应商绑定了,那么咱们再将服务迁到别的云服务商上就没有那么容易了。但若是云厂商自己兼容开源,甚至应用代码能够“0”改动迁移,这个问题就迎刃而解了,也就不存在绑定一说了。选择云厂商Serverless服务的时候,从产品演进的角度,这也是一个重点须要考虑的点。

二、缺少调试和开发工具

现阶段基于Serverless架构服务开发时,相对比较痛苦的就是功能开发阶段,每次你调试的时候,你须要一遍又一遍地上传代码。而每次上传的时候,你就好像是在部署服务器,虽然应用部署很是简单,但并不能老是快速地定位出问题在哪。不过这应该也是一个阶段性的问题,后续Serverless周边工具生态逐步完善后,相信Serverless下的开发也会拥有跟本地开发一致的体验。

三、语言版本

通常Serverless服务内部针对单组件都是维护一个或几个主流版本,这个策略彻底由云厂商决定,并不会严格紧跟社区版本。站在个人角度,也并非版本越高越好,仍是对外提供一个长期稳定的版本,好比本来是Spark 2.3,当Spark 2.4刚面世的时候,就没有必要立刻跟风,服务对外的稳定可用才是最关键的。另外,如今基于K8S的自定义镜像也能很好的解决组件多版本和周边依赖问题。

5、总结

通常来讲,社会愈加达、越成熟,社会分工就越明确,技术亦是如此。云计算通过这么多年的发展,逐渐进化到用户仅需关注核心业务和业务运行所需的资源,基础设施及平台统一由云厂商来负责看护。Serverless架构让咱们不须要再操心服务端的运维,不须要关心咱们不熟悉的领域,只须要专一于业务的开发、专一于产品的实现。咱们须要关心的事情变少了,也意味着咱们能作的事情更多了。能够说,随着Serverless架构的兴起,真正的云计算时代才算到来了。相信随着技术的飞速发展,Serverless在将来还有无限可能!

点击关注,第一时间了解华为云新鲜技术~

相关文章
相关标签/搜索