DevOps■从 DevOps 到 NoOps,Serverless 技术的落地方式探讨( 二 )


本文插图

ECI/Serverless Kubernetes:是面向容器的 Serverless Container , 应用的载体是容器镜像 , 灵活性好 , 配合调度系统可以支持各种类型应用 , 无需管理底层基础架构 。
函数计算:是面向函数的 Function as a Service , 提供了事件驱动的编程方式 , 用户只需实现函数的处理逻辑 , 开发效率很高;按照调用量计费 , 可以根据业务流量平滑调整计算资源 , 采用 FaaS 最大的挑战是需要改变应用架构和开发交付模型 。
Serverless 应用引擎(SAE):是面向应用的 Serverless 产品 , 用户不需要要改变应用架构和开发交付模型 , 只需提供应用实现 , 无需管理底层计算资源 。 SAE 提供了优化的弹性策略、支持秒级计费 , 并且提供了丰富的服务治理能力 , 可以方便地实现服务的灰度发布、熔断、降级 , 并与现有CI/CD系统集成 。
什么是阿里云Serverless 应用引擎(SAE) Serverless 应用引擎(SAE)基于神龙裸金属服务器和 ECI 计算资源构建 Kubernetes 集群平台 , 并实现了多租户管理 , 在 Runtime 层实现了应用生命周期管理、发布策略管理、弹性伸缩、微服务管理等能力 。 简单讲 , 就是面向微服务和其他在线负载提供 Serverless 技术的落地方案 。
DevOps■从 DevOps 到 NoOps,Serverless 技术的落地方式探讨
本文插图

如上图 , SAE 为主流的微服务框架的应用提供了 Serverless 应用托管能力 , 包括 Spring Cloud、Apache Dubbo 或者阿里云 HSF 框架等 , 支持多种部署渠道 , 包括UI、云效、插件等 , 支持多种部署方式 , 包括WAR、JAR、镜像等 。 对于单体应用和采用 Spring Cloud、Dubbo、HSF框架开发的 Java 应用 , SAE 支持零代码改造 , 即可完成迁移 。
多租户应用托管能力实现 SAE 基于 Kubetnetes 集群对多用户提供应用托管能力 , 那 SAE 如何实现多租管理的呢?对于租户的隔离 , 主要有4个方面 , 包括系统隔离、数据隔离、服务隔离和网络隔离:

  • 系统隔离:基于安全沙箱容器技术的应用运行时环境 , 拥有独立的内核 , 能够提供多租户环境下对系统调用、内核的隔离能力;
  • 数据隔离:安全容器启动时 , 通过 devicemapper 在宿主机上提供一个独占的存储空间作为 rootfs;
  • 服务隔离:SAE 命名空间是逻辑隔离环境 , 和微服务级别租户信息(例如T1、T2、T3)绑定 , 与 K8S 中 namesapce 一一对应 , 微服务租户信息下发到 K8S Secret 中保存;
  • 网络隔离:SAE 命名空间和唯一的 VPC 绑定 , 底层通过 ENI 网卡打通同一个VPC 网络 , 实现不同用户的 POD 属于不同网络平台 , 并且 POD 和宿主机属于不同网络平面 , VPC 实现用户专属网络隔离 。
核心优势-免IaaS运维 用户只需对网络进行规划 , 无需管理底层计算资源 , 完成业务开发后 , 可以直接通过程序包或者镜像部署应用 , 极大提高用户开发和运维效率;SAE 对接了多个云产品 , 如SLB、SLS、NAT等 , 在应用部署时可以选择使用 , 可以一站式支持流量访问、日志收集、存储等能力 。
核心优势-弹性能力
DevOps■从 DevOps 到 NoOps,Serverless 技术的落地方式探讨
本文插图

SAE 支持定时弹性和指标弹性功能 , 定时弹性适用于资源画像有周期性的应用场景 , 多用于证券、医疗、政府、教育等行业;指标弹性目前支持 CPU 和内存指标弹性 , 适用于有突发流量或典型脉冲的应用场景 , 多用于互联网、游戏、社交平台等行业 。
核心优势-一键启停开发测试环境 企业开发测试环境一般晚上不使用 , 但需要长期保有应用实例 , 闲置资源成本高 。 使用 SAE 一键启停功能能够高效管理开发测试环境 , 按需释放闲置资源 , 做到节省成本 。


推荐阅读