1.2 Serverless带来的价值
一项技术被广泛认可和采纳的原因往往不是因为这项技术有多新鲜或多酷,最重要的推动力是其能为业务带来巨大的商业或经济价值。Serverless架构为应用开发和运营带来了全新的思维,从多个方面为IT和企业带来价值。
1.降低运营复杂度
Serverless架构使软件应用和服务器实现了解耦,服务器不再是用户开发和运营应用的焦点。在应用上线前,用户无须再提前规划服务器的数量和规格。在运维过程中,用户无须再持续监控和维护具体服务器的状态,只需要关心应用的整体状态。应用运营的整体复杂度下降,用户的关注点可以更多地放在软件应用的体验和改进以及其他能带来更高业务价值的地方。
2.降低运营成本
服务器不再是用户关注的一个受管资源,运营的复杂度下降,应用运营所需要投入的时间和人力将大大降低。在最好的情况下,可以做到少数几个应用管理员即可管理一个处理海量请求的应用系统。
Serverless的应用是按需执行的。应用只在有请求需要处理或者事件触发时才会被加载运行,在空闲状态下Serverless架构的应用本身并不占用计算资源。在大多数的Serverless公有云服务中,如AWS及Azure, Serverless应用只有处于在线状态下才进行计费,在空闲状态下用户则无须支付费用。对比而言,在传统的架构下,应用被部署到服务器后,无论应用是繁忙还是空闲,应用都将占用其所在的服务器资源。在公有云的场景下,这意味着用户需要支付应用所占用的计算资源,无论应用是否在处理请求。
在Serverless架构下,用户只需要为处理请求的计算资源付费,而无须为应用空闲时段的资源占用付费。这个特点将为大规模使用公有云服务的用户节省一笔可观的开销。在私有环境中,Serverless这种按需执行的模式,可以带来更高的资源利用率。
提示
虽然Serverless应用本身在空闲的状态下并不需要支付费用,但是应用所使用到的一些外部服务(如存储和数据库等)仍然可能会产生相关费用。
3.缩短产品的上市时间
在Serverless架构下,应用的功能被解构成若干个细颗粒度的无状态函数,功能与功能之间的边界变得更加清晰,功能模块之间的耦合度大大减小。这使得软件应用的开发效率更高,应用开发的迭代周期更短。应用所依赖的服务(如数据库、缓存等)可通过平台直接获取,用户无须关心底层细节,因此应用部署的复杂度降低,部署起来更加容易。应用开发和部署的效率提升,使得用户把头脑中的想法变成现实中的代码,然后将代码变成线上运行的服务的这个过程变得前所未有地快速。相对于传统应用,Serverless架构应用的上市时间(Time To Market, TTM)将大大减少。
4.增强创新能力
应用的开发和部署效率的提升,使得用户可以用更短的时间、更少的投入尝试新的想法和创意。通过Serverless的方法快速做出新创意的应用原型,快速投放给用户使用并获取反馈。如果新的想法获得成功,可以进一步快速对其进行完善和扩展。如果想法不成功,失败所消耗的时间和金钱成本相对于传统的软件应用架构方式而言也是较低的。