打破 Serverless 落地边界,阿里云 SAE 发布 5 大新特性

测试背锅
• 阅读 1131

作者:黛忻&望宸

微服务场景,开源自建真的最快最省最稳的?
复杂性真的会成为 Kubernetes 的“致命伤”吗?
企业应用容器化,一定得过 Kubernetes 这座“独木桥”吗?
Serverless 应用场景单一,多用在逻辑简单的非核心场景:小程序、ETL、定时备份等。Java 微服务真的遥遥无期了?

2021云栖大会现场,阿里巴巴研究员、阿里云智能云原生应用平台总经理丁宇(叔同)重磅发布了 Serverless 应用引擎 SAE 的产品全新定位和 5大产品新特性,给出了以上问题的答案。

打破 Serverless 落地边界,阿里云 SAE 发布 5 大新特性

从专用到通用,SAE 天然适合企业核心业务的大规模落地

区别于 FaaS 形态的 Serverless,SAE 以“应用为中心”,提供了面向应用的 UI 和 API,不改变应用编程模型和部署方式,保持了客户在传统服务器上一致的开发部署体验,还能方便的进行本地开发调试/监控,极大地降低了客户使用 Serverless 的门槛,能做到零改造平滑迁移企业在线应用。

也正因为此,SAE 帮助 Serverless 从专用到通用, 打破了 Serverless 的落地实施边界,使得 Serverless 不再是前端全栈、小程序的专宠,后台微服务、SaaS服务、物联网应用等一样也可以构建在 Serverless 之上,天然适合企业核心业务的大规模落地。

从复杂到简单,SAE 天然适合企业零门槛容器化

区别开源自建微服务,SAE 提供了开箱即用的历经双11考验的全套微服务治理能力,客户无需考虑框架选型、更无需考虑数据隔离、分布式事务、熔断设计、限流降级等,也无需担心社区维护力度有限二次定制开发的问题。能做到 Spring Cloud/Dubbo 零改造无缝迁移。开源之上,我们还增强了无损上下线、服务鉴权、全链路灰度等高级特性。

SAE 还帮用户屏蔽了K8s 技术细节,实现企业应用零门槛容器化,无感拥抱 K8s。提供自动构建镜像的能力,除镜像外,提供 WAR/JAR/PHP zip包等多种方式,降低客户制作 Docker 镜像门槛。屏蔽 K8s 复杂的网络和存储插件适配,帮每个应用的实例分配一个在VPC内互联互通的 IP,持久化数据到存储系统。屏蔽 K8s 的运维升级,再也不用担心 K8s 版本升级带来的稳定性风险。屏蔽 K8s 对接监控组件和弹性 controller,提供白屏化的端到端可观测能力和灵活多样的弹性策略配置。用户继续沿用原有打包部署方式,直接 享受 K8s 的技术红利。

5大新特性,凸显 Severless 新优势,延展 Serverless 新边界

  • 弹性能力2.0:业界首发混合弹性策略,支持定时和指标策略混用。在开源 K8s 能力上,丰富 TCP 连接数,SLB QPS/RT 等业务指标触发弹性,支持设定扩缩容步长、冷却时间等高级弹性设置。
  • Java冷启动提速40%:基于Alibaba Dragonwell 11 增强的 AppCDS 启动加速技术,将应用第一次启动的过程生成缓存保存起来,后续直接通过缓存启动应用。同比标准的 OpenJDK,冷启动耗时提速40% 。
  • 极致部署效率15s:基于底层全链路升级,安全沙箱容器2.0,镜像加速等,提供端到端15秒的极致部署体验。
  • 一站式PHP应用托管:支持 PHP zip包直接部署SAE,并提供 PHP 运行时环境选择和应用监控能力,提供一站式 PHP 应用托管体验。
  • 更丰富的开发者工具链:除 Cloudtoolkit、CLI、VSCode等开发者工具外,新增支持 Terraform 和Serverless Devs,基于资源编排能力,一键部署 SAE 应用以及依赖的云资源,让环境搭建更简单。

4大最佳实践,成就 All on Serverless 的典范

低门槛微服务架构转型

比开源自建微服务更快更省更稳。随着业务的快速增长,很多企业都面临单体向微服务架构转型的难题;或者自建的微服务不能满足企业稳定性和多样化的需求。通过 SAE 开箱即用的全套微服务能力,降低了客户学习研发成本,并且有历经双11考验的稳定性背书,能让这些企业快速完成微服务架构转型,支撑新业务快速上线。这也是 SAE 使用最广泛的场景,可以说 SAE 是微服务领域最佳的 Serverless 实践。

一键启停开发测试环境

中大型企业多套环境,往往开发测试、预发环境都不是7*24小时使用,长期保有应用实例,闲置浪费很高,有些企业 CPU 利用率都快接近0,降本诉求明显。通过 SAE 的一键启停能力,已让这些企业灵活按需释放资源,光开发测试环境就能节省2/3的机器成本,非常可观。接下来我们还会通过 K8s 编排能力,编排应用和资源的依赖,一键初始化一套环境和克隆复制环境。

全链路灰度

比开源 K8s ingress 提供的灰度能力更强。SAE 结合 PaaS 层客户的场景特性,不仅实现了K8s ingress的七层流量灰度,也能实现从前端流量到多个级联微服务的接口、方法级别的全链路灰度。比原有方案,部署运维更方便。以往,客户需要部署2个命名空间的多个应用,使用2套完整的环境来实现正式和灰度的发布,硬件成本大、部署运维麻烦。基于SAE,客户只需要部署一套环境,通过配置一些灰度规则将指定的特殊流量访问到特殊的实例上,一层层级联下去,既控制了爆炸半径,方便的同时又节省了硬件成本。

将 SAE 作为弹性资源池,优化资源利用率

大部分客户会全量使用 SAE,也有少量客户会将同一个业务的常态保有部分放在 ECS 上,将SAE 作为弹性资源池,两者混合部署。只需要保证同一个应用的 ECS 实例和 SAE 实例,都挂载到同一个 SLB 的后端,并设置好权重比例。微服务应用还需注册到同一个注册中心。另外,复用客户自建发布系统,保证每次发版时,SAE 实例和 ECS 实例版本一致。复用客户自建的监控系统,将 SAE 的监控数据通过 OpenAPI 发送给监控系统,和 ECS 的监控数据规整。当流量高峰到来之时,弹性模块会把弹性的实例都弹到 SAE 系统,极大地提升弹性扩容效率,降低了成本。这套混部的方案同样适用于从 ECS 模式迁移到 SAE时,作为中间过渡方案使用,进一步提升迁移过程中的稳定性。

SAE 的5大新特性、4大最佳实践,打破了 Serverless 落地的边界,让应用容器化更快捷,让 K8s 落地更简单,让容器 + Serverless + PaaS 得以合三为一,使得技术先进性、资源利用率优化、不变的开发运维体验可以融合在一起。

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Easter79 Easter79
3年前
sql注入
反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这