“像用水用电一样用IT”,这句话经常被用来形容公有云服务。虽然至今距离这一目标仍有距离,但云服务商们一直在向着这个方向努力,近年来大火的Serverless就是众多努力之一。
Serverless不仅让用户免于购买服务器硬件,还不用操心它们的运维,从而让用户从繁琐的运维中解脱出来。同时,由于Serverless能更细粒度管理资源,从而能降低用户的使用成本,因而受到用户的欢迎。2018年Gartner发布报告,将Serverless列为十大未来将影响基础设施和运维的技术趋势之一。Gartner还预言,全球2025年将有50%以上的企业采用Serverless架构。
今天,各个云服务商也纷纷将Severless列入战略重点,越来越多的云服务被Serverless化。在众多云服务商中,亚马逊云科技无疑是布局最早的一个,不仅推出了丰富的Serverless服务,如分析服务全栈Serverless化、6大数据库产品的Serverless服务等。同时,在开发工具上也为Serverless应用提供了更好支持,不断降低Serverless应用的门槛。
“当前,大型云服务商正在主动构建内生竞争力,除了在基础设施上加大投入,更是围绕Serverless和微服务等完善产品、工具和架构。亚马逊云科技通过多年的创新经验和技术积淀,帮助全球企业和开发者利用无服务器服务,帮助企业从厚重的服务器架构转向灵活的无服务器架构,降低运营和开发成本、增加敏捷性和韧性,大大降低了创新难度。”艾瑞咨询研究总监王成峰评价说。
01 弹性扩缩容,从容应对不确定性挑战
尽管Serverless很火爆,但对于何谓Serverless不同的人有不同的说法。亚马逊云科技的定义是,Serverless是描述云服务、应用开发实践和云原生应用架构的一种方式,能够帮助客户更加敏捷地构建应用程序,从而帮助他们更快地创新和应对变化。
通俗的理解,Serverless就是开发者不需要关心底层的服务器和基础设施,只需要编写处理逻辑代码,并将其上传到云服务提供商的平台上,由云服务商来保证代码的执行。
与当下采用最多的公有云服务IaaS对比:IaaS虽然让企业不用购买硬件服务器等资源,但购买实例之后作为用户的企业还得自己管理系统的安装、部署,要考虑是否为可能的峰值预留资源以及预留多少等等,而采用Serverless后这些工作用户都不用操心,真正实现了按需扩展、按使用付费,而且是自动完成的。
很显然,在充满不确定性的当下,Serverless这种弹性扩缩容能力带来的灵活性正是很多企业所需要的。在亚马逊云科技日前举行“全面拥抱Serverless时代”创新大会上,亚马逊云科技大中华区产品部总经理陈晓建总结了Serverless四大价值:
1. Serverless不需要管理服务器,用户不用关心底层的物理资源。
2. 自动的扩缩容。业务上云之后可能面临各种变化(如突然成了爆款),如果采用Serverless之后就无需关心底层的物理资源如何规划,也不用担心业务的流量和负载发生变化时,底层物理资源如何去调度,这些统一交给云服务商来处理。
3. 按使用量来付费,能更好地控制成本。Serverless能很好地匹配需求,进行资源的扩缩容。特别是业务有非常明显的波峰和波谷时,Serverless能明显节约成本。
4. Serverless提供了更好的安全性。在Serverless架构下,更为专业的云服务商会承担更多的安全责任。比如,数据库、存储等这些资源的安全会由云服务商来保证,用户只要关心的自身业务的安全就好。
另外,Serverless的弹性伸缩能力代表着提升资源利用率,意味着计算更”绿色”,非常符合低碳经济的时代大趋势。
02 17年的Serverless创新路
Serverless能有今天的市场认可度,与亚马逊云科技一直以来的努力分不开,说亚马逊云科技一手捧红了Serverless也不为过。亚马逊云科技于2006年3月14日推出的全球第一款公有云服务Amazon S3存储服务,其本质就是一款Serverless服务。但真正让Serverless被大众所知还是亚马逊云科技2014年推出的首款Serverless计算服务Amazon Lambda问世,它让我们真正看到了这一技术的魅力所在。
Amazon Lambda问世8年来,亚马逊云科技一直在持续的优化和改进,至今已累计发布了超过100款新的功能,其在采用率方面也一直保持领先地位。今天活跃用户超过100万,同时每月的调用请求量超过10万亿次。
而最近一次优化就是去年12月在re:Invent期间发布的AmazonLambda SnapStart,这项目服务将Lambda函数的冷启动时间降低90%,实现高达10倍的Amazon Lambda快速启动性能,而客户不需要做任何的代码改变,也不需要支付任何的费用。
如今,亚马逊云科技已经实现全部分析服务的Serverless化,拥有包括交互式查询服务Amazon Athena、大数据处理服务Amazon Managed Streaming for Apache Kafka (Amazon MSK)、实时分析服务AmazonKinesis和Amazon MSK、数据仓库服务Amazon Redshift、数据集成服务Amazon Glue、商业智能服务Amazon QuickSight以及运营分析服务Amazon OpenSearch所有Serverless版本。
在数据库方面也提供了6种数据库的Serverless服务,包括AmazonAurora Serverless、Amazon DynamoDB、Amazon Timestream、Amazon Keyspaces、Amazon Quantum Ledger Database (Amazon QLDB)和AmazonNeptune。不久前的3月,Aurora Serverless V2就在中国区正式上线: 可在几分之一秒内自动扩展到数十万个事务; 以细粒度的增量扩展容量,与为峰值负载预置数据库容量的方式相比,可帮助客户节省高达90%的成本。
另外,亚马逊云科技还在推动其他云服务在Serverless方向上的演进,打造无服务时代新的应用范式,比如面向容器的Amazon Fargate就是Serverless与容器服务的结合。同时,对象存储服务Amazon S3也一直持续增加新功能,文件存储服务Amazon EFS等不断演进,让无服务器计算的架构更安全、更方便地实现。
03 让Serverless成为新的应用范式
Serverless的好处显而易见,那么,如何能享受这种技术的红利?实际上,拥抱Serverless技术并不难,甚至无需修改代码就能实现。
比如,利用亚马逊云科技开发的开源工具Amazon Lambda Web Adapter,客户无需修改代码,就可以随意切换应用程序在AmazonLambda和容器之间转换:基于容器开发的代码经过镜像打包,可以交付到Amazon Lambda里执行;而基于Amazon Lambda开发的Web应用,也可以通过Amazon web adapter选择采用Amazon Lambda或者容器部署和执行。对于后端数据管理,亚马逊云科技提供与标准接口全面兼容的Serverless数据云服务。
当然,已有应用如果要想充分利用Serverless技术红利,还是需要对应用程序进行适当改造。其中,采用了事件驱动架构的应用程序就是最适合Serverless的。
“Serverless本身非常适合有波峰波谷的场景。对于事件驱动架构(EDA),事件本身也是突发的,它本身就很容易造成波峰波谷的产生。所以事件驱动场景是非常适合用Serverless开发的。”陈晓建解释说。
实际上,即使不用Serverless,事件驱动架构也是一种值得优先考虑的架构。在亚马逊云科技内部,事件驱动架构就得到广泛采用,Amazon S3就是事件驱动架构的典范。在去年底的re:Invent大会上亚马逊副总裁兼CTO Werner Vogels博士曾专门阐述这方面的核心内容(参看《Serverless时代,如何开发出具有进化能力的系统?》)。
具体而言,事件驱动架构具有三大优势,包括:
更少的依赖 当组件紧密地相互依赖时,在不影响其他组件的情况下,对单个组件做出更改可能是很困难且有风险的。而在松耦合的应用程序中独立构建和部署应用程序,相互依赖较多,更改一项服务影响其他服务的风险较小。
故障隔离 在松耦合的组件中独立扩展组件,一个组件失败不会影响其他组件,整个系统仍可继续运作。具有松耦合组件的应用程序具有更少的单点失败,以及更高的弹性。
可进化的架构 在不更改现有应用程序的情况下使用事件构建新功能。由于组件会发出事件,因此事件驱动型架构很容易扩展,不需要改变整个系统,即可轻松发展你的架构。
当然,对于全新的应用最好要采用“Serverless First”的思想来设计。所谓“Serverless First”就是在构建应用时首先考虑是否可以选 Serverless,能否采用微服务、事件驱动架构等。实际上,很多人可能没有意识,有非常多的应用都可以使用Serverless来实现。而对于真正想拥抱Serverless的用户,亚马逊云科技无疑是一个值得信任的服务商。
“我们的全栈Serverless服务是长期云服务运营经验的结晶。我们所有的创新都来源于客户,来源于亚马逊自身实践,来源于服务数百万客户所积累的经验, 如此深厚的经验积累没有捷径可以实现。”陈晓建说。
热门跟贴