云创新:无服务器计算与为服务架构相结合

本文涉及的产品
云原生 API 网关,700元额度,多规格可选
函数计算FC,每月15万CU 3个月
简介:

以云计算目前的创新速度,业内流行语和噱头可能会从字面上给用户造成误导或混淆。可能你已经听说过使用无服务器计算平台构建应用程序,或设计运行在微服务架构上的软件等类似例子。即使这些想法听起来像噱头,但现实是,他们正在改变企业构建、部署和运行应用程序的方式。

无服务器计算是开发人员构建应用程序而不必考虑服务器的一种方式。它只是个抽象层,使开发人员能够专注于编写代码,同时忽略服务器和传统基础设施概念。

2014年,亚马逊发布AWS Lambda,这项服务使开发人员能够创建在现有托管实例上运行基于云的函数。 AWS稍后发布了其API网关服务,可用于配置公共节点以通过HTTP调用Lambda函数。综合来看,AWS Lambda和API网关能够帮助组织建立Web、移动和互联网后端,这些后端完全可扩展,而且不需要服务器。

AWS技术被认为是无服务器计算架构类的领导者,但该公司不是唯一提供商。 Microsoft、Google、IBM等也发布了类似产品,被视为函数服务(FaaS)。开发人员可以与任何提供者创建和运行函数,以实现无服务器应用程序体系结构。

更高的可扩展性效率

无论FaaS平台如何,无服务器计算架构受到很多关注。以下是FaaS平台的一些主要功能,使其成为一种极具颠覆性的技术。

  • 降低复杂性。 在公有云平台如AWS和Azure的支持下,构建高可用性的应用程序架构变得更为容易。在负载平衡器后启动自动缩放的虚拟机非常简单。你甚至可以跨多个地区扩展应用程序架构,以实现地理冗余。

通过无服务器计算,基础架构将消失。开发人员可以完全专注于编写支持应用程序功能的代码。云平台负责管理调用这些功能的服务器,因此其可用性非常之高。

  • 内置可扩展性。 在云中构建Web应用程序的最棘手的部分之一是调整虚拟服务器规模的自动缩放。必须找到正确的平衡点,以确保可以根据流量峰值进行扩展,并在高峰消失时收缩。听起来很简单,但每个应用程序都有自己的行为,并且必须调整设置以优化成本并提供最佳性能。使用无服务器计算,就是将这项任务转移到供应商,客户可以更自由地关注应用程序。例如,AWS Lambda服务运行在完全管理下的Elastic Compute Cloud实例上。该服务将根据正在执行的代码对应用程序进行扩展,开发人员或运维工程师不再需要管理虚拟机或自动缩放组。
  • 消除空闲资源。 无服务器计算的另一大优点是,只需要在实例运行代码时才付费。对于传统服务器,即使使用自动缩放应用程序,也会占用一些资源。但是无服务器,只有有人实际使用应用程序时,才需要付费。不必支付小时费用来运行可能执行或未进行任何工作的虚拟机。AWS通过其Lambda服务提供次秒计量,因此只需按每100毫秒执行代码的次数来计费。其他FaaS提供商提供类似的定价。

深入无服务器架构

要了解无服务器应用程序的构建方式,让我们看看使用AWS无服务器架构的常见Web应用程序。

  • 前端层。

为Web应用程序前端提供支持的静态资源托管在Amazon Simple Storage Service(S3)(即AWS对象存储服务)中。你可以使用S3将某个bucket,理解为某个文件夹,转换成静态网站。可以在此位置存储HTML、Javascript、CSS文件和图像静态内容。

Amazon CloudFront(内容传送网络(CDN))分发这些资源。CDN是可选的,但可以减少最终用户访问静态内容的延迟。总的来说,这个想法是,通过客户端Javascript框架与静态无服务器网站驱动应用前端。该框架可以调用Lambda为应用程序执行后端工作。

  • API层。

在这种情况下,AWS Lambda和API网关为网络应用程序的后端支持。开发人员可以编写离散的无状态Lambda函数来处理支持应用程序的各种资源的创建、读取、更新和删除操作。前端代码通过API网关调用Lambda函数来为应用程序做大量工作。

  • 数据库层。

持久性数据可以存储在其他托管服务中,例如Amazon DynamoDB,即NoSQL数据库服务,或Amazon Relational Database Service。 AWS Lambda功能可以直接与这些服务进行通信,以保留数据。

请记住,这只是无服务器架构的一个例子。移动和互联网的后端,以及实时流处理,是无服务器计算的其他用例。

亚马逊和Netflix多年来一直使用微服务架构风格。微服务的想法是将一个大型应用程序分解成面向任务的服务集合。

商业应用程序通常构建为单个唯一单元。这些通常包括为最终用户提供HTML的应用程序前端,用于处理繁重的业务的后端服务器端代码以及用于存储和保留数据的数据库层。单片应用架构多年来运作良好。但随着应用程序的发展,为支持大量的用户,更新变得更加困难。因为单片应用程序的组件是紧密耦合的,即使对代码库的轻微更改也可能需要一个全新版本的应用程序。

作为替代,许多较小的微服务器可以集中地为整个应用程序提供支撑。因为微服务通常没有连带责任,他们专注于实现单一工作或执行支持整个应用程序的某个任务。

微服务的好处

那么为什么企业需要分解单一应用程序来组建微服务架构呢?有一些坚实的理由。

微服务组成部分:轻量级应用程序;耦合低,甚至没有;更改代码库可能需要完整的APP新版本。

  • 故障隔离。 当应用程序的每个组件作为单独的服务运行时,可能会失败,而不会破坏整个系统。负责微服务的不同小团队可以快速迭代,并对代码库进行更改,而不会在整个应用程序中造成错误。这样可以减少应用程序的总体停机时间,并提高小型团队构建和支持特定微服务器的生产率。
  • 松耦合。每个微服务都是完全独立的,可以运行自己的技术栈。只要应用程序内的其他服务可以使用非专用HTTP API与微服务器进行通信,则微服务器的基础实现可随时更改。这使得团队能够实现最有意义的技术,并且它防止了使用单个技术堆栈来满足整个单应用程序的要求。
  • 减少进入障碍。较小的微服务不太复杂,因此更容易理解。这使得新加入的开发人员更容易与现有团队进行合作。

与目前利用公共云的FaaS不同,微服务架构可以在内部机房或云端运行。

虽然使用容器构建微服务是常见的,但新兴的实践是构建微服务器架构与无服务器功能。你可以在Amazon S3中部署静态网站,并使用前端代码在整个体系结构中调用一个或多个微服务API。

在尝试之前的考虑

毫无疑问,这里讨论的模式和做法有很大的优势。然而,在深入无服务器的微服务之前,有一些重要的事情要考虑。

  • 供应商锁定。 每个无服务器的计算平台都具有自己的功能和特性。一般来说,通用语言,包括Javascript、Python和C#将可从AWS,Microsoft和其他主要提供商获得。

即使如此,决定拿起并移动到另一个平台也许需要大量的工作。

  • 开发工具。 在这个阶段最大的困难之一是开发者工具。致力于大规模无服务器应用程序开发的IT团队需要通过一些工具管理依赖关系。预计未来几年该领域将会大幅进步。
  • 服务限制 每个提供商将有自己的函数可以执行多长时间,以及可用于应用程序代码和依赖关系的容量限制。

这是在检查无服务器应用程序时应该注意的事项。

  • 业务成熟度。部署和支持微服务架构并不是为了微弱的心脏。当然,亚马逊、微软和Netflix都已经非常成功地采用了这些模式。但并不是每个团队都有类似的技术技能。如果您正在考虑使用无服务器的微服务方法,请准备聘请有才华的员工,并提供培训,以便现有员工能够获得成效。

本文作者:佚名

来源:51CTO
相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
28天前
|
弹性计算 监控 负载均衡
|
7天前
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器架构有啥区别?X86计算、Arm、GPU异构、裸金属和高性能计算对比
阿里云ECS涵盖x86、ARM、GPU/FPGA/ASIC、弹性裸金属及高性能计算等多种架构。x86架构采用Intel/AMD处理器,适用于广泛企业级应用;ARM架构低功耗,适合容器与微服务;GPU/FPGA/ASIC专为AI、图形处理设计;弹性裸金属提供物理机性能;高性能计算则针对大规模并行计算优化。
|
26天前
|
弹性计算 人工智能 数据安全/隐私保护
【手把手教你】如何免费畅快使用阿里云ECS搭建私有Overleaf论文写作服务
本文详细介绍如何利用阿里云ECS免费搭建私有Overleaf论文写作服务,包括ECS服务器的部署、Overleaf服务的安装、TexLive包的更新、XeLaTeX修复、中文字体支持及账号管理等步骤。通过这些操作,你可以实现免费且高效的多人协作论文写作,避免付费版本的高昂费用。适合需要频繁合作撰写论文的团队使用。
78 1
【手把手教你】如何免费畅快使用阿里云ECS搭建私有Overleaf论文写作服务
|
2月前
|
监控 Serverless 数据库
探索 Serverless 架构:云计算的新浪潮
【10月更文挑战第18天】Serverless架构,即无服务器架构,是一种新兴的云计算模式,让开发者无需管理服务器即可构建和运行应用。本文探讨了其核心概念、优势、挑战及最佳实践,强调了按需付费、自动扩展和开发效率等优点,同时也指出了冷启动、状态管理和调试监控等挑战。
|
1月前
|
机器学习/深度学习 监控 Serverless
探索Serverless架构:云计算的新前沿
【10月更文挑战第26天】本文探讨了Serverless架构作为新兴的云计算范式,如何改变应用的构建和部署方式。文章介绍了Serverless的核心概念、优势和挑战,并提供了开发技巧和实用工具,帮助开发者更好地理解和利用这一技术。
|
1月前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
80 1
|
1月前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
167 3
|
1月前
|
监控 Serverless 数据库
探索 Serverless 架构:云计算的新浪潮
【10月更文挑战第23天】Serverless 架构是一种新兴的云计算范式,允许开发者构建和运行应用程序而无需管理服务器。本文深入探讨了 Serverless 的核心概念、优势、挑战及最佳实践,帮助开发者更好地理解和应用这一技术。
|
1月前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
59 1
|
1月前
|
运维 监控 Serverless
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
31 1