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 架构生态的相关解析,本文到此为止,大家有任何问题或建议,可以随时留言、沟通。


相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
6天前
|
关系型数据库 Serverless 分布式数据库
PolarDB Serverless 模式通过自动扩缩容技术,根据实际工作负载动态调整资源,提高系统灵活性与成本效益
PolarDB Serverless 模式通过自动扩缩容技术,根据实际工作负载动态调整资源,提高系统灵活性与成本效益。用户无需预配高固定资源,仅需为实际使用付费,有效应对流量突变,降低总体成本。示例代码展示了基本数据库操作,强调了合理规划、监控评估及结合其他云服务的重要性,助力企业数字化转型。
19 6
|
2月前
|
存储 运维 监控
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
本文解析了Elasticsearch Serverless在智能日志分析领域的关键技术、优势及应用价值。
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
|
1月前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
58 1
|
2月前
|
缓存 前端开发 Serverless
前端技术新趋势:从PWA到Serverless架构
【10月更文挑战第1天】前端技术新趋势:从PWA到Serverless架构
50 3
|
4月前
|
运维 Cloud Native 开发者
云原生技术演进:从微服务到无服务器的旅程
【8月更文挑战第20天】在数字化时代的浪潮中,云原生技术如同一艘航船,承载着企业转型的梦想与挑战。本文将深入探讨云原生技术的发展路径,从微服务的兴起到无服务器架构的革新,揭示这一技术演进背后的逻辑与动力。通过分析云原生技术的优势、面临的挑战以及未来的发展趋势,我们将描绘出一幅云原生技术演进的宏伟蓝图。
|
4月前
|
Cloud Native Serverless 云计算
云原生时代的技术演进:从微服务到Serverless
在数字化转型的浪潮中,云原生技术正成为推动企业IT架构现代化的重要力量。本文将探讨云原生技术的关键组成部分—微服务与Serverless架构—如何助力企业实现敏捷开发和高效运维。通过深入分析这两种架构模式的优势与挑战,我们旨在为读者揭示云原生环境下的最佳实践和未来发展趋势。
|
4月前
|
机器学习/深度学习 监控 Serverless
Serverless 应用的监控与调试问题之Flink在内部使用的未来规划,以及接下来有什么打算贡献社区的创新技术
Serverless 应用的监控与调试问题之Flink在内部使用的未来规划,以及接下来有什么打算贡献社区的创新技术
|
4月前
|
Cloud Native 安全 云计算
云原生技术的未来:探索服务网格和无服务器架构
随着企业数字化转型的深入,云计算已成为推动业务创新的核心力量。本文将深入探讨云原生技术的最新发展趋势,重点分析服务网格和无服务器架构如何重塑云计算的未来。通过实际案例和技术解析,揭示这些前沿技术如何解决现代应用部署的复杂性,提高系统的可伸缩性和弹性。文章旨在为读者提供云原生领域的深度见解,并激发对云技术未来发展的思考。
99 0
|
6月前
|
人工智能 运维 Cloud Native
云原生技术实践营 · 深圳站——Serverless + AI 专场邀您参会!
云原生技术实践营深圳站聚焦Serverless+AI,6月21日探索技术结合新思路,助力降低GPU成本,简化开发运维。限额80人,报名审核制,活动涵盖Serverless趋势、AIGC应用、AI算力优化等议题,还有实操体验与现场抽奖。
云原生技术实践营 · 深圳站——Serverless + AI 专场邀您参会!
|
6月前
|
人工智能 Serverless 开发者
活动回顾丨飞天技术沙龙 Serverless + AI 专场(上海站)回顾 & PPT 下载
活动回顾丨飞天技术沙龙 Serverless + AI 专场(上海站)回顾 & PPT 下载。
活动回顾丨飞天技术沙龙 Serverless + AI 专场(上海站)回顾 & PPT 下载