近年来,企业的数字化随着互联网的普及发展越来越快,技术架构也是几经更迭,尤其是在线业务部分。从最初的单体应用到分布式应用再到云原生应用,出现了进阶式的变化。但带来便利的同时,也给企业带来了一定的复杂度:新技术上手门槛高,容器和微服务就是两个典型的拦路虎。即便微服务化和容器化后,企业依然需要关注服务器配置和运维、容量评估,还要面临高性能和稳定性的挑战,无法享受云带来的最大价值。
Serverless 的出现,带来了跨越式的变革。为企业数字化转型带来了更多机遇。在此模式下,服务器和操作系统的管理部署、运维、资源分配和扩缩容等全部由云厂商提供,计算能力真正像水电煤一样被提供。它能够将原先在传统应用环境中的通用能力转化成云服务,客户可以低成本、高效率地触达。
Serverless 最重要的价值可以归纳为三点:
- 通过基础设施解耦、极致弹性和故障自动处理等提供永远在线的服务,无须担心宕机。
- 通过高效的研发框架以及 DevOps 新形态,做到秒级市场响应。
- 抹平了头部互联网公司与传统企业之间技术竞争力的代差,让传统企业面临大量技术升级和重构时,能够从容不迫,不会出现人才缺口,甚至能够弯道超车。
阿里云 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 来说,弹性指标更丰富,弹性策略更灵活,主要提供了三种弹性策略。
- 监控指标弹性:在开源K8s基础上增加了面向业务侧的弹性指标,如 QPS、RT、TCP的连接数等,基于这些业务指标来精准地实现弹性,整体弹性容量的预估会更加精确。一般适用于有突发流量或典型脉冲的场景。
- 定时弹性:定时设置扩/缩容时间,扩/缩容到多少个实例。同时,SAE 提供了白屏化的操作,相比于开源的 K8S 需自实现 HPA Controller 更简单。
- 混合弹性(业界首款):基于定时弹性和指标弹性混用的弹性策略。很多客户的业务都有潮汐特性,且会伴随流量突发,比如视频直播等场景。因此,基于监控指标弹性做兜底,再针对固定时间段的流量峰值叠加定时弹性作为增强的方案,仅一条策略就实现不同时间段内定时弹性或监控指标弹性的精细化弹性需求。
电商类、新零售、互娱行业等往往会出现一些不可预期的突发流量。以往一般通过提前预估峰值,按照峰值保有固定的 ECS 资源来应对,但时常会出现容量预估不准,导致资源浪费或不足的情况,更重要的是会影响系统的 SLA 。
而采用压测工具加 SAE 的方案之后,可以根据压测结果精准地设置弹性阈值,与 ARMS 的实时监控指标做对比,系统会自动进行扩缩容操作,无须再做容量规划,极大节省了硬件成本,实现了秒级的弹性效率,可以轻松应对峰值大考。在紧急情况下,还能够通过限流降级的杀手锏来避免应用雪崩。
SAE 提供了高效闭环的 DevOps 体系,它完整地覆盖了从开发态到部署态到运维态整个闭环过程。它提供了三种企业级 CI/CD 持续集成解决方案:
- 无缝对接开源 CI/CD 工具 Jenkins:通过内置的 Maven 插件,可以完成从 source code 到构建到整个部署的完整过程。它能够支持war包、jar包和镜像部署等几种模式。
- 云上功能最全的 CI/CD 方案:它与 Jenkins 的区别在于,可以将代码直接托管到云上,由云效来完成代码托管。还能够做到代码侧的安全管理,可以定制流水线,提供完整一致的构建运行的环境。它的功能比较齐全,一般适用于中型规模的企业。
- 最轻量、最易用的 CI/CD 方案:通过容器镜像服务来完成 SAE 的部署。它的轻量在于通过 webhook 将代码仓库打通,在容器镜像服务上定制一些构建镜像和触发器的规则,在代码提交时能自动构建和部署。如果使用企业级的容器镜像服务,还能实现镜像的安全扫描、防漏洞、全球多域分发等能力。
SAE 和 ECS 混部方案主要适用于两种场景:
场景1:从 ECS 陆续迁移到 SAE 的中间过渡方案,能够提升迁移过程的稳定性。
场景2:将 SAE 完全作为弹性资源池作备用。
此方案需要保证同个应用的 ECS 实例和 SAE 实例都能挂载到同一 SLB 的后端,设置好权重比例。如果是微服务应用,还需注册到同一个注册中心。另外,客户侧也需要做一些适配:复用客户自建的发布系统,需要保证每次发版时 SAE 的实例和 ECS 的实例版本一致;复用客户自建的监控系统,需要将 SAE 的监控数据和 ECS 的监控数据整合在一起。流量高峰到达时,弹性模块会将弹性实例弹到 SAE 上,极大提升了弹性扩容效率,也降低了成本。
四个重磅新特性,延展 Serverless 新边界
支持 Terraform
作为国内外大客户首选的云上工具,Terraform 的价值在于基础设施即代码,能够自动配置基础设施,帮助企业更高速、更低风险、更低成本实现云应用程序的开发、部署与扩展。极大提高自动化运维效率。SAE 接入 Terraform 之后,开发人员无需理解每个 API,提供声明式 IaC,操作 SAE 的资源更加安全,对接 CICD / GitOps 也更加简单。更重要的是提供了资源编排能力,能够一键式的部署 SAE 以及依赖的云资源,从 0 到 1 建站效率大幅提升。目前多个互联网客户已经在生产环境中使用。
提供了 PHP 的一站式应用托管
提到PHP运维,大家熟知的是各种商业版的服务器运维面板。但这些面板只支持单机运维、缺少监控和秒级自动弹性能力,不支持静态文件增量更新,对体量稍大一点的 PHP 应用并不友好。
针对以上痛点,SAE 提供了一个免运维、高弹性、无缝集成 APM 监控的 PHP 应用全托管服务。在框架上,支持 laravel,ThinkPHP,Swoole、wordpress 等流行框架。在运行环境方面,支持在线应用架构 LNMP,默认提供 PHP-FPM + Nginx。支持 Docker 镜像和 PHP zip 包部署,大大降低了用户使用门槛。PHP 应用托管的功能矩阵相当丰富,有开发调试类的上传下载、内置 Xdebug 等,也有运行时类的弹性伸缩,还能通过NAS和 OSS 独立管理静态文件和目录。基于这些能力,非常好的支撑了 PHP 的几个典型使用场景:如静态站点部署,远程调试,多站点部署,存量 ECS/服务器运维面板的应用迁移等。
SAE Job 正式邀测
SAE 新增支持了任务类型的负载,开源 XXL job 等任务框架能 0 改造迁移。根据业务数据处理需求,能够在短时间内快速创建大量计算任务,任务完成后快速释放计算资源。具备单机、广播、并行计算、分片运行的特性、定时、失败自动重试、监控报警特性,提供了全托管免运维的用户体验。
区别于传统任务框架,SAE job 使用起来更方便(对代码无侵入)、更节省(任务运行完立即释放资源)、更稳定(和在线业务独立、且任务失败能自动重试)、更透明(可视化监控报警)、更省心(无需关注底层资源)。更重要的是 SAE job 能深度融合微服务生态,兼容开源 K8s。
SAE job 可以广泛使用在定时任务、批量数据处理、离线计算、异步任务解耦、微服务生态集成等场景,欢迎大家第一时间体验试用。
SAE 支持事件中心
SAE 提供了非常多的企业级增强能力:比如一键启停开发测试环境、权限隔离/管控,方便客户直接使用。近期还新增了事件中心能力:可通过钉钉、短信和邮件定向给订阅规则的用户发送应用运行时和变更的异常事件,为客户及时响应和自动化运维奠定坚实基础,也是我们区别于开源自建 K8s 的一些使用体验上的差异,真正做到了想客户之所想,急客户之所急。
SAE—云原生先进技术的完美融合
SAE 是云原生先进技术的完美融合:容器化 + 微服务 + Serverless 最佳实践。它的出现帮助 Serverless从专用到通用,打破了 Serverless 的落地实施边界,使得 Serverless 不再是前端全栈、小程序的专宠,后台微服务、批处理任务、SaaS 服务、物联网应用等一样也可以构建在 Serverless 之上,天然适合企业核心业务的大规模落地。真正做到了“来了就用,功能齐全、用完即停”的极致体验,帮助企业轻松进入云原生实践的快车道。
作者:黛忻 阿里云 SAE 产品经理
原文链接:
http://click.aliyun.com/m/1000345005/
本文为阿里云原创内容,未经允许不得转载。