Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >应用技术架构 —— 无服务器架构

应用技术架构 —— 无服务器架构

作者头像
腾讯云 CODING
发布于 2022-03-16 01:25:51
发布于 2022-03-16 01:25:51
2.3K0
举报
文章被收录于专栏:CODING DevOpsCODING DevOps

本文作者:何文强 — CODING 高级解决方案架构师 具有一线互联网、物联网独角兽、全国股份制银行、新型智慧交通等跨行业从业经历,历任 Java 开发高级工程师、DevOps 技术专家、高级研发经理等职,对微服务、敏捷、DevOps、容器技术有深刻的理解和丰富的实践。

服务器(Serverless)架构

2012 年,iron.io 首次提出 Serverless 概念。2014 年,AWS 发布 Lambda 开启 Serverless 商业化时代,AWS Lambda,最早被大众所认可的 Serverless 实现。随后各大云厂商争相推出自己的 Serverless 服务、框架或工具。

无服务器架构背景

计算机算力发展演进

计算机发展经历了大型机、小型机、PC 机、虚拟机和云服务器(大多数云服务器也是虚拟机)。

在大型机时代,软硬一体是其鲜明的特征,只有专用的软件才能在大型机上运行,编程语言打多采用机器语言或汇编语言等计算机低级语言。

在 PC 机时代,采用精简指令集的通用处理器开始盛行,伴随着操作系统的出现,软件和硬件开始分离。PC 机上可以运行操作系统支持的各种各样的软件。

云计算时代,云服务厂商提供 IaaSPaaSSaaS 能力,实现从硬件到软件的免托管和开箱即用的能力。

IaaS/PaaS/SaaS

IaaS

把计算基础(服务器、网络技术、存储和数据中心空间)作为一项服务提供给客户。它也包括提供操作系统和虚拟化技术、来管理资源。消费者通过 Internet 可以从完善的计算机基础设施获得服务。

优点:

  • 无需关心底层硬件结构原理;
  • 可按需扩展基础架构规模,以便支持不断变化的工作负载;
  • 灵活、创新而且按需提供的服务。

PaaS

平台即服务(PaaS)提供商将硬件和软件托管在自己的基础架构上,并通过互联网连接以集成解决方案、解决方案堆栈或服务的形式将该平台交付给用户。

PaaS 主要面向开发人员和程序员,它允许用户开发、运行和管理自己的应用,而无需构建和维护通常与该流程相关联的基础架构。

开发人员只需编写代码、构建和管理应用,不再有软件更新或硬件维护方面的麻烦。系统将会提供构建和部署环境。

优点:

  • 开发应用,更快地进行交付;
  • 只需数分钟,就可以将新的 web 应用程序部署到云中;
  • 使用中间件即服务,降低复杂性。

SaaS

软件即服务提供了一种完善的产品,其运行和管理皆由服务提供商负责。人们通常所说的软件即服务指的是终端用户应用程序。使用 SaaS 产品时,服务的维护和底层基础设施的管理都不用用户操心,用户只需要考虑怎样使用 SaaS 软件就可以了。

优点:

  • 可以注册并可快速使用创新的业务应用;
  • 在任何已连接的计算机上都可以访问应用和数据;
  • 数据在云中,如果计算机出现故障,数据也不会丢失;
  • 这种服务可以根据使用需要进行动态扩展。

公有云发展

2006 年,Amazon Web Service(AWS)发布第一款计算产品 EC2,拉开了公有云的序幕;2008 年,Google 发布 Google App Engine 平台,宣布 Google 正式进入公有云市场;2009 年,阿里云宣布成立,这是过年最早(也是目前国内市场份额最大)的云厂商;2010 年,微软发布 Microsoft Azure Paas,微软正式进入公有云市场;2010 年,腾讯发布腾讯云品牌,腾讯正式进入公有云市场;2011 年~2016 年,云计算进入快速发展期,越来越的 IT 企业加入云计算的竞争中,例如 IBM、Oracle、HP、Vmware 等;2016 年~至今,公有云市场格局由快速发展走向成熟稳定,国外头部企业主要有 AWS、Azure、Google Cloud,国内头部企业主要有腾讯云、阿里云、华为云。同时一些面向垂直行业的云产商也得到了发展,例如以擅长存储的七牛云、围绕 K8s 生态的青云等。

Serverless 市场述求
  • 云计算的普及和应用规模的快速扩张,技术一方面要支撑业务的高速发展,另一方面需要根据业务变化对系统进行抽象、重组和重构,以 PaaS 的方式对大多数企业而言成本高、难度大,因此需要新的方法论和工具来降低平台构建的成本,同时实现快速迭代演进来满足市场需求,保持竞争力;
  • 企业交付价值的方式,正在被数字技术重塑。企业在面临巨大的竞争压力和不确定性,快速响应市场变化成为关键,需要一种新的交付模式来降低交付周期,保持市场竞争力;
  • 面对多元化的客户诉求和更快速的市场响应,如何在满足用户需求、保持企业竞争力的同时能够有效降低研发支持,成为企业数字化转型面临的必然课题;
  • 企业根据自身业务诉求快速获取云产品能力并快速灵活的与企业应用进行集成,实现能力快速按需获取和弹性组合成为新趋势;
  • 大多数企业渴望将同质化的、负担繁重的基于服务器等基础设施的开发和运维等工作从未来云上应用开发中移除,借助云上丰富的托管服务能力,以搭积木的方式构建弹性、可靠、低成本的系统或应用。
Serverless 发展历程
Serverless 简介

无服务器架构是指应用程序使用第三方 Function 和服务,但不需要管理服务器。无服务器架构主要包含了 FaaS 和 BaaS。

FaaS(Function as a Service,函数即服务)

包含服务器端业务逻辑的无状态 Function。这些 Function 运行在独立的容器里,基于事件驱动,并由第三方厂商托管,如 AWS Lambda 或者 Azure Functions。

BaaS(Backend as a Service,后端即服务)

使用第三方服务(如 Firebase、Auth0)来达成目的。使用 BaaS 的应用程序通常是富客户端应用程序,如 SPA 或移动 App。客户端负责处理大部分的业务逻辑,其他部分则依赖外部服务,如认证、数据库、用户管理等。

无服务器计算主要供应商
无服务器架构使用场景
  • 小程序 / Web / Mobile / API 后端服务;
  • 大规模批处理任务处理;
  • 短暂、无状态应用,对冷启动实践不敏感;
  • 基于事件驱动架构的在线应用和离线数据处理。
无服务器架构的优势和不足
优势
  • 降低运营成本

Serverless 是非常简单的外包解决方案。它可以让您委托服务提供商管理服务器、数据库和应用程序甚至逻辑。在降低成本上包含了两个方面,即基础设施的成本和人员(运营/开发)的成本。

  • 降低开发成本

IaaS 和 PaaS 存在的前提是,服务器和操作系统管理可以商品化。Serverless 作为另一种服务的结果是整个应用程序组件被商品化。

  • 高扩展能力

Serverless 架构一个显而易见的优点即“横向扩展是完全自动的、有弹性的、且由服务提供者所管理”。从基本的基础设施方面受益最大的好处是,您只需支付您所需要的计算能力。

  • 缩短创新周期

小团队的开发人员正可以在几天之内从头开始开发应用程序并部署到生产。

不足
  • 有状态管理复杂

要想实现自由的缩放,无状态是必须的,而对于有状态的服务,使用 serverless 这就丧失了灵活性,有状态服务需要与存储交互就不可避免的增加了延迟和复杂性。

  • 延迟高

应用程序中不同组件的访问延迟是一个大问题, serverless 应用程序是高度分布式、低耦合的,这就意味着延迟将始终是一个问题。

  • 本地测试

对于无服务应用的集成或者端到端测试尤其困难,很难在本地模拟应用程序的各种连接,并与性能和缩放的特性结合起来测试。

无服务器架构发展趋势
  • 更细粒度的计算资源

目前主流的 Serverless/FaaS 技术底层的计算环境通常是容器比如 Docker,容器技术是一种比硬件虚拟化更轻量的实现,用户可以在虚拟机上运行大量的容器,可以更大程度的利用计算资源。

而 Serverless 的需求可能是更细粒度的计算资源,比如最近主流云厂商的产品容器的规格已经支持千分之一核,未来 Serverless 在细粒度资源使用上将发挥无限可能。

  • 跨云厂商的统一的调度模型

由于云厂商实现方式及不同产品的差异性,容器的调度框架选择不尽相同,比如有的厂商其 Serverless 产品是基于 Kubernetes 管理云主机集群进行容器编排及调度比如华为的 CCI,而有的产品比如阿里云的函数计算产品是基于自研的 Agent 进行容器调度。跨云平台的 Serverless 已成为不可忽视的因素。

  • 生态圈多样化,应用场景更加丰富
  • 积木式的弹性函数供应
  • Serverless 计算将持续提高计算密度,实现最佳的性能功耗比和性能价格比

《数字化 IT 从业者知识体系》背景

数字化和可持续发展是中国企业未来发展的两大主题,掌握数字化知识,具备数字化能力,应用数字化技术是我们 IT 从业者未来核心竞争力所在。《数字化 IT 从业者知识体系》的初衷是为 IT 从业者提供的系统性的数字化知识体系,内容涵盖管理实践、工程实践、技术实践三个层次,涉及软件开发方法、应用技术架构、应用部署与管理、软件交付与协作四大方面。

在接下来的《数字化 IT 从业者知识体系》系列文章,何文强将从软件开发方法、应用技术架构、应用部署与管理、软件交付与协作四个方面,为大家进行逐一分享介绍:

1. 软件开发方法主要包括瀑布、敏捷、精益等;

2. 应用技术架构主要包括微服务架构、服务网格架构、无服务器架构、分布式多运行架构等;

3. 应用部署与管理主要包括但不限于虚拟化技术、容器技术与容器编排等;

4. 软件交付与协作主要包括但不限于 CMMI、ITIL、DevOps 等。

相信该知识体系有利于 IT 从业者构建丰富的技术体系、全面的技术视野和系统的能力建设。欢迎大家前往《数字化 IT 从业者知识体系》话题进行详细阅读。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾云 CODING 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数字化 IT 从业者知识体系 | 应用技术架构 —— 概览篇
应用技术架构整体上经历了从单体技术架构 -> 垂直架构 -> SOA 架构 -> 微服务架构 -> 无服务器架构 -> 服务网格架构 -> 分布式多运行时架构。在互联网时代之前,应用技术架构发展较为缓慢,随着互联网的出现,特别是 web2.0 和 web3.0 的出现和发展,应用技术架构在快速迭代和演进,以满足市场和商业的诉求。
腾讯云 CODING
2022/03/16
1.3K0
数字化 IT 从业者知识体系 | 应用技术架构 —— 概览篇
数字化 IT 从业者知识体系 | 应用技术架构 —— 服务网格架构
2013 年容器技术 Docker 开源,2014 年容器编排工具 Kubernetes 开源。2015 年,云原生计算基金会(CNCF)成立,标志着应用进入云原生时代, 2016 年 9 月 14 日,Envoy 的开源标志着应用技术架构进入到服务网格(Service Mesh)时代,2017 年 5 月 24 日,Google、IBM、Lyft 共同宣布 Istio 开源标志着进入由控制面和数据面组成的服务网格成为主流。Istio 是当前最受欢迎的服务网格技术。
腾讯云 CODING
2022/03/16
9200
数字化 IT 从业者知识体系 | 应用技术架构 —— 服务网格架构
国内首推《无服务器架构技术白皮书》,云原生技术标准体系持续完善
近几年无服务器架构技术的崛起,让人们看到了软件开发的新世界。然而,无服务器架构在国内仍处在初级阶段,业界对其概念认知尚不清晰。那么,无服务器架构在国内将如何发展,能否成为未来技术发展的风向标?
科技云报道
2022/04/15
6670
国内首推《无服务器架构技术白皮书》,云原生技术标准体系持续完善
应用技术架构 —— 单体架构 & 垂直架构 & SOA 架构
1968 年的软件危机产生了软件工程,并且催生了面向对象的高级语言,例如 1972 的 C 语言,同时产生了我们的单体式的技术架构,单体架构的特点是所有代码逻辑都耦合在一个项目中。
腾讯云 CODING
2022/03/16
6K0
应用技术架构 —— 单体架构 & 垂直架构 & SOA 架构
应用技术架构 —— 微服务架构
在 2010s 进入移动互联网(web3.0)时代,互联网用户规模再次迎来井喷式增长,面向服务的技术架构在服务海量规模用户时显得力不从心。SOA 架构中 ESB 存在单点以及 RPC 中缺少服务的治理能力,ESB 和 RPC 架构都很难满足移动互联网海量用户的要求,微服务开始出现,并成为今天技术架构的主流。
腾讯云 CODING
2022/03/16
1.9K0
应用技术架构 —— 微服务架构
应用技术架构 —— 分布式应用多运行时架构
在分布式系统中,应用通常包含业务逻辑、非功能性需求(NFR)和中间件依赖(三方依赖)。在应用程序中,只有业务逻辑才承载具体的业务价值,NFR 和三方依赖是必要的非增值活动,不直接产生业务价值,但是非增值活动耗费开发人员大量的时间和精力,导致业务交付速度慢。
腾讯云 CODING
2022/03/16
2.2K0
应用技术架构 —— 分布式应用多运行时架构
应用部署与管理 —— Kubernetes 架构
随着虚拟化技术和云计算的发展,为容器技术的发展创造了条件,2013 年,dotcloud 公司开源容器技术 Docker,受到了业界的极大关注和欢迎,一种新的构建和交付方式迅速风靡全球。Docker 解决了应用打包和分发问题,随着 Docker 与微服务等技术的深入融合,应用编排和管理受到越来越多的关注,也成为大规模容器化的一个重要挑战。以解决容器编排和管理的平台 Kubernetes 在 2013 年横空出世,并与 Docker Swarm、Mesos 展开激烈的竞争,最后 Kubernetes 在 2017 年大获全胜,成为容器编排的实施标准。Kubernetes 作为 CNCF 的第一个毕业项目,凭借自身技术优势以及强大的社区和生态建设,已成为云时代的操作系统,云原生技术的基石。
腾讯云 CODING
2022/03/16
1.1K0
应用部署与管理 —— Kubernetes 架构
36氪报道:「好雨云」能否成就 Gartner 心中的技术主流?
文章转载自36氪 作者:韩旭 原标题:《「好雨云」搭建无服务器 PaaS,将服务器和应用解耦,能否成就 Gartner 心中的技术主流?》 企业的价值产生于跟业务直接相关的应用层,但想要到达交付应用的阶段,企业往往需要从最底层计算资源管理开始做起,这就意味着企业不得不处理非常多的事情,比如有了服务器之后需要搭建各种环境、搭建好之后测试环境,对于环境的支持则需要高级架构师、高级程序员,后期还要专门的运维人员维护,工作复杂而琐碎,重复性高。 好雨云从业务角度切入,提供无服务器 PaaS,连接底层计算资源和上层
Rainbond开源
2018/05/31
5700
云原生-不是简单的微服务+DevOps+容器云集成
今天准备谈下云原生的概念,在前面文章里面已经对微服务,DevOps有了比较详细的一个描述和说明,对于Docker容器云网上材料比较多,因此不准备再详细去描述。
人月聊IT
2025/06/24
860
云原生-不是简单的微服务+DevOps+容器云集成
数字化 IT 从业者知识体系 | 应用部署与管理 —— 容器技术
容器是打包代码及其所有依赖项的标准软件单元,因此应用程序可以从一个计算环境快速可靠地运行到另一个计算环境。
腾讯云 CODING
2022/03/16
7040
数字化 IT 从业者知识体系 | 应用部署与管理 —— 容器技术
数字化 IT 从业者知识体系 | 软件开发方法 —— 瀑布篇
软件危机诞生了软件工程,同时也产生了软件开发方法。第一个系统化的软件开发方法是瀑布软件开发。瀑布模型(Waterfall Model)是 Royce 在 1970 年提出的,他把大型软件开发分为:分析与编程,像工厂流水线一样把软件开发过程分成各种工序,并且每个工序可以根据软件产品的规模、参与人员的多少进一步细分成更细的工序。该模型非常符合软件工程学的分层设计思路,所以成为软件开发企业使用最多的开发模型。瀑布模型出道即巅峰,发展至今,仍然是主要的软件开发方法之一,深刻影响着软件开发协作方式。瀑布模型的出现让软件开发方法实现了从无序到有序的突破,极大缓解了当时的软件开发混乱程度和高失败率,成为当时软件工程的福音。
腾讯云 CODING
2022/01/21
1.2K0
数字化 IT 从业者知识体系 | 软件开发方法 —— 瀑布篇
企业级PaaS平台OpenShift
本文摘自于山金孝,潘晓华,刘世民撰写的《OpenShift云原生架构:原理与实践》一书,经出版方授权发布。
Satoh_AI
2020/06/03
3.8K0
企业级PaaS平台OpenShift
(译)无服务器架构
无服务器运算,或者简单说无服务器,是软件架构界的一个新热点。三大云——亚马逊、谷歌以及微软都在无服务器方面下了重注,我们会看到很多的书籍、开源项目、会议以及软件供应商,都不约而同的关注这一主题。但是什么是无服务器?是否值得重视?为什么值得重视?本文中我希望能在这一问题方面给读者一些启迪。
崔秀龙
2019/07/23
3.6K0
(译)无服务器架构
无服务器架构,云计算的下一个纪元
传统上,Web应用程序通常部署在Web服务器上。为了使应用程序在服务器上运行,可能需要花费数小时来下载、编译、安装、配置和连接各种组件。计算机的操作系统也需要不断进行升级和修补,以解决安全漏洞。而管理服务器是一项非常耗时的工作,通常需要专门且经验丰富的系统操作人员,这让很多工程师感觉到身心俱疲。
SDNLAB
2020/03/27
1.9K0
什么是云原生?有哪些发展方向?终于有人讲明白了
到底什么是云原生?不同的企业对于云原生有不同的解释,当前在业界具有广泛影响力的云原生计算基金会(Cloud Native Computing Foundation, CNCF)认为,云原生是一类技术的统称,通过云原生技术,我们可以构建出更易于弹性扩展的应用程序。
IT阅读排行榜
2020/05/06
8.4K0
年中盘点 | 2022年,PaaS 再升级
过去十五年,是云计算从无到有突飞猛进的十五年。PaaS作为云计算的重要组成部分,在伴随着云计算高速发展的同时,在云计算产业链中的关键性作用日渐凸显。关于PaaS,很多人都认同一个观点,在公有云上,除了IaaS和SaaS,其余的都是PaaS。但PaaS到底是什么?它从哪里来,将到哪里去?PaaS有哪些细分领域?哪些厂商是PaaS市场领导者?PaaS和现在流行的容器管理平台、企业中台和低代码平台之间的关系又是什么?这些问题的答案,向来是众说纷纭、莫衷一是。要回答这些问题,且听笔者为您娓娓道来。
SammyLiu
2022/12/05
1.1K0
年中盘点 | 2022年,PaaS 再升级
数字化 IT 从业者知识体系 | 软件开发方法 —— 精益篇
精益软件开发是精益制造原则和实践在软件开发领域的变体。它基于丰田生产方式(TPS),由敏捷社区引入并发展。精益产品开发的目的是消除软件生产中的浪费和持续改进。
腾讯云 CODING
2022/03/16
7980
数字化 IT 从业者知识体系 | 软件开发方法 —— 精益篇
云计算热度不减,如何高效掌握云计算技能?
在“互联网+”、《 中国制造2025》等一系列战略推动和企业自身转型升级的迫切需求下,上云是企业顺应数字经济发展潮流,实现数字化转型的重要路径,企业上云已经成为大势所趋,而云计算无疑是企业更快部署信息化应用的“利器”。
SDNLAB
2019/08/29
8.3K1
云计算热度不减,如何高效掌握云计算技能?
【云端风云:云计算全局解密】一篇文章读懂云计算技术及其未来发展趋势
在当今数字化浪潮中,云计算如一颗闪烁的科技明珠,为企业和个人带来了前所未有的灵活性、效率和创新力。本文将带领读者深入探索云计算的核心概念、关键服务模型以及未来发展趋势。云计算不仅是数字化时代的基石,更是推动创新和变革的引擎。站在云端风云之巅,我们将解析云计算的奥秘,揭晓数字化未来的蓬勃蔓延。通过这场科技奇迹的探索,我们将共同领略云计算为全球带来的变革,见证科技与未来的奇妙融合。
奥耶可乐冰
2023/11/24
1.6K0
【云端风云:云计算全局解密】一篇文章读懂云计算技术及其未来发展趋势
应用部署与管理 —— Docker
容器是应用程序层的抽象,将代码和依赖项打包在一起,多个容器可以在同一台计算机上运行,并与其他容器共享 OS 内核,每个容器在用户空间中作为隔离的进程运行。虚拟机是将一台服务器转变为多台服务器的物理硬件的抽象,虚拟机管理程序允许多个 VM 在单台计算机上运行,每个 VM 包含操作系统、应用程序、必要的二进制文件和库的完整副本:
腾讯云 CODING
2022/03/16
8210
应用部署与管理 —— Docker
推荐阅读
相关推荐
数字化 IT 从业者知识体系 | 应用技术架构 —— 概览篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档