Serverless 落地挑战与蚂蚁金服实践

目前 Serverless 已成为云原生社区关注的重点之一,有人说它是微服务的继承者,将会彻底改变软件研发的现状,那么真实情况如何呢?本文将介绍 Serverless 市场观察、落地挑战,以及蚂蚁金服对 Serverless 的实践。

Serverless 已成趋势

当我们回顾云计算的发展历程,会看到基础架构经历了从物理机到虚拟机,从虚拟机再到容器的演进过程。在这大势之下,应用架构也在同步演进,从单体过渡到多层,再到当下的微服务。在变化的背后,有一股持续的动力,它来自于三个不变的追求:提高资源利用率,优化开发运维体验,以及更好地支持业务发展。

目前, Serverless 已成为云原生社区关注的重点之一,它的发展也不例外。相比容器技术,Serverless 可以将资源管理的粒度更加细化,使开发者更快上手云原生,并且倡导事件驱动模型支持业务发展。从而帮助用户解决了资源管理复杂、低频业务资源占用等问题;实现面向资源使用,以取代面向资源分配的模式。根据 CNCF 在2018年底基于 2400人的一份统计报告,已有 38% 的组织正在使用Serverless 技术,相比 2017 同期增长了 22%。(数据来源:CNCF Survey)

目前市场上,云厂商提供了多种 Serverless 产品和解决方案,大致可划分为:
1.函数计算服务:如 AWS Lambda,特点是以代码片段为单位运行,并对代码风格有一定要求。
2.面向应用的 Serverless 服务:如 Knative,特点是基于容器服务,并提供了从代码包到镜像的构建能力。
3.容器托管服务:如 AWS Fargate,特点是以容器镜像为单元运行,但用户仍需感知容器。
从社区来看,CNCF 云原生基金会正通过 Serverless 工作组协调社区讨论并促进规范和标准的形成,工作组产出了 Serverless 白皮书和全景图等重要内容。其中,全景图将目前的生态划分为了平台层,框架层,工具链层和安全层这四个模块。

落地挑战

在交流过程中,我们发现 Serverless 很好地解决了客户的一些诉求:包括通过 0-1-0 的伸缩能力来提高资源时用率,降低成本;支持代码包出发,从而让客户无感化实现云原生,历史应用无需经过容器化改造;支持灵活的触发器配置,引导用户对应用进行事件驱动的改造,从而适应业务的高速发展等。这些优势,使得 Serverless 在小程序开发的场景下大放异彩。

同时,对于在企业级应用的生产环境落地 Serverless,各方也有了很多探索和突破。在前段时间的 KubeConChina 2019 大会上,Serverless 工作组会议也以此为话题展开了讨论。目前的核心挑战可归纳为:

1.平台可迁移
目前众多平台都推出了自己的 Serverless 标准,包括代码格式、框架和运维工具等,用户既面临较高的学习成本和选择压力,也担心无法在平台之间灵活迁移 Serverless 应用。

2.0-M-N 性能
线上应用对控制请求延迟有严格的要求,因此,用户需要谨慎地验证 Serverless 0-1冷启动速度、M-N 扩容速度以及稳定性都达到了生产要求。

3.调试和监控
用户对底层资源无感知,只能借助平台能力对应用进行调试和监控,用户需要平台提供强大的日志功能进行排错,和多维度的监控功能时刻了解应用状态。

4.事件源集成
采用 Serverless 架构后,应用往往进行更细粒度的拆分,并通过事件串联。因此用户希望平台能集成大多数通用的事件源,并支持自定义事件,使得触发机制更加灵活。

5.工作流支持
完成某个业务,往往涉及多个 Serverless 应用之间的配合,当数目较多时,用户希望可以用工作流工具来进行统一编排和状态查看,提高效率。

蚂蚁金服实践

SOFAStack 致力于通过产品技术解决云上客户实际痛点,沉淀蚂蚁金服技术实践,帮助用户以高效、低成本的方式迁移到云原生架构。Serverless 应用服务(Serverless Application Service,简称 SOFA SAS)是一款源自蚂蚁金服实践的一站式 Serverless 平台。SAS 基于 SOFAStack CAFE 云应用引擎 (Cloud ApplicationFabric Engine 简称 CAFE),CAFE的容器服务已经通过了 CNCF 的一致性认证,是一个标准的Kubernetes。

 

Serverless 应用服务产品在兼容标准 Knative 同时,融入了源自蚂蚁金服实践的应用全生命周期管理能力,提供了 Serverless引擎管理、应用与服务管理、版本管理与流控、根据业务请求或事件触发较快的 0-M-N-0 自动伸缩、计量、日志及监控等配套能力。同时结合金融云上客户实际痛点,产品独居匠心的提供独占版与共享版两种形态,以及传统代码包、容器镜像与纯函数三种研发模式,以解决用户的不同需求,降低客户准入门槛。

一键部署:用户可以通过代码包或容器镜像的方式一键部署应用并在任意时刻测试执行。
引擎管理:SAS 提供了丰富的引擎全生命周期管理、诊断、监测等能力,为独占版客户赋能 Serverless 引擎数据面的全方位管理与运维运营能力。
服务及版本:SAS 提供应用管理、应用服务管理以及版本管理。版本可以采用容器镜像方式部署也可以采用传统VM发布模式下的代码包部署,很多情况下用户代码无需修改也无需编写维护Dockerfile 即可迁移。
0-M-N:SAS 提供 0-M-N-M-0 的Serverelss 快速伸缩能力,支持事件触发或流量触发的 0-M,多种指标的 M-N(如 QPS、CPU、MEM 等等)
日志监控计量:产品内置了日志、监控、计量等配套设施能力,帮助用户进行调试和应用状态监控。
流量控制:基于 SOFAMesh,SAS提供基本流控能力,后续会与服务网格进一步深度集成提供大规模多维跨地域及混合云的流控能力。
触发器管理:产品支持基于常见周期以及秒级精度的cron表达式触发器,可关联并触发无服务器应用,后续将支持更多 IaaS、PaaS 管控型与数据型事件。

性能简析:横轴为完全在同一时刻触发冷启的Java应用个数,纵轴为冷启应用的平均与最小耗时。随着压力增大,50个Java应用同一时刻调度加冷启平均耗时2.5秒左右,100个Java应用同一时刻调度冷启平均耗时3-4秒,最短耗时1.5到2秒。

性能简析:Pooling 快弹慢缩时序算法,池容量和实际单位时间申请量关系可做到如图所示(蓝色为实际申请量,绿色为池容量)

目前产品已顺利支撑生产环境小程序 Serverless 模式。同时通过 0-M-N-M-0 的能力在很大程度上降低了小程序的运营成本。在行业客户领域,某保险公司决定近期迁移部分日结前置和长尾应用到 Serverless 产品平台,这也是我们产品又一个重要突破。未来,我们致力于将SAS 打造成为一个金融级的 Serverless 平台。

KubeCon China 2019 大会上, Serverless 应用服务正式亮相,在 SOFAStack 工作坊吸引了百余名参与者,一同体验基于 Serverless 轻松构建云上应用。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

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

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

相关文章

python3-numpy数组广播 和 np.tile 扩展数组

1、数组广播 import numpy as np""" 广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行。 如果两个数组 a 和 b 形状相同,即满足 a.shape b.shape,那么 a*b 的结…

程序员感叹一年只能存下15万太少了……网友:潸然泪下

最近有程序员网友晒出自己的年终奖,税后高达15.7万!看到这个情形,很多网友表示自己“被打鸡血了”。他强调学习的重要性,学习仍然是在这个时代下,普通人能够逆袭,给家人更好生活的一把利器!今天…

linux 添加sftp用户

-- 创建fxq用户,指定用户家目录为/app/fis/data/fxq 指定Uid为503 useradd fxq -d /app/fis/data/fxq -g sftp -u 503-- 给指定fxq用户设置密码 passwd fxq 略cd /app/fis/data/fxq--级联创建fxq相关目录 mkdir /app/fis/data/fxq/send /app/fis/data/fxq/send/gwl …

机器学习工程师第一年的12点体会

机器学习和数据科学都是广义上的术语,它们涉及超级多的领域以及知识,一位数据科学家所做的事情可能与另一位有很大的不同,机器学习工程师也是如此。通常使用过去(数据)来理解或预测(构建模型)未…

python3-numpy np.nditer 迭代数组、np.nditer修改数组、np.nditer广播迭代

1、基本使用 import numpy as np""" NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式。 迭代器最基本的任务的可以完成对数组元素的访问。 """ a np.arange(6).reshape(2,3) print (原始数组是:) pri…

AI和机器学习如何改善用户体验?

人工智能(AI)和机器学习(ML)可以做些什么来改善客户体验?自从网上购物开始以来,AI和ML已经密切参与整个网上购物流程。如果没有获得购物建议,你可能无法享受到淘宝或任何其他购物网站的优质服务…

今天下午三点,2020深圳开放数据应用创新大赛将举行第二场线上推介会

4月27日15:00 - 16:30,网易客户端、ZAKER、华为云、南方 plus、虎牙在线直播每场线上推介会设两轮抽奖,欢迎互动。继4月20日首场线上推介会顺利举行后,4月27日下午,以"数聚粤港澳,智汇大湾区"为主题的"…

解决Another app is currently holding the yum lock; waiting for it to exit...问题

在下载安装lrzsz时出现Another app is currently holding the yum lock; waiting for it to exit...问题yum被锁定了可以使用 rm -rf /var/run/yum.pid 强制杀死进程来解决

优化 Tengine HTTPS 握手时间

背景 网络延迟是网络上的主要性能瓶颈之一。在最坏的情况下,客户端打开一个链接需要DNS查询(1个 RTT),TCP握手(1个 RTT),TLS 握手(2个RTT),以及最后的 HTTP …

python3-numpy 数组操作--修改数组形状、翻转数组、修改数组维度、连接数组、分割数组、数组元素的添加与删除

1、修改数组形状 函数描述reshape不改变数据的条件下修改形状flat数组元素迭代器flatten返回一份数组拷贝,对拷贝所做的修改不会影响原始数组ravel返回展开数组 1.1 numpy.reshape numpy.reshape 函数可以在不改变数据的条件下修改形状,格式如下&#…

十周年再发重磅新品,小米发布50倍潜望式变焦小米10青春版、MIUI 12

2020年4月27日,小米集团旗下小米品牌举办新品发布会,小米10青春版、MIUI12两款重磅新品正式发布,一同亮相的还有小米手表Color X Keith Haring联名版和小米蓝牙耳机Line Free。小米10青春版是一款从「做好年轻人最在乎的基本性能」&#xff0…

揭秘!如何用Flutter设计一个100%准确的埋点框架?

阿里妹导读:用户行为埋点是用来记录用户在操作时的一系列行为,也是业务做判断的核心数据依据,如果缺失或者不准确将会给业务带来不可恢复的损失。闲鱼将业务代码从Native迁移到Flutter上过程中,发现原先Native体系上的埋点方案无法…

安装rzsz

yum install -y lrzsz

编码规范 | Java函数优雅之道(下)

上文背景 本文总结了一套与Java函数相关的编码规则,旨在给广大Java程序员一些编码建议,有助于大家编写出更优雅、更高质、更高效的代码。 内部函数参数尽量使用基础类型 案例一:内部函数参数尽量使用基础类型 现象描述: // 调…

python3-numpy IO load()、save()、savez()、loadtxt()、savetxt()、tofile()、fromfile()

Numpy 可以读写磁盘上的文本数据或二进制数据。 NumPy 为 ndarray 对象引入了一个简单的文件格式:npy。 npy 文件用于存储重建 ndarray 所需的数据、图形、dtype 和其他信息。 常用的 IO 函数有: load() 和 save() 函数是读写文件数组数据的两个主要函数…

抽象思想解读Linux进程描述符

来源 | 嵌入式客栈责编 | Carol头图 | CSDN 下载自视觉中国内核是怎么工作的?首先要理解进程管理,进程调度,本文开始阅读进程管理部分,首先从进程的抽象描述开始。抽象是软件工程的灵魂,而对于Linux操作系统而言&#…

CentOS Linux 7.7 安装kafka zookeeper

文章目录一、软件下载1. zookeeper2. kafka二、安装与启动2.1. jdk2.2. zookeeper2.3. kafka三、 kafka 基本演示一、软件下载 1. zookeeper http://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz 2. kafka https://archive.apach…

《Java开发手册》2019最新版发布!

致全球Java开发者: 代码是二进制世界的交流方式,极致的代码是我们的荣耀。 2017年春天,《阿里巴巴Java开发手册》发布,我们希望在涵盖编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程规约、设计规约等7个维度上为开…

IDEA 惊天 bug:进程已结束,退出代码 1073741819

来源 | 沉默王二责编 | Carol头图 | CSDN 下载自视觉中国今天要写的文章中涉及到一串代码,关于 Undertow 的一个入门示例,贴出来大家看一下。public class UndertowTest {public static void main(final String[] args) {Undertow server Undertow.buil…

python3-Anaconda3 基本使用

1、下载 最新版本官网下载: https://www.anaconda.com/distribution/ 历史版本 清华镜像(国内首选): https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 历史版本 官网镜像: https://repo.anaconda.com/archi…