近年来,新冠疫情、国际环境等不确定性带来的风险持续发酵,企业不断承压,强化数字化能力已成为企业稳健应对不确定性的共识之一。
云计算是企业数字化过程中应用最广泛的技术,而serverless 作为一种云计算模型和新型互联网架构,现已成为云技术的最新应用,吸引it高管及技术人员的高度关注。根据 gartner的预测,全球 serverless 架构的市场规模将在 2024 年达到 1000 亿美元。
什么是serverless?
根据 cncf 的定义,serverless 的概念是指构建和运行不需要服务器管理的应用程序。它描述了一种更细粒度的部署模型,在该模型中,应用程序被捆绑为一个或多个功能,被上传到一个平台,然后根据当前所需的确切需求执行、扩展和计费。
serverless computing即无服务器运算,又被称为函数即服务function-as-a-service,缩写为 faas。serverless 以平台即服务(paas)为基础,无服务器运算提供一个微型的架构,终端客户不需要部署、配置或管理服务器服务,代码运行所需要的服务器服务皆由云端平台来提供 。
serverless 是描述云服务、应用开发实践和云原生应用架构的一种方式,能够帮助客户更加敏捷地构建应用程序,从而帮助他们更快地创新和应对变化。
亚马逊云科技大中华区产品部总经理陈晓建在近日举办的创新大会上用了一句话来概括:“serverless就是只做一件事情并且把这件事情做好”。而这正是serverless开发理念中最重要的思想。
serverless并非指托管和运行应用程序时不再需要服务器,而是指从前耗费研发和运维人员无数精力和资源的ci/cd、服务器配置维护更新、it 资源容量的规划和伸缩等工作,被 serverless这个概念下包含的技术体系封装好了。研发团队专注于业务逻辑的编写,运维团队向sre转型,负责技术sla的制定和保障工作。
亚马逊云科技大中华区产品部总经理陈晓建
亚马逊云科技17年引领serverless持续进化
早在 2006 年,亚马逊云科技推出的第一个存储服务 amazon s3 就是无服务器架构的,早在serverless“概念”还没有产生时,亚马逊云科技已经完成了服务的搭建。真正让 serverless 名声大噪的是 2014 年,亚马逊云科技发布了业界第一个 serverless 计算服务 amazon lambda,推动了云计算用户对 serverless 的认知。
如今,亚马逊云科技的 serverless 服务并不仅止于计算,已经围绕计算、存储、应用集成、数据库、数据分析、人工智能等多个服务领域全面推进 serverless 进程。伴随亚马逊云科技推出分析服务amazon opensearch serverless,标志着其提供的所有大数据分析产品已全部提供serverless服务选项。
自amazon s3推出以来的17年里,亚马逊云科技持续引领serverless发展的技术创新、应用场景以及全球客户的创新实践,不断根据客户需求丰富serverless服务的广度和深度。在广度方面,持续丰富涵盖计算、存储、应用集成、数据库、数据分析等各方面的全栈serverless服务;在深度方面,推进现有serverless计算服务的精耕细作,为客户提供更多功能以及更高的性能。
过去17年,亚马逊云科技持续推进serverless的发展,将serverless提供的极致弹性和自动扩展能力带给越来越多的客户。据悉,每天有一亿个amazon ec2实例被启动;每周有22.5亿个amazon ecs容器任务被启动;amazon lambda月活跃客户已超过100万。全球数十万客户正在借助亚马逊云科技的serverless云服务开展业务创新。
serverless已成为企业应对不确定性的有效工具
当前社会充满了错综复杂的风险与挑战,例如硅谷银行的突然倒闭,生成式ai带来的机遇、风险与挑战等等。面对种种不确定性,企业该如何应对这些风险与挑战呢?
“serverless无需管理服务器,可自动扩展与缩减容量,支持按使用量付费,具有更高的安全与可用性,这四大特征使其成为企业应对不确定性的一个非常有效的工具。”陈晓建提到。
将serverless称之为帮助企业应对不确定性的有效技术手段,理由有三。
首先,serverless可快速创新,响应不可预测的风险。
“我们希望客户写的每一行代码都是业务逻辑,serverless正在让它变为现实。”陈晓建如是说。serverless 应用无需管理 api、消息队列、存储、数据库,企业只需要专注于业务逻辑,能将更多的精力放在业务创新上,加速应用推出的时间。
在 serverless 架构中,当一个函数没有被调用一段时间后,其资源被系统释放;等再次调用时,系统需要重新初始化资源,从而导致首次请求响应时间变长。同理,对于新到达的并发请求,会产生并发的冷启动延时问题。这是 serverless 的弱点之一。
amazon lambda作为第一款无服务器计算服务,8年里进行了大量优化。而去年推出的amazon lambda snapstart可将lambda函数的冷启动时间降低90%,实现10倍的快速启动性能,消除在系统启动时带来的突发延时。而对其客户而言,既不需要做任何代码改变,也不需要支付任何费用。据悉,该功能已帮助智能支付平台bill.com提高了95%的冷启动性能。
初创游戏公司habby(该公司开发了《弹壳特工队 》和《弓箭传说 》等热门游戏)大幅缩短了新游戏的部署和上线时间;帮助《marvel snap》卡牌游戏在半年达成全球5000万美元的总营收;帮助可口可乐在 100 天内构建了新应用程序,允许客户在不接触自动售货机的情况下订购和支付饮料。
其次,全栈serverless服务可帮助企业应对错综复杂的诉求。
会上,陈晓建介绍了云端mmo-rpg游戏《新世界》运用了大量serverless服务应对复杂诉求的最佳实践。
据悉,新世界把用户的所有状态存储在amazon dynamodb(键值数据库)里,实现用户数据的落地和一致性,不必担心由于业务程序变更而导致用户状态丢失;把用户运营日志通过amazon kinesis传到amazon s3,并交给amazon athena或amazon opensearch进行后端处理;通过amazon lambda进行用户登录、计费等业务逻辑的处理。除此之外,新世界还有很多容器应用、容器化的amazon ec2实例,这些构成了一套简单、高效的架构。
amazon kinesis每分钟可以传递处理2300万个事件,amazon lambda每分钟可以处理多达1.5亿次调用,帮助新世界轻松应对新游戏上线时的流量突增。
从新世界游戏的案例可以看出,serverless可以消除业务不确定性和业务起伏带来的隐性成本,轻松应对峰值、非频发的复杂工作负载;还可以消除数据管理系统按需扩展的复杂实施难题,无需考虑计算和存储资源的比例,也不会出现节点读写状态不一致等问题。
只有通过计算和存储分离,才能真正实现serverless,以应对复杂场景下的需求。从底层的数据库到中间的大数据分析,再到最上层的人工智能平台,亚马逊云科技提供全栈serverless 服务,以及端到端的数据能力。
以近期推出的aurora serverless v2为例,可在几分之一秒内自动扩展到数十万个事务; 以细粒度的增量扩展容量,与为峰值负载预置数据库容量的方式相比,可帮助客户节省高达90%的成本。
第三,serverless的故障隔离能力,能够助力企业应对潜在风险。
以经典的serverless计算服务——amazon lambda为例,它融入了潜水艇隔离仓的安全理念,满足企业级生产所需的99.99%高可用:执行环境在硬件虚拟化虚拟机(microvm)上运行;每个amazon lambda运行的microvm不会跨亚马逊云科技账户共享;每个执行环境只处理一个并发调用。亚马逊电商自身的业务中,有超过一半的新业务部署是通过amazon lambda来实现的。
serverless无服务器消除了企业管理基础架构的需要,企业使用serverless架构后,更多的责任将由亚马逊云科技承担,不必再去关注给服务器扩容或者打补丁等事务,可以最大限度的保证企业云上业务的安全。
第三方机构调查显示:2021年底log4j漏洞被公布,52%的企业花费了超过一个月的时间解决问题,而且48%的企业不得不通过加班来缩短解决问题的时间。而amazon lambda只在三天之内就解决了这一问题,对用户而言完全不需要做任何事。这意味着将底层基础设施交给亚马逊云科技,更高效也更安全。
企业实现serverless的三条进阶路径
陈晓建还在会上总结了企业用户使用serverless的三条进阶路径。
进阶路径1:从一些无需进行代码改造的迁移开始。
对于后端服务的无服务器化重构,亚马逊云科技开发了开源工具lambda web adapter,客户无需修改代码,可以随意切换应用程序在lambda和容器之间转换。
对于后端数据管理无服务器化迁移,亚马逊云科技提供与标准接口全面兼容的serverless数据云服务,包括关系型数据库、非关系型数据库、数据仓库等,可实现高效便捷的迁移。
进阶路径2:拥抱事件驱动架构,灵活应对不确定性。
事件驱动架构具有“依赖更少、故障隔离和架构可进化”三大优势。
事件驱动架构(event-driven architecture,eda)基于事件来解耦应用程序组件,由事件生产者、事件路由和事件消费者三个关键组件构成。航空公司的订票系统、餐厅服务的点单系统,和大量的银行保险业务,都是通过事件驱动架构来实现的,当其中某一处发生变化时,不需要对其他模块进行更改,而这正是事件驱动架构的优势所在。
amazon s3对象存储服务是事件驱动架构中的典型代表,2006 年amazon s3由 8 个独立的微服务组成,如今已经进化为超过235个不同的微服务,而整个进化过程对于用户的服务而言没有产生任何影响。
据了解,奈飞netflix等serverless客户,都是首先从事件驱动架构开始其无服务器之旅。总体来看,事件驱动架构的客户可以更快更容易地采用serverless构建微服务的新应用,或是开发新功能。
进阶路径3:serverless first,降低应用成本。
serverless first是一种思维方式,指在构建新的应用时首先考虑是否可以首选 serverless 来实现。
实际上,很多应用都可以使用serverless 来实现。serverless 应用拥有极致的弹性和成本优势:相对于容器和使用ec2模式,serverless可以以更细的颗粒度来做资源的部署,提升资源利用率,且成本更低。此外,serverless也可用于数据服务类,如amazon lake formation,可以快速构建数据湖,简化安全管理,并可提供对数据的自动访问。
serverless first思维还可用于架构设计。如果面向应用场景选择通过各种云原生的serverless服务来设计架构,可以充分发挥服务之间的功能集成和协同治理优势。
容器化架构具有轻量化、可快速复制、兼容性强等诸多优势,这也是很多企业选择将业务改造成容器化架构的原因。当被问到“容器和serverless如何取舍?”时陈晓建提到:“我们认为容器和serverless并不是两个排斥的人生就是博尊龙凯时的解决方案。从数据来看,亚马逊云科技容器服务的客户中,有80%的客户也使用了serverless。”
容器和serverless面对的是不同应用、不同场景,容器面向的是持续计算型应用,而serverless大多是面向事件驱动型业务。
“用户需要意识到,现在有非常多的应用已经可以通过亚马逊云科技丰富的serverless服务来实现,而且不需要很深的技术背景,或是需要更改架构才能实现。”陈晓建强调。
总结
无论是amazon lambda、amazon dynamodb,还是容器的serverless产品amazon fargate,每天的调用量都是天文数字。
当下企业需要从以下几个维度重新思考serverless first策略:
- 1、摒弃之前紧耦合的单体思维;
- 2、异步的事件驱动本身就是自然世界的逻辑,要主动拥抱事件驱动的模式;
- 3、无状态是扩展的关键,如通过计算和存储分离来解决横向扩展业务的健壮性问题;
- 4、每一个用户都需要去支持海量的、不断变化的用户需求;
- 5、应该更好地使用已有的专业人生就是博尊龙凯时的解决方案,避免重复造轮子。
如今,亚马逊云科技构建了强大的人生就是博尊龙凯时的合作伙伴网络,通过人生就是博尊龙凯时的合作伙伴网络成员与亚马逊云科技的人生就是博尊龙凯时的解决方案组合,帮助各行业客户基于serverless服务开展创新。例如西门子mendix低代码开发平台,借助serverless服务,能够提供更广泛的企业级人生就是博尊龙凯时的解决方案及业务场景。
据悉,西门子mendix与亚马逊云科技帮助荷兰邮政快递公司postnl全面改造其核心邮件和包裹投递系统,新系统集成了上百个微服务并稳定运行,同时具备高度可扩展和高弹性,每天可以处理4000万个事件。
亚马逊云科技ceo andy jassy曾说: “经验没有压缩算法!”亚马逊云科技的所有创新都来源于庞大的客户群所积累的经验以及其自身实践,这些深厚的经验积累没有任何捷径可以实现。所有的机会都藏在一次次优化、迭代和进化中,所谓的长期主义者就是“踏平波动,穿越周期,拥抱趋势”。
会上,亚马逊云科技还推出了serverless训练营,通过提供完整的学习路径和资源,以讲师授课、动手实验、小组练习、知识测试等多种方式帮助不同水平的学习者提升serverless技能,助力企业级客户支撑丰富的业务场景,助力客户加速转型创新。
关于企业网d1net(www.d1net.com):
国内主流的to b it门户,同时在运营国内最大的甲方cio专家库和智力输出及社交平台-信众智(www.cioall.com)。同时运营19个it行业公众号(微信搜索d1net即可关注)