云原生领域首本架构白皮书,你Get到了吗?

来源 | 《云原生架构白皮书》


【导读】近日,由阿里云 20+ 位云原生技术专家共同编撰的《云原生架构白皮书》正式对外发布。作为业界第一本全方位构建云原生架构规划与实践全景图的白皮书,本书在详细阐述云原生架构定义的同时,完整展示云原生架构应用所需的演进路径与设计规则,旨在帮助企业更好地理解与应用云原生架构,助力企业数字化转型升级。(文末有惊喜)

以下为 Serverless 章节内容:

随着以 Kubernetes 为代表的云原生技术成为云计算的容器界面,Kubernetes 成为云计算的新一代操作系统。面向特定领域的后端云服务(BaaS)则是这个操作系统上的服务 API,存储、数据库、中间件、大数据、AI 等领域的大量产品与技术都开始提供全托管的云形态服务,如今越来越多用户已习惯使用云服务,而不是自己搭建存储系统、部署数据库软件。

当这些 BaaS 云服务日趋完善时,Serverless 因为屏蔽了服务器的各种运维复杂度,让开发人员可以将更多精力用于业务逻辑设计与实现,而逐渐成为云原生主流技术之一。

技术特点

Serverless 计算包含以下特征:

  • 全托管的计算服务,客户只需要编写代码构建应用,无需关注同质化的、负担繁重的基于服务器等基础设施的开发、运维、安全、高可用等工作;

  • 通用性,结合云 BaaS API 的能力,能够支撑云上所有重要类型的应用;

  • 自动的弹性伸缩,让用户无需为资源使用提前进行容量规划;

  • 按量计费,让企业使用成本得有效降低,无需为闲置资源付费。

函数计算(Function as a Service)是 Serverless 中最具代表性的产品形态。它通过把应用逻辑拆分多个函数,每个函数都通过事件驱动的方式触发执行,例如当对象存储(OSS)中产生的上传 / 删除对象等事件,能够自动、可靠地触发 FaaS 函数处理,且每个环节都是弹性和高可用的,客户能够快速实现大规模数据的实时并行处理。同样的,通过消息中间件和函数计算的集成,客户可以快速实现大规模消息的实时处理。

目前函数计算这种 Serverless 形态在普及方面仍存在一定困难,例如:

  • 函数编程以事件驱动方式执行,这在应用架构、开发习惯方面,以及研发交付流程上都会有比较大的改变;

  • 函数编程的生态仍不够成熟,应用开发者和企业内部的研发流程需要重新适配;

  • 细颗粒度的函数运行也引发了新技术挑战,比如冷启动会导致应用响应延迟,按需建立数据库连接成本高等。

针对这些情况,在 Serverless 计算中又诞生出更多其他形式的服务形态,典型的就是和容器技术进行融合创新,通过良好的可移植性,容器化的应用能够无差别地运行在开发机、自建机房以及公有云环境中;基于容器工具链能够加快解决 Serverless 的交付。云厂商如阿里云提供了弹性容器实例(ECI)以及更上层的 Serverless 应用引擎(SAE),Google 提供了 CloudRun 服务,这都帮助用户专注于容器化应用构建,而无需关心基础设施的管理成本。此外 Google 也开源了基于 Kubernetes 的 Serverless 应用框架 Knative。

相对函数计算的编程模式,这类 Serverless 应用服务支持容器镜像作为载体,无需修改即可部署在Serverless 环境中,可以享受到 Serverless 带来的全托管免运维、自动弹性伸缩、按量计费等优势。下面是传统的弹性计算服务、基于容器的 Serverless 应用服务和函数计算的对比:

常见场景

近两年来 Serverless 近年来呈加速发展趋势,用户使用 Serverless 架构在可靠性、成本和研发运维效率等方面获得显著收益。

小程序 /Web/Mobile/API 后端服务

在小程序、Web/Moible 应用、API 服务等场景中,业务逻辑复杂多变,迭代上线速度要求高,而且这类在线应用,资源利用率通常小于 30%,尤其是小程序等长尾应用,资源利用率更是低于 10%。Serverless 免运维,按需付费的特点非常适合构建小程序 /Web/Mobile/API 后端系统,通过预留计算资源 + 实时自动伸缩,开发者能够快速构建延时稳定、能承载高频访问的在线应用。在阿里内部,使用 Serverless 构建后端服务是落地最多的场景,包括前端全栈领域的 Serverless For Frontends,机器学习算法服务,小程序平台实现等等。

大规模批处理任务

在构建典型任务批处理系统时,例如大规模音视频文件转码服务,需要包含计算资源管理、任务优先级调度、任务编排、任务可靠执行、任务数据可视化等一系列功能。如果从机器或者容器层开始构建,用户通常使用消息队列进行任务信息的持久化和计算资源分配,使用 Kubernetes 等容器编排系统实现资源的伸缩和容错,自行搭建或集成监控报警系统。而通过 Serverless 计算平台,用户只需要专注于任务处理逻辑的处理,而且 Serverless 计算的极致弹性可以很好地满足突发任务下对算力的需求。

通过将对象存储和 Serverless 计算平台集成的方式,能实时响应对象创建、删除等操作,实现以对象存储为中心的大规模数据处理。用户既可以通过增量处理对象存储上的新增数据,也可以创建大量函数实例来并行处理存量数据。

基于事件驱动架构的在线应用和离线数据处理

典型 Serverless 计算服务通过事件驱动的方式,可以广泛地与云端各种类型服务集成,用户无需管理服务器等基础设施和编写集成多个服务的“胶水”代码,就能够轻松构建松耦合、基于分布式事件驱动架构的应用。

通过和事件总线的集成,无论是一方 BaaS 云服务,还是三方的 SaaS 服务,或者是用户自建的系统,所有事件都可以快速便捷地被函数计算处理。例如通过和 API 网关集成,外部请求可以转化为事件,从而触发后端函数处理。通过和消息中间件的事件集成,用户能快速实现对海量消息的处理。

开发运维自动化

通过定时触发器,用户用函数的方式就能够快速实现定时任务,而无须管理执行任务的底层服务器。通过将定时触发器和监控系统的时间触发器集成,用户可以及时接收机器重启、宕机、扩容等 IaaS 层服务的运维事件,并自动触发函数执行处理。

技术关注点

计算资源弹性调度

为了实现精准、实时的实例伸缩和放置,必须把应用负载的特征作为资源调度依据,使用“白盒”调度策略,由Serverless 平台负责管理应用所需的计算资源。平台要能够识别应用特征,在负载快速上升时,及时扩容计算资源,保证应用性能稳定;在负载下降时,及时回收计算资源,加快资源在不同租户函数间的流转,提高数据中心利用率。因此更实时、更主动、更智能的弹性伸缩能力是函数计算服务获得良好用户体验的关键。通过计算资源的弹性调度,帮助用户完成指标收集、在线决策、离线分析、决策优化的闭环。

在创建新实例时,系统需要判断如何将应用实例放置在下层计算节点上。放置算法应当满足多方面的目标:

  • 容错:当有多个实例时,将其分布在不同的计算节点和可用区上,提高应用的可用性。

  • 资源利用率:在不损失性能的前提下,将计算密集型、I/O 密集型等应用调度到相同计算节点上,尽可能充分利用节点的计算、存储和网络资源。动态迁移不同节点上的碎片化实例,进行“碎片整理”,提高资源利用率。

  • 性能:例如复用启动过相同应用实例或函数的节点、利用缓存数据加速应用的启动时间。

  • 数据驱动:除了在线调度,系统还将天、周或者更大时间范围的数据用于离线分析。离线分析的目的是利用全量数据验证在线调度算法的效果,为参数调优提供依据,通过数据驱动的方式加快资源流转速度,提高集群整体资源利用率。

负载均衡和流控

资源调度服务是 Serverless 系统的关键链路。为了支撑每秒近百万次的资源调度请求,系统需要对资源调度服务的负载进行分片,横向扩展到多台机器上,避免单点瓶颈。分片管理器通过监控整个集群的分片和服务器负载情况,执行分片的迁移、分裂、合并操作,从而实现集群处理能力的横向扩展和负载均衡。

在多租户环境下,流量隔离控制是保证服务质量的关键。由于用户是按实际使用的资源付费,因此计算资源要通过被不同用户的不同应用共享来降低系统成本。这就需要系统具备出色的隔离能力,避免应用相互干扰。

安全性

Serverless 计算平台的定位是通用计算服务,要能执行任意用户代码,因此安全是不可逾越的底线。系统应当从权限管理、网络安全、数据安全、运行时安全等各个维度全面保障应用的安全性。轻量安全容器等新的虚拟化技术实现了更小的资源隔离粒度、更快的启动速度、更小的系统开销,使数据中心的资源使用变得更加细粒度和动态化,从而更充分地利用碎片化资源。

以上内容出自阿里云出品的《云原生架构白皮书》。

本报告共分为七大章节,涵盖为什么需要云原生架构、云原生架构定义、主要云原生技术、阿里巴巴云原生架构设计、阿里云云原生产品介绍、云原生架构实践案例、云原生架构未来发展趋势几部分,详细阐述了云原生领域的整体落地应用及未来发展趋势。

还想了解更多云原生干货知识?立即扫描二维码或点击阅读原文下载阅读吧!


更多推荐阅读

  • 硬核“毕业证”:5 位本科生带自研处理器芯片毕业,包云岗解读“一生一芯”计划

  • IT 实力较量:决战超级数据中心之巅

  • 完了!TCP出了大事!

  • 微软重启收购 TikTok 讨论;字节跳动称被Facebook抄袭和抹黑;Debian 10.5 发布| 极客头条

  • 区块链时代的世界宪章:代码即法律

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让机器读懂视频:亿级淘宝视频背后的多模态AI算法揭秘

背景 随着4G的普及和5G的推出,内容消费的诉求越来越受到人们的重视。2019年互联网趋势报告指出在移动互联网行业整体增速放缓的大背景下,短视频行业异军突起,成为“行业黑洞”抢夺用户时间,尽管移动互联网人口红利见顶&#xff0…

“崩溃!我再也不搞 AI 了”谷歌 AI 专家:别让你的方法打败你!

今天,想跟大家聊聊 Python 人工智能。最近几年,我看过市面上很多 Python和人工智能的教程,基本都是先介绍Python基本语法、dict、tuple 等基本库的使用,最后学习机器学习、深度学习的常用算法......但我与 Google 人工智能开发专家…

解决jodconverter 2.2.1 版本不支持docx、xlsx、pptx 转换成PDF格式异常

文章目录一、基础对比1.版本对比2.异常现象二、分析定位2.1. 找异常输出处2.2. 找异常源头2.3. api源头三、实现流程3.1. 思路3.2. 新建包重写类3.3. 完整类一、基础对比 1.版本对比 03版本office07版本及高版本office.doc.docx.xls.xlsx.ppt.pptx 2.异常现象 搭建好 Spring…

突破边界局限,阿里云神龙负责人张献涛分享15年虚拟化之路

2020年1月8日,弹性计算服务技术总负责人张献涛受邀出席“面对面 见未来”的沙龙分享活动,现场听众主要是银行、保险、证券等金融行业的CTO、CIO等。 演讲开始前,听众们了解神龙云服务器的并不多。在听完张献涛的介绍后,他们对神龙…

Tablestore入门手册-UpdateRow接口详解

表格存储Tablestore入门手册系列主要介绍表格存储的各个功能接口和适用场景,帮助客户了解和使用表格存储Tablestore。本文对表格存储Tablestore的UpdateRow接口进行介绍,包括其参数、功能示例、使用场景等。 接口概述 UpdateRow接口是表格存储Tablestor…

给力!一行代码躺赚普通程序员10年薪资!

笔者这两天闲逛知乎,看到了这个帖子:匿名答题,发表于2014年,此外没有留下任何多余信息。2年躺赚200万,相当于普通程序员10年的工资。没想到Pyhon这么强大,怪不得有人说“除了不会生孩子,Python什…

支付宝移动端 Hybrid 解决方案探索与实践

目前 mPaaS H5 容器 Demo 源码已发布至 GitHub,全新的接入方式让你可以一键集成 mPaaS 环境并快速接入 H5 容器,体验统一的容器和内核,获取媲美原生的 Hybrid 方案及完美的动态能力。 支付宝 Hybrid 方案建设与演进 目前支付宝有 2 套 Hybr…

SpringBoot 整合 knife4j

文章目录简述2. 导入依赖3. 创建配置类4. 创建User实体类5. 创建开发接口6. 启动项目简述 Swagger是一款测试文档Api接口,具体用法见SpringBoot整合Swagger。而knife4j是对Swagger进一步封装,其优化了api文档的界面。官网https://doc.xiaominfo.com/kni…

如何将数据仓库从 AWS Redshift 迁移到阿里云 AnalyticDB for PostgreSQL

阿里云AnalyticDB for PostgreSQL(以下简称 ADB PG,即原HybridDB for PostgreSQL)为基于PostgreSQL内核的MPP架构的实时数据仓库服务,可以支持复杂ETL任务,也支持高性能在线查询,同阿里云生态紧密结合。AWS…

开源项目如何挣钱? Spark 商业化公司创始人曝光心路历程

众所周知,开源项目对软件发展来说至关重要,但仍有人认为用开源项目来赚钱是对开源项目的一种亵渎。HashiCorp联合创始人兼 CTO Armon Dadgar、Databricks CEO Ali Ghodsi 和 a16z 的普通合伙人 Peter Levine 齐聚一堂,详细阐述开源项目变成商…

F1 Query: Declarative Querying at Scale

距离 Google 的上一篇 F1 论文,也就是 F1: A Distributed SQL Database That Scales 已经 5 年过去了,Google 在今年的 VLDB 上终于发布了 F1 的新版本 F1 Query: Declarative Querying at Scale,我们今天就来看一下这篇论文。 2013 年的 F1…

openoffice 安装windows 环境

文章目录一、安装配置启动1. 下载软件2. 安装3. 启动一、安装配置启动 1. 下载软件 https://www.openoffice.org/download/ 4.1.11版本 下载链接 2. 安装 一路下一步安装即可 安装完毕后,在桌面上会有一个openoffice图标 3. 启动 soffice -headless -accept“…

在线看大会!就来云栖号!

背景 抗击2019新型冠状病毒(2019-nCoV冠状病毒)成了全国人民的头等大事。截至2020年2月7日,中国确诊新型冠状病毒感染者逾3万人。为抗击预防新型冠状病毒,武汉采取封城措施,钟南山院士提倡全家在家不出门隔断病源&…

我为什么放弃Java,却选择Python?

不可否认的是,Python 凭借超广泛的应用方向,已成为了最受欢迎的编程语言。不过,真正让我喜欢上 Python 的原因,是我发现做同样功能的代码,从 Java 换成 Python 以后,代码量直接从 2000 行减少到 200 行。甚…

三大场景,对象存储OSS带你快速上云

本文介绍对象存储OSS的主要应用场景。 图片和音视频等应用的海量存储 OSS可用于图片、音视频、日志等海量文件的存储。各种终端设备、Web网站程序、移动应用可以直接向OSS写入或读取数据。OSS支持流式写入和文件写入两种方式。 网页或者移动应用的静态和动态资源分离 利用海…

word、excel、ppt 办公文件 在线预览

如果想要免费的,可以用 openoffice,实现原理就是: 通过第三方工具openoffice,将word、excel、ppt、txt等文件转换为pdf文件流;当然如果装了Adobe Reader XI,那把pdf直接拖到浏览器页面就可以直接打开预览&a…

生成PDF乱码问题

文章目录1. 准备字体2. 安装字体3. 重启服务器1. 准备字体 将Windows下的Fonts,如:C:\Windows\Fonts,压缩成Fonts.zip压缩包 2. 安装字体 将压缩包拷贝到Linux目录下,执行如下命令即可: unzip Fonts.zip mkdir /u…

30 年开源老兵,10 年躬耕 OpenStack,开源 1000 万行核心代码

受访者 | Jonathan Bryce记者 | 伍杏玲出品 | CSDN(ID:CSDNnews)万物互联时代下,我们的一切都在依赖计算基础设施,科学、金融、政府、教育、通信和医疗保健依赖现代云基础设施来运行和改进。而开源是让全世界大多数人获…

力展物流公司上云 低成本、实例资源使用效率提升

公司介绍 我们公司是成都力展供应链管理有限公司,于2019年4月注册,注册资金1000万,并于2019年6月投资了四川力展物流有限责任公司和成都力展鸿翔物流有限公司,分别入股900W和400W。业务痛点 我们公司成立不久,但动作频…

OpenOffice+JodConverter实现Office文件到PDF的转换

文章目录1. OpenOffice 下载、安装、启动2. JodConverter下载3. 文件转化4. 中文乱码5. 解决中文乱码1. OpenOffice 下载、安装、启动 openoffice 安装 linux环境 2. JodConverter下载 JodConverter是一款利用OpenOffice进行转化的工具,可以在Office文件和OpenOff…