Serverless 应用托管助力企业加速创新
作者: 熊峰 | 阿里云技术专家
云原生时代的 Serverless 应用托管架构
回顾过去十年,数字化转型将科技创新与商业元素不断融合、重构,重新定义了新业态下的增长极。商业正在从大工业时代的固化范式进化成面向创新型商业组织与新商业物种的崭新模式。随着数字化转型在中国各行业广泛深入,不管是行业巨头,还是中小微企业都不得不面对数字化变革带来的未知机遇与挑战。
——《阿里云云原生架构白皮书》
近年来,传统企业的上云步伐正在提速,可以说,上云已逐渐成为企业发展的必然选择。在这个过程过程中,云原生通过开放、标准的技术体系、敏捷的构建和运行高弹性、容错性高、易于管理的系统,帮助企业最大化利用云的能力,发挥云的价值,也正是因此,越来越多的企业、行业开始拥抱云原生。可以说,云原生不但重构了整个软件技术栈和生命周期,同时也重构了企业上云的方式。
云原生这个概念从提出、到壮大、再到今天的普及,始终处于一个不断演进和革新的过程中。云原生体系下应用的托管形态随着企业应用架构在不断演进。
最早的应用大多是集中式、单体式的,应用通过优雅的分层来实现领域模型的共享和更细致的模块拆分。随着互联网的爆炸式发展,分布式的架构逐渐取代集中式架构。
容器的出现和极大普及,通过集装箱式的封装,标准化开发和运维使得大规模、跨语言的分布式应用大规模落地成为现实。云原生应用托管架构迎来了第一次飞跃:容器化。
在此之后,微服务架构得以更大规模的流行开来,随之而来的是企业需要运维的基础设施日益复杂、需要管理的容器数量呈现几何式增长。Kubernetes 一方面屏蔽了IaaS 层基础架构的差异,并凭借优良的可移植性,帮助应用一致地运行在包括数据中心、云、边缘计算在内的不同环境;
另一方面,凭借优秀的开放性、可扩展性以及活跃开发者社区,Kubernetes 在大规模容器编排之战中脱颖而出,成为分布式资源调度和自动化运维的事实标准。云原生应用托管架构迎来了第二次进化:全面拥抱 Kubernetes。
尽管 Kubernetes 带来了众多好处,但是在生产环境中落地 Kubernetes,持续保障系统的稳定性、安全性和规模化成长,对于绝大部分企业来说,依然充满挑战。在这样的背景下,Nodeless Kubernetes 进入大家视线:在保留完整 Kubernetes 能力的基础上,将复杂的运维和容量管理工作下沉到云基础设施底座。至此,云原生应用托管架构迎来了第三个阶段:Serverless Kubernetes。
尽管 Serverless Kubernetes 极大减轻了企业运维 Kubernetes 的负担,但 Kubernetes 自身的复杂性和陡峭的学习曲线依然让人望而生畏,如何让用户的应用跑在 Kubernetes上,既能享受到 Kubernetes 带来的诸多技术红利,又能尽可能 0 改造,成为又一个亟待解决的问题。基于此,云原生应用托管架构迎来了第四个阶段:Serverless应用托管。
后面的这两种模式,就是我们今天着重讨论的的 Serverless 架构与形态。那到底什么是 Serverless 呢?不同的组织,从不同的视角,给出了不同的表述和定义,这里我们选取最有影响力的两个定义:
Berkeley Serverless 论文认为:Serverless Computing = FaaS + BaaS。一个应用必须能够实现自动缩扩容和按使用量计费才能被认为是 Serverless 应用。
CNCF 则认为:Serverless 计算指的是构建和运行应用程序不需要进行服务器的运维管理。它描述了一种细粒度的部署模型,在该模型中,一个应用被打包成多个功能模块并上传到平台,然后根据当前的确切需求执行、扩缩容和计费。
尽管视角和表述不同,但是细心的读者可以很快从中提炼出共性的关键词:按需使用、按量付费(成本)、免运维(效率)、自动伸缩(弹性)。本质在于,将企业有限的资源和精力从繁杂的基础设施运维中解放出来,投入并聚焦到自己的核心业务逻辑中。
这里我们可以类比买车、租车、网约车来理解什么是 Serverless。
企业自主维护服务器就好比买私家车,尽管付出了极大的资源成本(买车)和运维成本(车险、维修)、但是承载容量固定(座位有限),并且平时大量闲置(不开的时候还是有成本)。
企业购买云主机搭建自己的业务系统好比汽车租赁,尽管可以灵活租赁使用时长,但是扩容缩容都相对麻烦,闲置成本有所减少,但是依然存在。
Serverless 时代好比打网约车,完全按需使用按量付费、根据负载自动弹性伸缩、也基本没有闲置成本。
理解了什么是 Serverless 后,我们看看 Serverless 应用托管如何做到让应用运维更简单,如何提升资源利用率,帮助企业降本增效?我们从三个视角来看这个问题:
- 运维模式从人工运维、逐步演进到云平台为主责任共担的运维模式、再进化到完全由云平台兜底的免运维模式。
- 资源利用率从最初的基于峰值采购的极低资源利用率、逐步演进到基于节点伸缩的一定程度的利用率提升、进化到完全匹配业务峰值波动的按需使用。
- 资源成本从固定成本支出、演变成根据资源水位的弹性付费、进化到基于请求付费模式。
Serverless 应用引擎(SAE)2.0 全新升级
结合上面讨论的架构、能力要求,再对应到阿里云云原生 Serverless 产品矩阵,阿里云 Serverless 应用引擎(SAE)就是一款一站式、全托管、免运维、极致弹性的 Serverless 应用托管平台。它能够实现应用无需代码改动、操作简单便捷、具备自适应弹性特性的应用托管平台。
在 SAE 平台上,用户不用再纠结于复杂的基础设施问题,只需上传代码包或容器镜像,即可实现全面托管在线业务。SAE 将自动负责应用的运行和弹性实例的调整,同时还提供网络、负载均衡、监控等周到的辅助功能。
在 Kubernetes Infrastructure 的基础上,SAE 以应用为中心,内置了微服务引擎 MSE 的 agent ,提供了一整套微服务的能力,形成了以 SAE+MSE 为代表的 Serverless 最佳实践,同时能够做到 100% 拥抱开源并回馈开源。
基于这套云原生 Serverless 微服务的最佳实践,**能够使开发效率提升 70%,成本降低 60%。 **
SAE 提供了丰富的弹性指标与灵活的弹性策略:
- 监控指标弹性:在传统的 CPU、Memory 指标基础上,增加了面向业务侧的弹性指标,如 QPS、RT、TCP 的连接数等。
- 定时弹性:提供白屏化的定时设置扩/缩容时间,扩/缩容到多少个实例能力。
- 混合弹性:基于定时弹性和指标弹性混用的弹性策略。基于监控指标弹性做兜底,再针对固定时间段的流量峰值叠加定时弹性作为增强的方案,实现不同时间段内定时弹性或监控指标弹性的精细化弹性需求。
SAE 提供了高效闭环的 DevOps 体系,完整覆盖了从开发态到部署态到运维态整个过程:
- 无缝对接开源 Jenkins:通过内置的 Maven 插件,可以完成从 Source Code 到构建到整个部署的完整过程。它能够支持 War 包、Jar 包和镜像部署等几种模式。
- 云上功能最全的 CI/CD 方案:它与 Jenkins 的区别在于,可以将代码直接托管到云上,由云效来完成代码托管。还能够做到代码侧的安全管理,可以定制流水线,提供完整一致的构建运行的环境。它的功能比较齐全,一般适用于中型规模的企业。
- 最轻量、最易用的 CI/CD 方案:通过容器镜像服务来完成 SAE 的部署。它的轻量在于通过 WebHook 将代码仓库打通,在容器镜像服务上定制一些构建镜像和触发器的规则,在代码提交时能自动构建和部署。如果使用企业级的容器镜像服务,还能实现镜像的安全扫描、防漏洞、全球多域分发等能力。
SAE 提供了 WebShell、日志采集、事件等一系列简单高效的运维能力;提供了全方位可观测性能力以及完善的权限管理、出账分账等企业级能力。
近期,SAE 发布了2.0 全新升级,带来了三个全新的升级:
首先,产品使用更加简化,实现了应用零改造即可上线,使用过程毫无学习成本,创建和发布应用只需几秒钟。此外,按照实际使用量进行付费,能够将应用成本降低 40% 以上。
其次,SAE2.0 标准更为开放,采用容器标准构建,核心能力也将进行开源,提供了丰富的平台工程能力,能够协助研发和运维效率提升 50%。
最后,在弹性能力方面进行了持续加强,SAE2.0 实现了百毫秒级的弹性伸缩能力,根据流量自动调整资源使用,优化了应用的冷启动效果,还支持将实例缩减至 0,即在无业务流量情况下不产生费用。这些特点使其对于新兴业务以及创新创业公司更加友好。
目前,SAE 2.0 已启动全面公测,欢迎大家试用。
参考文献:
- https://developer.aliyun.com/ebook/6958?spm=a2c6h.14164896.0.0.149460cexwsCk2
- https://zhuanlan.zhihu.com/p/137215790
- https://github.com/cncf/wg-serverless/tree/master/whitepapers/serverless-overview
- https://developer.aliyun.com/article/1136342
- https://developer.aliyun.com/article/933307?utm_content=m_1000345005
领取 SAE 免费试用体验部署 Serverless 应用
https://edu.aliyun.com/learning/topic/series/serverlesssae
Serverless 应用托管助力企业加速创新的更多相关文章
- BPM助力企业数字化转型
自九十年代末,流程管理开始引入国内,至今已经有20多年的历史了,由最初的部门级应用向企业级应用转变,大家的认知也经历了一系列的发展变化.不同阶段的信息化水平对企业的流程以及BPM平台也提出了不同的需求 ...
- H5游戏定制,4大优势助力企业曝光10W+
H5游戏定制,4大优势助力企业曝光10W+ 移动互联网已成为了人们生活的一部分,普通广告形式已很难吸引用户的眼球,企业要怎样才能将广告更广泛的传播给更多用户呢?根据TOM游戏多年从业经验,为大家分享以 ...
- CRM助力企业迎接数字化浪潮
去年,国家发展改革委官网发布'数字化转型伙伴行动'倡议.倡议政府和社会各界联合起来,共同构建多元化的联合推荐机制,带动全行业数字化转型,构建数字化产业链,培育数字化生态,形成"数字引领.抗击 ...
- 精益创业之父Steve Blank: 怎样让企业内部创新获得50倍增速
编者注:本文英文版来自创新大师Steve Blank的个人博客,中文版由天地会珠海分舵进行编译.应用在初创企业打造上面的精益创业相信我们已经耳熟能详,可是假设我们面对的是一个已经发展起来的企业.或者是 ...
- 阿里云智能数据构建与管理 Dataphin公测,助力企业数据中台建设
阿里云智能数据构建与管理 Dataphin (下简称“Dataphin”)近日重磅上线公共云,开启智能研发版本的公共云公测!在此之前,Dataphin以独立部署方式输出并服务线下客户,已助力多家大型客 ...
- 助力企业战疫提效保质,腾讯wetest远程办公工具包请查收!
导语 疫情当前,减少个人的出行与聚集成为了抗击疫情的重要防线.不少企业为了员工的安全与战疫的目标,开始实行在家远程办公的措施.作为开发测试人员,对工作环境与设备软件的条件要求相对较高,当前在远程办公的 ...
- 京东云数据库 RDS助力企业便捷运维
iPhone6发布那年,京东在国贸等商圈送货最快速度数分钟,包括从下单到送达.这是一个极端的富含营销因素例子.即便如此,常态来看,隔天到货的这种业务模式,也是基于同样的支撑:营销业务.物流业务,大数据 ...
- RDIFramework.NET Web版报表管理-助力企业高效智能图表
功能描述 在RDIFramework.NET Web版本中全新的报表管理功能模块,非常实用的功能,重量级推荐.主要用于对日常常用的报表做定制展示.可以自动发布到模块(就可授权给指定资源访问),在报表定 ...
- K8S全栈容器服务如何助力企业云化创新?
容器编排管理平台Kubernetes在实践两年多后,市场主导地位被正式确定,随着首批认证服务商的宣布,围绕着容器的应用编排部署服务已然成熟,Kubernetes开始在商业场景为企业创造价值.华为云在K ...
- CODING 研发管理系统上线全球加速,助力企业跨区域协作
CODING 研发管理系统现已全面支持全类型代码仓库的 全球加速访问. 随着国内互联网红利的日趋枯竭与全球互联网的加速普及.越来越多的企业开始走出国门,将目光投向全世界,搭建跨国体系.跨出国门的中国企 ...
随机推荐
- PX4环境安装
1.安装ROS 利用鱼香ros一键安装: wget http://fishros.com/install -O fishros && . fishros 调用的命令为: roscore ...
- 【MRCTF2020】Ezpop_Revenge——PHP原生类SSRF
[MRCTF2020]Ezpop_Revenge--PHP原生类SSRF 1. 收获 CMS初审计 google.baidu hack PHP原生类反序列化 2. 看题 2.1 读源码 网页存在源码泄 ...
- java制作游戏,如何使用libgdx,入门级别教学
第一步,进入libgdx的官网.点击get started 进入这个页面,点击setup a project 进入这个页面直接点击,Generate a project. 点击下载,下载创建工具 它会 ...
- springBoot——读取数据
在yml文件中读取数据,用$符号就可以 类似于这样的 如果要读取yml里面全部的数据,就用自动装配来写 而如果要用实体类来读取里面的数据 package com.example.springboot_ ...
- HBase的实验原理
功能组件: master Region Region到底被存到哪里去了 HBase的三层结构 三层结构中各个层次的名称和作用
- Ubuntu 22.04 LTS 安装lnmp
Ubuntu 22.04 LTS 安装最新稳定版本nginx.mysql5.7和php7.2 全部apt-get安装,就是快,迅速.前提是需要在有网络环境的情况下哈!! 操作系统版本:Ubuntu 2 ...
- 基于winform(C#)的飞鸟小游戏
本项目是一款基于C# (winform)版本的飞鸟小游戏,是一款益智类游戏 其效果如下图所示 如上图所示为飞鸟游戏的初始化界面: 可以看到游戏包含了四个功能: 启动 注册 登陆 排行榜 启动:是用于开 ...
- 【Python微信机器人】第六篇:优化使用方式,可pip安装
优化内容 这篇不聊技术点,说一下优化后的Python机器人代码怎么使用,优化内容如下: 将hook库独立成一个库,发布到pypi,可使用pip安装 将微信相关的代码发布成另一个库,也可以pip安装 g ...
- 一个ssh无法远程登录的问题跟踪解决
用户反馈龙芯服务器系统loongnix-server使用root用户ssh远程登录,有时候可以有时候又无法登录,频繁出现错误:Permission denied,please try again.我分 ...
- IOS关闭锁屏状态下左滑相机
IOS 锁屏状态下,左滑就会打开相机,还不能关闭.这种功能说真的,没有啥用,还很麻烦.看了一圈教程,写的也是没写全.自己再写一个,以后换手机还用得上. 注:此方法会导致微信的扫一扫不可用 1.找到&q ...