微服务场景,开源自建真的最快最省最稳的?
复杂性真的会成为Kubernetes的“致命伤”吗?
企业应用容器化,一定得过K8s这座“独木桥”吗?
Serverless应用场景单一,多用在逻辑简单的非核心场景:小程序、ETL、定时备份等。Java微服务真的遥遥无期了?
云栖大会现场,阿里巴巴研究员、阿里云智能云原生应用平台总经理丁宇(叔同)重磅发布了Serverless应用引擎SAE的产品全新定位和5大产品新特性,给出了以上问题的答案。
从专用到通用,SAE天然适合企业核心业务的大规模落地
区别于FaaS形态的Serverless,SAE以“应用为中心”,提供了面向应用的UI和API,不改变应用编程模型和部署方式,保持了客户在传统服务器上一致的开发部署体验,还能方便的进行本地开发调试/监控,极大地降低了客户使用Serverless的门槛,能做到零改造平滑迁移企业在线应用。
也正因为此,SAE帮助Serverless从专用到通用,打破了Serverless的落地实施边界,使得Serverless不再是前端全栈、小程序的专宠,后台微服务、SaaS服务、物联网应用等一样也可以构建在Serverless之上,天然适合企业核心业务的大规模落地。
从复杂到简单,SAE天然适合企业零门槛容器化
区别开源自建微服务,SAE提供了开箱即用的历经双11考验的全套微服务治理能力,客户无需考虑框架选型、更无需考虑数据隔离、分布式事务、熔断设计、限流降级等,也无需担心社区维护力度有限二次定制开发的问题。
能做到SpringCloud/Dubbo零改造无缝迁移。开源之上,我们还增强了无损上下线、服务鉴权、全链路灰度等高级特性。
SAE还帮用户屏蔽了K8s技术细节,实现企业应用零门槛容器化,无感拥抱K8s。提供自动构建镜像的能力,除镜像外,提供WAR/JAR/PHPzip包等多种方式,降低客户制作Docker镜像门槛。屏蔽K8s复杂的网络和存储插件适配,帮每个应用的实例分配一个在VPC内互联互通的IP,持久化数据到存储系统。屏蔽K8s的运维升级,再也不用担心K8s版本升级带来的稳定性风险。屏蔽K8s对接监控组件和弹性controller,提供白屏化的端到端可观测能力和灵活多样的弹性策略配置。用户继续沿有原有打包部署方式,直接享受K8s的技术红利。
5大新特性,凸显Severless新优势,延展Serverless新边界
·弹性能力2.0:业界首发混合弹性策略,支持定时和指标策略混用。在开源K8s能力上,丰富TCP连接数,SLBQPS/RT等业务指标触发弹性,支持设定扩缩容步长、冷却时间等高级弹性设置。
·Java冷启动提速40%:基于AlibabaDragonwell11增强的AppCDS启动加速技术,将应用第一次启动的过程生成缓存保存起来,后续直接通过缓存启动应用。同比标准的OpenJDK,冷启动耗时提速40%。
·极致部署效率15s:基于底层全链路升级,安全沙箱容器2.0,镜像加速等,提供端到端15秒的极致部署体验。
·一站式PHP应用托管:支持PHPzip包直接部署SAE,并提供PHP运行时环境选择和应用监控能力,提供一站式PHP应用托管体验。
·更丰富的开发者工具链:除Cloudtoolkit、CLI、VSCode等开发者工具外,新增支持Terraform和ServerlessDevs,基于资源编排能力,一键部署SAE应用以及依赖的云资源,让环境搭建更简单。
4大最佳实践,成就AllonServerless的典范
·低门槛微服务架构转型
比开源自建微服务更快更省更稳。随着业务的快速增长,很多企业都面临单体向微服务架构转型的难题;或者自建的微服务不能满足企业稳定性和多样化的需求。通过SAE开箱即用的全套微服务能力,降低了客户学习研发成本,并且有历经双11考验的稳定性背书,能让这些企业快速完成微服务架构转型,支撑新业务快速上线。这也是SAE使用最广泛的场景,可以说SAE是微服务领域最佳的Serverless实践。
·一键启停开发测试环境
中大型企业多套环境,往往开发测试、预发环境都不是7*24小时使用,长期保有应用实例,闲置浪费很高,有些企业CPU利用率都快接近0,降本诉求明显。通过SAE的一键启停能力,已让这些企业灵活按需释放资源,光开发测试环境就能节省2/3的机器成本,非常可观。接下来我们还会通过K8s编排能力,编排应用和资源的依赖,一键初始化一套环境和克隆复制环境。
·全链路灰度
比开源K8singress提供的灰度能力更强。SAE结合PaaS层客户的场景特性,不仅实现了K8singress的七层流量灰度,也能实现从前端流量到多个级联微服务的接口、方法级别的全链路灰度。
比原有方案,部署运维更方便。以往,客户需要部署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得以合三为一,使得技术先进性、资源利用率优化、不变的开发运维体验可以融合在一起。