作为云计算产业公认的下一个技术风口,Serverless 对于应用开发者来说已经是耳熟能详的概念了。根据第三方调研机构分析预测,2020 年全球 Serverless 市场规模将达到 76 亿美元,而到 2025 年则会猛增到 211 亿美元,年均复合增长率高达 22.7%。如今,云计算商业用户中有超过半数开发者在采用 Serverless 构建技术架构,可以看到 Serverless 将成为应用发展创新业务必备的技术之一。
那么,究竟什么才是 Serverless 的核心概念?Serverless 诞生以来走过了怎样的路线?有哪些特征?在 2020 年 11 月 24 日举办的华为应用市场 AppGallery Connect 研习社•沙龙西安站上,华为 Serverless 资深架构师们为大家带来了 Serverless 的业界洞察与发展趋势展望。
一、Serverless 概况与历史轨迹
1、Serverless 特征
· 低成本。开发者用函数编写应用后部署在云端,出现请求之后云端资源才会按需收费,显著降低了开发者的交付成本与使用成本。
· 免运维。在 Serverless 方案中,云端服务的部署、升级、在线缩扩容等微服务时代的复杂操作都由后端服务来完成,大大减轻了开发者的运维负担。
· 上线快。Serverless 分为两大部分,一是 FaaS,通过开发 Function(函数)的形式实现业务逻辑;二是 BaaS,也就是云存储、云数据库等后端服务。通过端侧直接访问后端服务、事件触发、端云同步、函数粒度的服务上线等机制,可极大缩短应用的迭代周期,提升业务的上线速度。
2、Serverless 发展历史与驱动要素
自单体服务架构普遍转向微服务架构后,虽然传统存在的一些问题,诸如代码变更困难、维护成本高、上线周期长等障碍得到了解决,但由于微服务需要将架构解耦成众多独立的小模块,因此对这些模块进行部署、监控、弹性伸缩等生命周期运维工作就成为了一大挑战。
基于这样的背景,云服务厂商开始利用 Serverless 技术来帮助开发者解决微服务的运维需求。Serverless 以云函数作为业务逻辑的基本计算单元,围绕云函数还有对象存储、数据库等队列实现 BaaS 后端服务,组成完整的 Serverless 应用来帮助开发人员的应用快速上线,并将开发者的精力从运维工作中解放出来,更多投入业务创新层面。
随着 Serverless 技术的发展,开源领域也有许多项目为开源 FaaS 贡献力量,从而使整个 Serverless 生态逐渐成长壮大。
3、从微服务到 Serverless 的演进
当下的微服务架构中,首选的架构设计方法就是领域驱动设计。领域驱动设计方法在落地时需要相当复杂的过程,拆分出来的时间、领域,所做的聚合都可能不够理想。随着架构演进,前期服务的解耦再组合也会产生相应的成本。相比之下,Serverless 最大的优势是可以根据业务快速创新函数。业务流程的每一个步骤都可以映射为一个函数,从而实现一个业务逻辑来部署到云端,实现快速上线交付。现有微服务也可以将接口转换为函数,实现免运维的成果。
在编码测试层面,Serverless 可以提供比微服务更小、更细粒度的代码实现,对应的测试单元体积也会更小,这些都能加快开发与测试的速度,缩短交付周期。
在交付和运维层面,Serverless 架构中函数的发布与治理由平台负责,进一步加快了业务逻辑上线;运维的部署、升级、弹性缩扩容也是平台完成,因而可以从传统的 DevOps 演进为 NoOps 的状态。
二、AppGallery Connect Serverless 服务
AppGallery Connect,简称 AGC,是华为面向全球应用开发者的一站式服务平台。在沙龙上,华为团队为开发者们呈现 AppGallery Connect Serverless 服务的技术愿景与特色。
1、AppGallery Connect Serverless 现状与愿景
AppGallery Connect Serverless 的整体方案分为三大层面:
最上层对接行业解决方案,包括华为内部的音乐、视频等应用,以及第三方的快应用、快服务等。针对这些行业方案,华为 Serverless 生态会提供一些便捷的软件开发包。
中间层是 AGC Serverless Framework,其中包括云函数、云存储、云数据库,形成 BaaS+FaaS 的综合体,共同帮助开发人员快速实现业务逻辑,卸除运维压力。
底层依赖华为云自身的 IaaS 和 PaaS 能力,提供坚实可靠的基础设施支持。
针对开发者的各种需求,华为 Serverless 提供了一系列 Kit(云服务 SDK),例如 Auth ServiceKit、Function Kit、CloudDB Kit、Cloud Storage Kit 等等。通过这些 Kit,开发人员可以在端侧开发过程中专注于业务逻辑,并引用 Kit 完成对云端 Serverless 服务的调用。
针对行业的未来需求,华为 Serverless 也做了很多探索和创新:
为了提升开发效率,华为提供了统一的开发平台和云函数的市场,使开发者可以直接下载所需的能力来改进升级应用。
针对 ARM、x86、GPU 等不同类型的基础设施,华为通过异构计算的机制来分配函数调用,确保 Serverless 函数都可以在最合适的硬件上运行,从而提升效率、降低成本。
为了降低每次请求后的函数冷启动延迟,华为通过沙箱和代码压缩等技术,努力做到启动延迟低于 100 毫秒的目标。对于函数间调用,华为希望通过内部通信机制将现有的 10 毫秒左右延迟降低到 1 毫秒左右。
通过这些探索,华为希望使开发者更聚焦于业务创新,从而更好地拥抱技术风口,利用技术红利来实现业务升级,创造更多价值。
介绍完 AppGallery Connect Serverless 整体方案特点之后,华为应用市场团队又详细介绍了认证服务、云函数、云数据库、云存储和云托管五大服务的优势与使用方式。
2、认证服务
为简化开发者的认证系统构建过程,AppGallery Connect 提供了托管式的认证服务,可以全方位保护开发者的数据安全。应用认证过程中涉及到的基础设施、登录逻辑、密码加密、网关对接与交付、可靠性、隐私、安全和性能优化等工作,都被华为认证服务包装成为了简单的接口调用。开发者只需在应用内集成 SDK 即可调用这些能力,轻松组装成适应各种需求的认证系统。认证服务在安卓、iOS、Web 端,以及快应用端都提供了 SDK,实现了跨平台支持。认证服务还支持邮箱、微信、QQ、微博、华为帐号、Facebook、Google 等主流账户的认证集成。
华为认证服务提供了端侧和云侧 SDK、管理配置门户界面。当应用的用户访问云数据库、云存储时,可基于认证服务的用户凭据进行数据访问安全控制。开发者在云函数内可以方便地从参数获取访问用户的凭据及身份信息。
认证服务的验证短信和验证邮件可自动适配全球 78 种语言,无需开发者干预;华为每月为开发者提供 3 万条免费短信,进一步降低了运营成本。
3、云函数服务
华为希望为开发者提供极简开发模式,简化微服务开发测试难度;同时帮助开发者实现免运维和自动弹性伸缩,降低运维和资源使用成本。
在华为云函数服务体系中有一个触发器概念,负责在业务状态数据变化时驱动函数自动执行。开发者只需完成函数开发并上传,绑定好触发器,全部工作就已经完成;剩余操作全部由 Serverless 自动处理,并向开发者通过多种监控指标呈现函数的运行状况。
云函数面向通用场景设计,移动应用绝大多数后端逻辑均可基于云函数开发。云函数还可快速对接第三方服务和 API,并通过触发器和函数自定义代码整合 AGC 服务构建。
4、云存储服务
针对开发者的存储需求,华为云存储提供了方便易用的端侧和云侧 SDK,使开发者将更多精力聚焦于业务场景。华为云存储可以帮助应用向全球分发内容。针对安全性和成本控制等需求,华为还提供了边缘节点、断点续传和网络加速能力,以及弹性伸缩、按需计费和自动运维等能力。
华为云存储在各个移动平台都提供了封装好的 SDK,开发者只需集成并调用 SDK 即可实现业务能力。开发者无需关心服务器物料、CDN 环境等即可自动完成运维工作。相比传统自行搭建存储平台的方式,华为云存储可以节约开发团队的大量人力、资金和时间,还能更好地监控应用运行状况,更弹性地应对峰值流量冲击。
5、云数据库服务
云数据库是一种可扩展的 Serverless 数据库,提供简单易用的端云 SDK,适用于移动、网页和服务器开发。它可以使应用数据在端端、端云间自动同步,帮助开发者快速构建安全可靠和高度协同的应用。
开发者使用云数据库,只需集成简单的 SDK 即可完成业务实施,免去开发部署和运维的工作负担;云数据库还提供了接入安全、端云全密态数据管理、安全防护和攻击监测等安全能力,以及用户数据的离线支持;在性能方面,华为云数据库支持百万端侧用户并发,以及数据并发同步等。
6、云托管服务
华为云托管服务是另一项 Serverless 服务,使开发者可以在无云侧设备情况下向用户提供网页应用和静态页面访问,并依托云托管管理平台的一站式操作来完成版本部署。云托管服务具备历史版本回退能力,同时可以将自有品牌关联到华为网站。
华为云托管服务提供了丰富的 CDN 节点,可以自动分发资源满足流畅访问需求;服务内置配置证书以实现可信接入,并可对接云函数提供动态网页内容。
7、AppGallery Connect 的其他服务
除上述 Serverless 服务外,华为应用市场 AppGallery Connect 平台还提供了质量服务来为开发者解决应用上线的质量控制难题。质量服务通过跟踪测量随时捕捉应用指标,并通过测试实验室的大规模自动测试来提早发现应用的问题隐患。
质量服务中的崩溃服务还可以自动监测线上用户的崩溃情况,生成可视化报告,方便开发者解决问题。
另一项关键服务是性能管理服务(APM),提供分钟级的应用性能监控能力。开发者可以在 AppGallery Connect 平台查看性能数据,快速发现并修复性能问题。开发者只需在应用内集成 APM SDK 即可自动开启性能分析。性能管理服务具有全流程、场景化、易集成、实时性和可视化几大特点,可以很好地满足开发者对于应用性能监测的各种需求。
通过本次沙龙的精彩分享,与会者不仅了解了 Serverless 技术的前世今生,对 Serverless 的各项优势有了深度认知,还全方位体会到了华为应用市场 AppGallery Connect 技术体系的强大能力。如今,随着华为应用市场在全球的快速成长,AppGallery Connect 的 Serverless 服务也将迎来持续增长与进化,成为国内 Serverless 应用领域的佼佼者和领导品牌。
特别提醒:本网内容转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。