
课程咨询: 400-996-5531
投诉建议: 400-111-8989
认真做教育 专心促就业
我们在前几期的文章中给大家简单介绍了无服务器编程开发的一些基础知识等内容,今天武汉达内培训就带领大家继续来学习一下,无服务器编程应用实践分析。
择机与切入点
关于Serverless适合场景与选择,市面上已经有很多解读。这里,结合我们的一些客户视角,谈谈其中的几个可能的关键考量:
业务拥有较强的增长性。当企业处于数字化转型过程中,或业务量快速增长时,服务器等基础设施的管理成本将变得非常高昂,Serverless免运维、自动扩缩容、按需计费的优势,可以帮助企业消除服务器管理的压力,降低运维成本和人力成本,从而更好地满足业务的增长需求。
业务负载有明显的峰谷波动。Serverless根据实际业务流量的变化来动态扩缩容,且支持细粒度(如毫秒级)的按量付费模式,在业务负载峰谷波动的场景下,相比于传统云计算模式,能够起到削峰填谷的效果,在高峰期快速弹起足量的资源,保障应用性能,在低峰期精准释放资源,节约成本。
企业需要快速开发、部署新功能。通过屏蔽底层基础设施、提供应用程序模板、集成公共依赖服务等,Serverless简化了应用开发和部署的复杂度,从而提高了发布、上线的速度。进一步,Serverless与事件驱动式架构的紧密结合,让企业可以快速开发出模块之间尽可能独立、松耦合的应用架构,从而允许开发者在原应用基础上不引入额外代码改动的前提下,增加新的功能,实现新功能的快速部署等。
从决定采用Serverless架构,到企业完全掌握之间,通常会经过一个短暂的适应。例如,企业可以先在一些小的项目中试用Serverless,比如使用函数构建一个简单的Web应用,通过小规模的测试和验证,感受Serverless架构的优点和适用场景。然后从业务场景中选择能够使用Serverless架构解决的子问题,逐步将现有应用程序的组件迁移到Serverless,如数据处理、日志分析、或消息队列处理等,提高对Serverless的应用能力。验证成功后,再快速复制、应用到其它业务场景中。对于全新的项目,也可以直接采用Serverless架构,这时只需专注自己业务逻辑的设计与编码,体验快速构建应用及其上线与发布。
二次研发的优势和局限
有时候企业为了满足特定的业务需求,需要定制化的Serverless解决方案,或企业希望完全掌控自己的代码和数据,避免供应商锁定等时,选择在开源产品的基础功能上进行二次开发,以缩短开发周期。
然而,二次研发需要企业具备相关的技术能力,包括对Serverless技术栈的掌握和对开源Serverless产品的理解。同时,应用维护成本通常较高,企业需要自己承担Serverless平台本身的维护和升级成本,难以真正发挥Serverless免运维的优势。此外,开源产品通常由社区开发和维护,缺乏高效稳定的技术支持和服务保障,二次研发也面临一定的业务连续性风险。
采用云上成熟的Serverless服务,企业可以聚焦于业务需求和应用逻辑本身,无需再感知或维护底层的基础设施,如虚拟机,容器和Serverless运行时;并可以通过对应用所依赖的其它云服务(如网关、存储、消息和缓存)进行灵活编排,来尽可能减少定制化代码的开发,显著降低代码维护负担。更重要地,云化服务可以为企业提供更加高可靠、可扩展、安全稳定的应用运维体验,以及相应连续、稳定的厂商技术支持,从而在企业业务规模化增长的过程中,降低应用运维的总成本。
这里可以举一些经典的客户案例。一家专注于大规模日志采集与结构化处理的企业,在推出自己的Serverless化日志流式ETL服务的过程中,早期采用了基于开源Knative框架的自建方案,但由于自建方案的资源扩容效率低、底层虚机维护门槛高等问题,使得ETL服务的运维效率低,同时成本居高不下。在采用基于FunctionGraph的云化方案之后,其ETL服务TOC(TotalOwnershipCost)降低了近40%。另一个案例是一家云地图处理服务提供商,采用FunctionGraph对地图处理过程中的异步请求状态进行持久化,相比于早期采用的自建方案,降低了服务TOC近30%。
Serverless产品选择
企业在选择云厂商的Serverless产品时,需要结合自身的业务特点和应用架构,可以从以下几个方面考虑:
产品使用体验:包括对编程语言的支持,对开发工具链的支持以及平台提供的应用可观测性能力、开箱即用的应用程序模板、产品易用性等。
生态集成能力:对云服务集成的统一体验,如API网关、消息、缓存、存储;对三方应用接入的支持,如ApacheSkyWalking、DataDog;从而尽可能减少对基础设施相关代码的定制化开发和维护,同时也确保产品提供了一定的可扩展性和灵活性,以满足将来业务发生变化后对扩展性的需求。
成本与性价比:不同云厂商提供的性能规格不同,包括冷启动速度,实例大规格、大临时存储、大运行时长等。各家计费方式也有所不同,企业需对定价进行对比分析,选择符合自己预期的提供商。同时,也可以考虑平台对FinOps的支持,如智能化的资源推荐,透明的成本模型。
安全与可靠性:Serverless应用涉及到用户的核心业务数据和敏感信息,如应用源码,企业需要选择有完备安全措施和可靠性保障的云厂商。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。