Serverless是什么?是顶级云原生玩家的首选微服务

在信息技术行业里,新范式新概念层出不穷。

从软件架构到项目管理模式,从基础设施到商业赛道,热词不断涌现,令人目不暇接。

而最近的一两年里,【云原生】毫无疑问是最受关注的概念之一。

那么究竟什么是云原生,而它又有何特别之处,以至于获得如此高的关注度呢?

别看我好久不搞技术了,但是我可是一直默默关注着的。

 

云原生自然和云计算平台有关,而云计算这个概念虽然是近十年才提出的,但其本质却早在数十年前的大型机时代就已经存在。

早在上世纪70年代的大型机时代,开发人员普遍需要在本地进行软件的编码,然后通过终端将需要运行的软件上传至大型机,由大型机完成运算后再将结果返回给终端,这一过程在本质上与今天的云计算并无太大差异。

在大型机时代之后的几十年间,随着计算机小型化,计算能力本地化的趋势,PC时代取代了大型机时代,更多的运算被留在了计算机这一端。

各种大型的软件,如图像视频处理、游戏等等的出现,使得计算机用户在单机上就能完成所有的计算工作。

直到千禧年前后,随着互联网的发展,单机已经越来越无法满足计算机用户对于信息的渴求。

而各种网站如同雨后春笋般的涌现,也使得用户的计算需求再一次向中心化的计算机服务器端转移,Google的Chromebook就是这一趋势的产物。

客户端越来越“瘦”,以至于只需要一个浏览器,而计算的压力全部都转移到了服务器上。

实际上,随着摩尔定律每18个月计算能力翻一倍的发展速度,计算在服务器端和客户端之间反复摇摆。

在现阶段,移动互联网、5G和物联网(IoT)的普及,云端的计算能力还将继续高速扩张,以满足越来越多的客户端的计算需求。

从趋势上看,云计算网络最终会像电网一样基础设施化,越来越多的软件会被部署和运行在其之上。

 

也正是由于云计算的普及,云原生的概念也随之被提出。

Pivotal在2013年首次提出云原生的概念,而后,在不断的实践发展过程中,云原生的概念得以不断发展和精炼。

目前在科技行业里,对于云原生的共识就是:

在开发软件系统时,从架构设计到最终实现,乃至于项目管理流程,都以在云计算平台部署和运行作为前提来进行决策。

而具体的形态,就是微服务+容器化+DevOps+持续交付。

云原生的本质,也就是默认云计算平台作为基础,就如同现实世界中,各样的城市规划和建设,都以通水通电为基础。

云原生的软件系统,和被部署在传统意义上的服务器上的软件系统,这两者之间的差异,就如同建设一家使用现代电网的商场,和一家自行建设发电厂的商场之间的区别。

无论是从设计的理念还是建设的成本,为用户提供的便利程度,乃至于未来扩张发展的空间,毫无疑问是基于现代电网的商场完胜。

 

从设计到开发再到运营,立足于云计算平台的云原生软件系统,从各个层面都全面优于过去运行于传统服务器的软件系统。

这一点,也得益于这十年快速发展的云计算平台。


以云计算平台中最早开始运营,同时目前也是市场份额最大的AWS(Amazon Web Services)平台举例。

最初AWS仅有存储空间S3服务和云计算服务器分租EC2业务,仅仅只是在成本灵活性上优于传统服务器。

到如今AWS已提供上百种不同的服务,涵盖计算、储存、网络、数据库、内容分发、人工智能、区块链等等。

这些不同种类的服务,极大地方便了云原生系统的设计和构建,让云原生系统直接集成这些服务,再基于大规模使用来降低单位时间的使用成本,使得云原生系统与传统服务器软件之间的差距越来越大。

云原生越来越成为众多企业的首选甚至是唯一选择。

 

在支持云原生软件系统的服务中,目前最值得一提的便是Serverless了。

Serverless是指服务端逻辑由开发者实现,运行在无状态的计算容器中,由事件触发,完全被云计算平台管理,其业务层面的状态则存储在数据库或其他介质中。

Serverless 是云原生技术发展的高级阶段,可以使开发者更聚焦在业务逻辑,而减少对基础设施的关注。

从云原生软件开发的角度看Serverless,则可以将Serverless看作是FAAS(Function as a Service)和BAAS(Backend as a Service)的结合。

采用Serverless的云原生软件,天然地会采用微服务的架构,把软件的功能点转换为基于Serverless function的微服务。

至此,我们可以看到,云原生软件系统在Serverless的加持之下,完美实现了云原生的多个特性,天然的微服务架构、由微服务架构带来的基于微服务的DevOps、Serverless背后的容器化技术、以及最适应微服务架构的持续部署。

Serverless带来的微服务架构,使得软件系统内部的解耦,让微服务可以自由组合成任意的形式,从而使得云原生软件的快速迭代。

进一步,Serverless背后的容器化技术,使得Serverless function的扩展变得十分容易,自动扩容,自动休眠都成为了现实,同时Serverless的也具备了随时可以快速重启单个function而不必将整个项目下线。

 

Serverless给云原生系统带来的优点不仅仅在架构层面。

从运营成本层面,Serverless也优于传统服务器端软件系统和传统的云端软件系统。

传统服务器的运营成本和运营效率一直是一项弱点,传统服务器不仅需要从机房场地到供电制冷,还需要全套运维支持以保证软硬件级别的安全可靠。

就如同前面例子里那个自带发电站的商场,运营成本高而效率低。

早期的云计算服务在一定程度上,通过用户的分时使用,虚拟服务器的自动运行,使得运营效率得以提升,服务器的有效负载变多了。

而最新的Serverless服务则进一步通过容器化技术再次大幅提升效率降低成本,将过去27x7不断运行的云服务器抽象成为一个一个独立运算的function,按照function运行所需的计算资源收费,这一来用户的使用费用大大降低。

过去不论用或是不用的服务器,每时每刻都在增加成本,而Serverless function按需收费的形式,使得用户不需要再为空转的服务器付费了。

以AWS Lambda为例,一个小型网站,在仅有部分时间被访问的情况下,可以比最小的AWS EC2服务器实例节省多达90%的费用。

另一个常见的场景是运行一些定期任务,用AWS Lambda也可比EC2实例节超过50%的费用。

 

在竞争激烈的云计算市场里,AWS是最早也是最具竞争力的头部提供商。

AWS Lambda是市场上最早投入使用的Serverless服务,自推出以来,AWS Lambda一直以来都是云计算平台Serverless服务的标杆。

配合以AWS其他的服务,AWS Lambda为开发人员和运维人员都提供了绝佳的平台来设计和发布云原生软件。

例如,配合以AWS API Gateway和AWS Cognito,由API Gateway发布API,由Lambda Serverless实现API服务的后端逻辑,由Cognito提供身份验证和用户管理,可以在很短时间就能配置开发出一个可运行的网络API产品。

这些类似于模版一样的成熟解决方案经过了很多用户实际使用的检验,极大地减少了开发迭代的周期,同时又能达到高可用高安全性的要求。

现在Serverless已经被广泛应用于各个行业,尤其是电子商务行业,在过去的一年里飞速发展。

在2020年的reInvent大会上,AWS的CEO向我们展示了AWS  Lambda的一些数据。

目前Amazon电商一半的新应用都跑在lambda上,lambda每月上万亿次调用,换成每秒的话,已经在百万每秒的数量级,这是已经天猫双十一的量级。

等于说Amazon lambda每天都在跑天猫双十一。。。

在这种严苛的生产环境中,AWS Lambda经受住了高性能和高可用度的考验。

 

正因为AWS在云计算平台的领先技术和优质服务,在最新的云服务市场调查研究中,多个研究机构不约而同地将AWS列为云服务市场中的领先者。

在2021年Forrester Wave的研究报告中,AWS位列业内最高级别的云服务提供商之一。基于26个不同的检测纬度,Forrester Wave认为AWS Redshift继续在大数据云服务中领先。

 

而根据另一家研究机构Gartner在2021年做出的云服务商的测评,经过114个不同项目的检测,AWS获得了91分(基于满分为100分计算)

Gartner的测评中指出,AWS的高标准服务,主要体现在AWS可灵活地适应客户的不同的云计算需求,完美支持单个云服务或者多个云服务混合架构;

各类型的云服务通力合作,满足客户各样的要求;同时,AWS提供API、控制台命令、声明式配置文件以及各类型虚拟网络配置,提供业界最佳工程实践。

从工程实践的角度,基于AWS设计和开发云原生软件是一个非常理想的选择。

AWS提供了全栈式的云计算服务,加上其领先的市场份额和社区活跃程度,以及极具竞争力的价格。

用一个典型的云原生应用作为例子来说明,响应式SPA(Single page application)是目前很多网络app采用的形式,

针对这一技术特点,AWS Amplify服务集成了前端SPA,后端Serverless,RESTful API或者GraphQL,Cognito身份验证及用户管理,以及灵活的数据库配置,可以一站式满足这类型软件应用的开发和部署。

在这样一个模式下,Amplify提供了软件系统的托管,而Serverless作为各个模块的粘合剂,既提供了可以快速实现的微服务架构,又使得软件的功能得以灵活配置和无缝升级。

而所有的配置过程,既可以在AWS的网站上以“所见即所得”的方式配置,也可以将所有配置以yaml或者json文件保存,以方便所有的配置部署实现自动化完成。

 

这样的一个架构也不仅仅只适用于网络SPA软件的开发部署,同时也可以应用在移动app应用、IoT软件应用、网络API服务、机器学习应用等不同场景下。

在过去一年多时间里,因为全球疫情影响,很多企业都在加快数字化转型。在这样一个大背景下,Serverless服务的优势使得它成为了云原生软件开发的最主要考虑的技术之一。

云原生软件应用的Serverless化趋势势不可挡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值