数据存储产业服务平台

Serverless 是描述云原生应用架构的一种方式,你Get到了吗?

我理解的Serverless:所谓“无服务器”并非真的不使用服务器,服务器计算还是需要的,但是使用者并不需要关注服务器选型、配置、运维和管理,就像水电一样,用户做的就是打开开关,而无需关注背后的水厂、电厂,以及输水、输电的过程。“无服务器Serverless”这个概念,最早出现在 2012 年左右Ken Fromm的一篇文章里,文中对它的解释是:“无服务器”并不意味着不再涉及服务器,它只是意味着开发人员不再需要考虑那么多的物理容量或其他基础设施资源管理责任,通过消除后端基础设施的复杂性,无服务器让开发人员将注意力从服务器级别转移到任务级别。

亚马逊云科技希望我们理解的Serverless则更具体一点:亚马逊云科技的Serverless服务广泛覆盖计算、存储、网络、容器、数据库、数据分析、机器学习、应用集成等多方面。其中,分析服务已全面实现Serverless化,包括Amazon Athena、Amazon Managed Streaming for Apache Kafka (Amazon MSK)、Amazon Kinesis和Amazon MSK、Amazon Redshift、Amazon Glue、Amazon QuickSight以及Amazon OpenSearch Service。在数据库服务方面,亚马逊云科技目前提供包括Amazon Aurora Serverless、Amazon DynamoDB、Amazon Timestream、Amazon Keyspaces和Amazon Quantum Ledger Database (Amazon QLDB)和Amazon Neptune六大数据库的Serverless选项。亚马逊云科技希望我们理解的Serverless是Amazon Lambda为代表的全栈Serverless云服务。

如果你对亚马逊云科技的产品不够了解,很可能已经被这一堆产品或服务名称搞晕了,能够知道他们是做什么用的就已经不容易了。为此,我将上面的提到的部分Serverless服务做了一张思维导图,希望能够帮助大家了解这些产品。

亚马逊云科技将Serverless 描述为云服务、应用开发实践和云原生应用架构的一种方式,能够帮助客户更加敏捷地构建应用程序,从而帮助他们更快地创新和应对变化。

怎么来理解这个描述呢?

结合以上的思维导图,不妨把Serverless理解为两个维度:一个是云服务,如以上的数据库、分析服务的Serverless,此前我也在文章中提到过SaaS就是Serverless,通过拥抱Serverless,就可以更好地实现SaaS;如今需要补充的是另外一个维度,也就是应用开发、云原生应用的架构。对此怎么理解呢?其实也简单,对于更复杂的用户业务应用而言,总有现有的SaaS服务无法满足的需要,对此,用户就可以借助Lambda和丰富的Serverless服务,进行必要的开发来满足需求。开发所采用的方式是基于松耦合的微服务化调用的方式。

这也是为什么亚马逊云科技要介绍Amazon Lambda Snapstart可将Lambda函数的冷启动时间降低90%,实现10倍的快速启动性能,消除在系统启动的时候带来的突发延时的原因,因为这牵涉到Lambda作为一种微服务基础支持服务的运行效率问题。同样的亚马逊云科技要解答有关安全的问题:Amazon Lambda融入了潜水艇隔离仓的安全理念,满足企业级生产所需的99.99%高可用。Lambda执行环境在硬件虚拟化虚拟机(microVM)上运行,每个Amazon Lambda运行的microVM不会跨亚马逊云科技账户共享,每个执行环境只处理一个并发调用。类似给服务器升级或者打补丁的事情,采用Serverless后也是由亚马逊云科技来承担。

所以Serverless不仅可以简单理解为SaaS,也可以理解为松耦合的微服务化软件开发。在此,亚马逊云科技提供了开源工具Lambda Web Adapter来帮助应用程序后端服务的Serverless化重构,使其可以随意在Lambda和容器之间转换:基于容器开发的代码,经过镜像打包,可以交付到Lambda里执行;相反基于Lambda开发的Web应用,也可以通过web adapter选择采用Lambda还是采用容器部署和执行。

Serverless云服务的发展带来了更丰富的功能和更强大的性能,可以帮助企业在SaaS服务的基础上更进一步,加速其云原生应用的改造或开发,从而能够更快速更敏捷地推出新功能或新应用,这就是全栈Serverless所传递的新信息,对此,你Get到了吗?

未经允许不得转载:存储在线-存储专业媒体 » Serverless 是描述云原生应用架构的一种方式,你Get到了吗?