微服务场景,开源自建真的最快最省最稳的?
复杂性真的会成为 Kubernetes 的“致命伤”吗?
企业应用容器化,一定得过 K8s 这座“独木桥”吗?
Serverless 应用场景单一,多用在逻辑简单的非核心场景:小程序、ETL、定时备份等。Java 微服务真的遥遥无期了?
2021云栖大会现场,阿里巴巴研究员、阿里云智能云原生应用平台总经理丁宇(叔同)重磅发布了 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 得以合三为一,使得技术先进性、资源利用率优化、不变的开发运维体验可以融合在一起。