简介:SAE 是云原生先进技术的完美融合:容器化 + 微服务 + Serverless 最佳实践。主张 0 门槛+0 容器基础+0 代码改造即享 k8s+Serverless+微服务开箱即用的体验,能托管微服务应用/web 应用/开源定时任务,帮助企业快速进入云原生实践的快车道,欢迎大家了解!
作者:黛忻 阿里云 SAE 产品经理
近年来,企业的数字化随着互联网的普及发展越来越快,技术架构也是几经更迭,尤其是在线业务部分。从最初的单体应用到分布式应用再到云原生应用,出现了进阶式的变化。但带来便利的同时,也给企业带来了一定的复杂度:新技术上手门槛高,容器和微服务就是两个典型的拦路虎。即便微服务化和容器化后,企业依然需要关注服务器配置和运维、容量评估,还要面临高性能和稳定性的挑战,无法享受云带来的最大价值。
Serverless 的出现,带来了跨越式的变革。为企业数字化转型带来了更多机遇。在此模式下,服务器和操作系统的管理部署、运维、资源分配和扩缩容等全部由云厂商提供,计算能力真正像水电煤一样被提供。它能够将原先在传统应用环境中的通用能力转化成云服务,客户可以低成本、高效率地触达。
Serverless 最重要的价值可以归纳为三点:
阿里云 Serverless 应用引擎(简称 SAE)初衷是让客户不改任何代码,不改变应用部署方式,就可以享受到微服务+K8s+Serverless 的完整体验,开箱即用免运维。作为业界首款面向应用的 Serverlss PaaS,自 2018 年推出以来,受到了广大用户的一致好评,各行各业企业客户的生产环境都在 SAE 上稳定运行。
SAE 产品定位:全托管、免运维、高弹性的通用 PaaS 平台。支持开源微服务 / 开源定时任务框架 / Web 应用的全托管,提供开源增强 & 企业级特性。可以说 SAE 覆盖了应用上云的完整场景,是应用上云的最佳选择。
Serverless 微服务作为当今业界非常火热的名词,较为广泛的定义为:CI/CD 流水线,加上内置的高效能研发框架,再加上屏蔽基础 IaaS 层或 K8s 底座,并且提供了端到端的可观测能力,以及一些自动弹性和流量治理服务。
而阿里云的 SAE+MSE 可以称作 Serverless 服务的最佳实践。基于 SAE ,以应用为中心,在 SAE 的应用启动过程中内置 MSE 的 agent ,即提供了一整套微服务的能力。加之其底层天然屏蔽了 K8s 底座,提供了一套无服务器的架构,因此可以将 SAE+MSE 看作 Serverless 的最佳实践。同时能够做到 100%拥抱开源并回馈开源,因为 MSE 团队做了大量开源布道以及在开源基础上做了非常多增强。基于这套 Serverless 微服务的最佳实践,能够使开发效率提升 70%,成本降低 60%。
SAE 的弹性能力相对于 ECS 或 K8s 来说,弹性指标更丰富,弹性策略更灵活,主要提供了三种弹性策略。
电商类、新零售、互娱行业等往往会出现一些不可预期的突发流量。以往一般通过提前预估峰值,按照峰值保有固定的 ECS 资源来应对,但时常会出现容量预估不准,导致资源浪费或不足的情况,更重要的是会影响系统的 SLA 。
而采用压测工具加 SAE 的方案之后,可以根据压测结果精准地设置弹性阈值,与 ARMS 的实时监控指标做对比,系统会自动进行扩缩容操作,无须再做容量规划,极大节省了硬件成本,实现了秒级的弹性效率,可以轻松应对峰值大考。在紧急情况下,还能够通过限流降级的杀手锏来避免应用雪崩。
SAE 提供了高效闭环的 DevOps 体系,它完整地覆盖了从开发态到部署态到运维态整个闭环过程。它提供了三种企业级 CI/CD 持续集成解决方案:
SAE 和 ECS 混部方案主要适用于两种场景:
场景1:从 ECS 陆续迁移到 SAE 的中间过渡方案,能够提升迁移过程的稳定性。
场景2:将 SAE 完全作为弹性资源池作备用。
此方案需要保证同个应用的 ECS 实例和 SAE 实例都能挂载到同一 SLB 的后端,设置好权重比例。如果是微服务应用,还需注册到同一个注册中心。另外,客户侧也需要做一些适配:复用客户自建的发布系统,需要保证每次发版时 SAE 的实例和 ECS 的实例版本一致;复用客户自建的监控系统,需要将 SAE 的监控数据和 ECS 的监控数据整合在一起。流量高峰到达时,弹性模块会将弹性实例弹到 SAE 上,极大提升了弹性扩容效率,也降低了成本。
作为国内外大客户首选的云上工具,Terraform 的价值在于基础设施即代码,能够自动配置基础设施,帮助企业更高速、更低风险、更低成本实现云应用程序的开发、部署与扩展。极大提高自动化运维效率。SAE 接入 Terraform 之后,开发人员无需理解每个 API,提供声明式 IaC,操作 SAE 的资源更加安全,对接 CICD / GitOps 也更加简单。更重要的是提供了资源编排能力,能够一键式的部署 SAE 以及依赖的云资源,从 0 到 1 建站效率大幅提升。目前多个互联网客户已经在生产环境中使用。
提到PHP运维,大家熟知的是各种商业版的服务器运维面板。但这些面板只支持单机运维、缺少监控和秒级自动弹性能力,不支持静态文件增量更新,对体量稍大一点的 PHP 应用并不友好。
针对以上痛点,SAE 提供了一个免运维、高弹性、无缝集成 APM 监控的 PHP 应用全托管服务。在框架上,支持 laravel,ThinkPHP,Swoole、wordpress 等流行框架。在运行环境方面,支持在线应用架构 LNMP,默认提供 PHP-FPM + Nginx。支持 Docker 镜像和 PHP zip 包部署,大大降低了用户使用门槛。PHP 应用托管的功能矩阵相当丰富,有开发调试类的上传下载、内置 Xdebug 等,也有运行时类的弹性伸缩,还能通过NAS和 OSS 独立管理静态文件和目录。基于这些能力,非常好的支撑了 PHP 的几个典型使用场景:如静态站点部署,远程调试,多站点部署,存量 ECS/服务器运维面板的应用迁移等。
SAE 新增支持了任务类型的负载,开源 XXL job 等任务框架能 0 改造迁移。根据业务数据处理需求,能够在短时间内快速创建大量计算任务,任务完成后快速释放计算资源。具备单机、广播、并行计算、分片运行的特性、定时、失败自动重试、监控报警特性,提供了全托管免运维的用户体验。
区别于传统任务框架,SAE job 使用起来更方便(对代码无侵入)、更节省(任务运行完立即释放资源)、更稳定(和在线业务独立、且任务失败能自动重试)、更透明(可视化监控报警)、更省心(无需关注底层资源)。更重要的是 SAE job 能深度融合微服务生态,兼容开源 K8s。
SAE job 可以广泛使用在定时任务、批量数据处理、离线计算、异步任务解耦、微服务生态集成等场景,欢迎大家第一时间体验试用。
SAE 提供了非常多的企业级增强能力:比如一键启停开发测试环境、权限隔离/管控,方便客户直接使用。近期还新增了事件中心能力:可通过钉钉、短信和邮件定向给订阅规则的用户发送应用运行时和变更的异常事件,为客户及时响应和自动化运维奠定坚实基础,也是我们区别于开源自建 K8s 的一些使用体验上的差异,真正做到了想客户之所想,急客户之所急。
SAE 是云原生先进技术的完美融合:容器化 + 微服务 + Serverless 最佳实践。它的出现帮助 Serverless从专用到通用,打破了 Serverless 的落地实施边界,使得 Serverless 不再是前端全栈、小程序的专宠,后台微服务、批处理任务、SaaS 服务、物联网应用等一样也可以构建在 Serverless 之上,天然适合企业核心业务的大规模落地。真正做到了“来了就用,功能齐全、用完即停”的极致体验,帮助企业轻松进入云原生实践的快车道。
更多内容关注 Serverless 微信公众号(ID:serverlessdevs),汇集 Serverless 技术最全内容,定期举办 Serverless 活动、直播,用户最佳实践。
原文链接:https://developer.aliyun.com/article/936461?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。