Serverless 技术思考点滴

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 这个世界每天都在发生新的变化,无论你是否觉察到,它总是无声无息的发生着。技术生态也是一样,就像光阴,不会因为我们而驻留,从早期的 Cloud/Virtualization、IaaS、PaaS、CaaS 以及到当前比较火热的 Serverless ,无一不是基于业务发展的需要。

    这个世界每天都在发生新的变化,无论你是否觉察到,它总是无声无息的发生着。技术生态也是一样,就像光阴,不会因为我们而驻留,从早期的 Cloud/Virtualization、IaaS、PaaS、CaaS 以及到当前比较火热的 Serverless ,无一不是基于业务发展的需要。

   据相关报道,2019 年,Serverless 被 Gartner 称为最有潜力的云计算技术发展方向,并被赋予是必然性的发展趋势。Serverless 从底层开始变革计算资源的形态,为软件架构设计与应用服务部署带来了新的设计理念

    同时,随着 AWS Lambda 和 Fargate 等服务的日益普及和市场落地,无服务技术在越来越多的公司技术生态栈中受到更多的关注。无服务器的应用已成为迎接 Devops 公司独特需求的福音和理想的最佳选择。毕竟,借助无服务器技术可以帮助各大公司或厂商扩展其基于云的架构。据 2019 年 Forrester 报告称,49% 的公司正在使用或计划在未来12个月内使用无服务器架构。

   起初,传统的三层基础架构的物理和软件组件是成立,维护和管理的昂贵。对于开发人员来说,对应用程序的简单修改应该变成一个广泛耗时的项目,以确保每一层都有一切都会在每个级别工作。无服务器计算有望改变所有这些。通过使用 AWS Lambda 等无服务器基础架构服务,从开发人员的角度来看,需要维护物理基础架构和系统软件的需要。无服务器架构是高度可扩展的,提供高性能,并允许我们仅为我们的应用程序实际消耗的资源支付。可能在某一瞬间,我们的代码效率与运行它的成本之间存在直接,线性关系。运行速度越快,我们的支付越少。

    从本质上而言,无服务器计算是一种基于云的应用程序架构,应用程序的基础架构和支持服务层完全从软件层中抽象出来。

    简单地说,无服务器架构是一个事件和请求驱动的技术解决方案,允许开发人员在云中创建可操作的工作环境,其中具有平滑编码流所需的所有必要的计算资源。此框架尤其是当时间是一个问题时,分配的任务是非常资格密集的。此外,在选择无服务器的服务中为简化应用程序开发过程中,我们可以大大提高其他相关联业务优化举措 - 如 Devops 和 Agile 实践。

    接下来,我们先来了解下基于传统架构与无服务器架构的相关特性对比,具体如下示意图所示。

    基于上述的对比,我们可以得知,一方面,这两种架构具有相似的功能性质,即,它们可以最大限度地减少操作成本以及应用部署周期,处理有效的开发要求,并优化日常时间和资源敏感的任务。另一方面,微服务和无服务器型号之间存在一些明显的差异。

    从微服务本质来看,其采用的是一种基于轻量级、较小类型的 SOA 架构模型,应用程序可以完全访问云端服务器上托管的相关库,并允许它们与多个协议和API一起部署并进行各种协议类型的交互,例如 JSON、RESTful、AMQP、SOAP等等。通常而言,目前应用成熟的微服务架构通过软件可执行程序包等数据集装箱,如 Docker,所有必要的数据都随着开发人员访问给定 API 而被拆卸。

  而对于无服务器架构而言,其更是为广大开发人员的日常工作带来福音。因为它提供了按需执行基于云的工作环境的操作。这意味着只有在某个事件设置时才触发无服务器函数。完成此操作,根据用户具有输入的命令执行一系列操作。然后,无服务器平台应用一组预处理算法和规则来处理计算并提出可操作的结果。正如 Gartner 所言:“Serverless architectures enable developers to focus on what they should be doing — writing code and optimizing application design — making way for business agility”

    通常,任何计算机程序都需要硬件运行,所以它们确实在服务器上运行。在一个真正无服务的范例中,程序代码在由第三方托管和管理的基础架构上运行 - 通常是云服务 - 这不仅要处理配置,缩放,负载平衡和保护基础架构,还可以安装和管理操作系统,修补程序,代码库和所有必要的支持服务。就用户而言,随着应用程序负载的增加或减少,无服务器后端将自动扩展和加载平衡,同时保持在线应用程序。用户只需要支付运行应用程序所消耗的资源。基于此种场景,至少这使得具有大大降低的开发周期和低运营成本的承诺。这就是为什么无服务器在今天的IT世界中是一个热门的流行语。

   在本文中,我们将聚焦以 Lambda 作为无服务器计算服务的示例,因为我认为它目前是最成熟的解决方案。当然,除此之外,目前市面上还有其他值得研究的解决方案,包括Azure 函数,Google 云功能,IBM Open Whisk 和 Auth0 WebTask。


无服务器工作原理

    作为由预配置事件驱动的 Snaptorless 作为开发模型,利用许多分布式基于云的服务来简化软件部署工作流程。通常,无服务器体现了两个互补的服务模型:

    1、作为服务的后端(BAAS)

    2、作为服务的功能(FAAS)

   让我们深入研究他们的一些特殊功能。因此,BAAS 是关于利用第三方多租户架构功能,以增强我们自己的应用部署和交付效率。它通常作为 SDK 或 API 网关提供的共同特征,并且只在云中执行所有所需的操作,并且通常被称为我们的遗留内部基础架构或代码数据。该解决方案享有真正快速的开发周期,并在 BAAS 提供商的肩部对软件和基础设施维护提供全部责任。更重要的是,它的能力几乎是无穷无尽的,这使得 App 开发人员能够扩展 Deployment 流程。

    例如,FAAS 平台,例如 AWS Lambda 是事件驱动开发架构的类型,可确保使用每次使用付费型号并仅当用户预定的某些功能或事件被用于操作时触发触发。用于激活 FAAS 函数的常见触发器是预定的事件,文件上传,新提交到存储库,电子邮件,数据库更新,HTTP API 调用等。在进行某些特定场景时,BAAS 和 FAAS 模型可以帮助开发人员处理复杂的资源密集型任务,涉及托管我们的数据,基础架构以及业务逻辑元素。如此,无服务器包括这两种方法,从而使用户具有广泛的功能益处。

    那么,针对无服务器,其基于何种设计呢?我们以 AWS 设计理念进行简要解析,具体:

    1、计算服务进行代码执行

   无服务器使用诸如 Lambda,Azure 函数,Auth0 WebTask 或 Google Cloud 函数的无服务器计算服务来执行代码。不要运行或管理我们自己的任何服务器,VM 或 Container 容器。

    2、事件驱动管道

   在整个架构体系中,创建基于推送的事件驱动的管道,以执行复杂的计算和任务。使用无服务器计算服务来协调不同服务之间的操作,并尝试以创建事件驱动的管道的方式构建。尽可能避免轮询或手动干预。

    3、写入单一的无状态功能

   此架构风格遵循单一责任原则(SRP),只有单一责任的写作。此类功能更易于考虑,测试和调试。我们可以在每个功能周围构建微服务,但应根据要求和上下文决定适当的粒度水平。粒度服务,专注于具体行动,往往是一个良好的赌注。

    4、强大的前端

   基于此模型,将尽可能多的逻辑移动至前端,使其更加智能。所建立的前端应该能够直接与服务进行交互,以限制无服务器功能的数量。当然,将有可能无法直接与服务通信的实例,可能有隐私或安全原因。在这些实例中,我们可以借助无服务器函数来执行调用。

    5、拥抱多元化

   在基于此种架构框架下,我们通常可以尝试减少使用的自定义代码的数量,而是利用其他人所建造好的服务,并基于当前环境的综合评估,以决策其是否适合我们的当前所需。

   最后,我们来了解下基于 Serverless 架构或者技术生态,其主要应用于在什么样的场景下,来充分发挥其独特优势呢?

   基于 Serverless 架构生态所衍生的一切产品以及应用,均是完全依托于云而构建的,是典型且完全的云原生的架构、产品或应用。Serverless 产品所具备的产品特性、技术、费用等优势,将成为新一代云产品的发展方向;而基于 Serverless 架构推进完成开发的应用或架构,将充分享受到云时代带来的强大助力,使得云计算能真正成为业务的助推器。故此,满足云化场景的业务需求,或多或少均可以在 Serverless 架构中发挥其独特优势。

    最典型的场景,莫过于“物联网”领域。基于 Serverless 架构,物联网设备所采集的数据信息将可以作为云函数的触发事件,从而实现数据的实时处理、分析及应用。同时,伴随着物联网设备计算能力的进一步提升,云函数作为最小粒度的计算单元,有机会被调度到设备端运行,以实现边缘(云)计算,从而达到「端 - 云」联合的 Serverless 架构。除此之外,基于云函数和 API 网关及 HTTP 触发器,可以对外提供 URL 访问地址,成为 Web、小程序、或移动应用等的后端服务。基于 Serverless 架构既可以直接用于构建后台来服务应用,也可以通过类似 BFF 模式,构建中台和应用间的桥梁。当然,除上述所述的场景外,也有其他的场景基于 Serverless 架构发挥其潜在优势,比如,消息处理结果、网络存储及其他关联服务组件等等。

    Serverless — 基于其云化的产品,即 “云函数”,作为云虚拟机、容器技术之后的下一代计算形态代表,将引领云计算生态体系新的浪潮。围绕着云函数而建设的产品能力、工具、生态、以及应用开发,也将引来新的一轮发展及竞争。随着无服务器的产品和生态逐渐成熟,其将必然逐步承载起企业的核心业务。

   以上为基于 Serverless 架构生态的相关解析,本文到此为止,大家有任何问题或建议,可以随时留言、沟通。


相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
4月前
|
人工智能 Serverless API
MCP Server 之旅第 4 站: 长连接闲置计费最高降低87%成本的技术内幕
阿里云函数计算(FC)提供事件驱动的全托管计算服务,支持 MCP Server 场景优化。通过 [MCP Runtime](https://mp.weixin.qq.com/s/_DSMRovpr12kkiQUYDtAPA),实现 Stdio MCP Server 一键托管,并借助亲和性调度解决 Session 保持问题。针对 MCP Server 的稀疏调用特性,函数计算引入长连接闲置计费机制,在毫秒级计费基础上,显著降低资源闲置成本(最高可达87%)。用户可通过控制台或 API 开启该功能,Websocket 长请求场景亦默认支持。此方案有效提升资源利用率,为用户提供灵活、经济的计算服务。
|
9月前
|
运维 Cloud Native Serverless
Serverless Argo Workflows大规模计算工作流平台荣获信通院“云原生技术创新标杆案例”
2024年12月24日,阿里云Serverless Argo Workflows大规模计算工作流平台荣获由中国信息通信研究院颁发的「云原生技术创新案例」奖。
|
9月前
|
存储 运维 监控
Elasticsearch Serverless高性价比智能时序分析关键技术解读
本篇演讲由阿里云1s团队的贾新寓讲解,主题为高性价比、智能日志更新关键技术。内容分为四部分:回顾日志场景痛点、介绍四大关键能力(开箱即用、高性能低成本、按量付费、智能调度免运维)、解读关键技术(如读写分离架构、ES内核优化等),并演示如何快速接入Serverless产品。通过这些技术,显著提升性能、降低成本,帮助用户实现高效日志管理。
|
11月前
|
存储 运维 监控
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
本文解析了Elasticsearch Serverless在智能日志分析领域的关键技术、优势及应用价值。
508 8
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
|
10月前
|
关系型数据库 Serverless 分布式数据库
PolarDB Serverless 模式通过自动扩缩容技术,根据实际工作负载动态调整资源,提高系统灵活性与成本效益
PolarDB Serverless 模式通过自动扩缩容技术,根据实际工作负载动态调整资源,提高系统灵活性与成本效益。用户无需预配高固定资源,仅需为实际使用付费,有效应对流量突变,降低总体成本。示例代码展示了基本数据库操作,强调了合理规划、监控评估及结合其他云服务的重要性,助力企业数字化转型。
244 6
|
10月前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
363 1
|
11月前
|
缓存 前端开发 Serverless
前端技术新趋势:从PWA到Serverless架构
【10月更文挑战第1天】前端技术新趋势:从PWA到Serverless架构
138 3
|
运维 Cloud Native 开发者
云原生技术演进:从微服务到无服务器的旅程
【8月更文挑战第20天】在数字化时代的浪潮中,云原生技术如同一艘航船,承载着企业转型的梦想与挑战。本文将深入探讨云原生技术的发展路径,从微服务的兴起到无服务器架构的革新,揭示这一技术演进背后的逻辑与动力。通过分析云原生技术的优势、面临的挑战以及未来的发展趋势,我们将描绘出一幅云原生技术演进的宏伟蓝图。
|
Cloud Native Serverless 云计算
云原生时代的技术演进:从微服务到Serverless
在数字化转型的浪潮中,云原生技术正成为推动企业IT架构现代化的重要力量。本文将探讨云原生技术的关键组成部分—微服务与Serverless架构—如何助力企业实现敏捷开发和高效运维。通过深入分析这两种架构模式的优势与挑战,我们旨在为读者揭示云原生环境下的最佳实践和未来发展趋势。
|
人工智能 运维 Cloud Native
云原生技术实践营 · 深圳站——Serverless + AI 专场邀您参会!
云原生技术实践营深圳站聚焦Serverless+AI,6月21日探索技术结合新思路,助力降低GPU成本,简化开发运维。限额80人,报名审核制,活动涵盖Serverless趋势、AIGC应用、AI算力优化等议题,还有实操体验与现场抽奖。
云原生技术实践营 · 深圳站——Serverless + AI 专场邀您参会!

热门文章

最新文章