开发者学习笔记【阿里云云原生助理工程师认证(ACA)课程:微服务和 Serverless 架构-Serverless 理念的出现】
课程地址:https://edu.aliyun.com/course/3112075/lesson/19029
微服务和 Serverless 架构-Serverless 理念的出现
内容介绍:
一.云计算平台的优势和局限性1
二.云计算平台的优势和局限性2
三.需求催生新的架构升级
四.Serverless带来的产业模式升级
五.Serverless 的技术优势
六.Serverless 带来的技术升级
一.云计算平台的优势和局限性1
云原生中的另一个重要概念 Serverless 理念,2009年云计算方兴未艾之时,加州大学伯克利分校发布了一篇著名的论文:《在云之下,从伯克利的观点看云计算》,论文对云计算的发展方向和关键技术做了大量的预测和论证。
在论文中,伯克利大学对云计算的业态总结了六点优势,其中前四点优势包括:无限可用的计算资源、用户不需要承担服务器运维工作和责任、服务按需付费,超大型数据中心降低使用成本,这四点经过云计算厂商多年努力,结合新商业模式,已经从预测变为了现实,但第五点和第六点问题,即可视化资源管理运维操作难度大大降低,和分时复用硬件的利用率大大提高,虽在云计算环境下有所改善,但问题并没有得到完全解决。
二、云计算平台的优势和局限性2
与传统自建 IPC 模式相比,云计算着重解决数据中心商业模式变化和服务器虚拟化与上云。
在云计算模式下,用户不再需要自建 IPC 和购买实体服务器,而是转向云计算厂商租用虚拟服务器,但开发人员使用服务器的方式并没有太多改变。
具体来讲,都是通过远程连接登录服务器,然后在服务器上进行操作系统升级维护和应用运行环境配置,以及应用的部署、运行、调试,唯一的区别只是远程登录地址由自家IPC转到云服务厂商。
这样可以降低用户上云的迁移成本,并不需要对原有的服务器使用流程做过多修改,但这样做的缺点首先是无法完全消除不必要的运维经济消耗,虚拟机的操作系统和应用运行环境仍然需要开发者定期升级和检查安全漏洞,这些操作无形中增加了企业运维人员的精力消耗,而且一旦升级更新部署环境出现问题,潜在的安全风险也大大上升。
虚拟服务器一般使用按时长付费的方式租用,但在实际使用过程中,应用的消耗有着时间周期的变化,虚拟服务器往往为了应付短时间的大流量而在其他时间计算需求不足,导致资源的浪费,即物理计算资源利用率并没有得到更加深入的挖掘和提升。
三、需求催生新的架构升级
在这种情况下,2015年推出了一款名为 AWS Lambda的产品,在这款产品中亚马逊提出了 Cloud 和 Serverless理念。其中 Serverless 并不是指不再需要服务器,而是开发人员不再关注服务器,转而使用运营商提供的应用运行环境直接运行应用。
亚马逊的这一理念一经提出,就引起了业内的广泛关注,虽然 AWS Lambda 这款产品,在设计上仍显得有些粗糙,以致其并没有迅速成为主流,但是Serverless 的概念为业界提供了新的云资源管理思路。
Serverless的概念,如上图,在云计算模式下,要运行由代码编写的一个简单网络应用,需要做的最小操作是:首先编写简单代码,然后租用 ECS 服务器,并在服务器中配置代码运行环境,接下来为 ECS服务器配置 VPC ,配置公网弹性 IP。
当启动多实例时,开发者还需要配备SLB 作为负载均衡,如果再考虑到应用流量变化,还需配备弹性伸缩组件,相比较下,业务代码的编写在整体流程中的占比反而相对较低,而在 Serverless 中用户只需开发服务代码,然后将服务代码传入与运行环境相关的Serverless 平台上即可运行。
运行环境的准备、公网 IP的配置以及多实例的负载均衡和弹性伸缩都由 Serverless平台进行提供,这就大大降低了应用开发者的运维成本。
四.Serverless 带来的产业模式升级
Serverless 平台包含云计算平台下应用所需的全部资源,开发者不再需要关注 ECS 网络资源,应用平台等多种顶层资源,同时,Serverless 模式并不像传统的 ECS 服务器,采用按时长方式进行收费,而是提出新的商业模式,即按计算量进行收费,云服务厂商会提供一个容量庞大的集团资源池,当 Serverless 应用需要使用计算资源时,则动态的从资源池中请求资源。
而当资源使用结束后,则迅速将资源归还给公共资源池。Serverless 的资源使用时间可以精确到秒甚至毫秒,这种设计相较于 ECS 的租用模式,资源的使用效率又得到了明显的提升,同时,对企业资产管理来讲,这种完全按照计算量收费的模式,简化了计算方法,做到了费用和业务部门的计算量完全挂钩,计算即付费,不计算不付费,使得资产管理更加便利。
五.Serverless 的技术优势
经过四五年的发展,Serverless 理念逐渐在云原生中得到了广泛实践,2019年伯克利分校再次发表的论文对 Serverless 做出了三点总结:
1. 存储与计算分离:按需使用计算资源就意味着当计算停止时,对应的应用资源将得到释放,在这种情况下,如果存储和计算绑定,势必在计算释放计算资源时也会导致存储数据丢失。因此 Serverless的设计思路即是将数据存储和数据计算分开,存储放在可持久服务中,计算放在可释放服务中。
2. 代码的执行,即数据的计算不再需要手动分配和维护资源,只需要准备好应用程序,直接通过 Serverless平台向公共资源池申请资源即可。
3. 云服务厂商按照代码计算量精确付费,一旦计算资源结束,会在秒到毫秒间释放计算资源,保证计算资源的最大效率运用。
六.Serverless 带来的技术升级
Serverless 理念不仅带来了运维效率的提升和商业模式的变化,也为云计算的底层技术实现带来了变革的契机。
传统的云计算方式下,应用的部署环境一般为右图,底层是物理服务器,物理服务器之上是云计算操作系统,而云计算操作系统之上安装一层虚拟机,通过虚拟机将物理服务器虚拟成多台ECS 云服务器,在 ECS 云服务器之上会再安装ECS 操作系统, ECS操作系统之上才是云计算应用平台和云计算应用实例。这种在底层安装了两套工作系统和一套虚拟机的架构,虽然有助于实现 ECS的按需租用。但是虚拟底层造成的性能损失平均估计在10%-20%左右,而在Serverless 基础下,开发者不再关注操作系统和运行环境。应用也不再需要直接部署在操作系统上,云服务厂商可以完全抛弃虚拟机层,在服务器操作操作系统上直接安装应用平台层,通过应用平台层实现计算资源分配和应用之间的隔离。
这样的服务架构我们称为 ESB 弹性裸金属服务器,裸金属服务器的含义就是底层的物理服务器直接暴露给应用平台层,不再存在中间的虚拟层,一台底层物理服务器可以支撑大约几十个虚拟机,而弹性裸金属服务器架构下, Serverless 应用平台可以支持几百甚至数千个应用同时部署,操作系统和底层护理服务器的硬件架构都可以为 Serverless 平台做制定化的修改和设计。
因此,如果说容器技术是云原生的基础技术,微服务架构是云原生下的推荐架构,那么 Serverless 理念则深刻的改变了用户的上云方式和云服务厂商的底层技术实现。