乐趣区

关于serverless:从零入门-Serverless-一文详解-Serverless-技术选型

作者 | 李国强 阿里云资深产品专家

明天来讲,在 Serverless 这个大畛域中,不只有函数计算这一种产品状态和利用类型,而是面向不同的用户群体和应用习惯,都有其各自实用的 Serverless 产品。例如面向函数的函数计算、面向利用的 Serverless 利用引擎、面向容器的 Serverless Kubernetes,用户能够依据本人的应用习惯、应用场景或者利用类型,去抉择应用什么样的 Serverless 产品。上面通过本文给大家介绍一下,阿里云都有哪些可供大家抉择的 Serverless 产品。

Serverless 产品及分层

家喻户晓,最早提出 Serverless 的是 AWS,其在 Serverless 畛域的旗舰产品是 function compute。同样阿里云也有函数计算的产品,帮忙用户构建 Serverless 函数。但 Serverless 不仅仅是函数,如下图所示,其实用户会冀望在利用、容器等层面也可能享受到 Serverless 的益处,包含按量付费、极致弹性等,这样也更合乎用户原有的应用习惯。

在上图中,大家可能看到,阿里云针对函数、利用和容器都推出了对应的 Serverless 产品,用户能够针对本人的应用场景抉择不同的产品。

函数计算

1. 函数计算介绍

上图展现了函数计算的应用形式。从用户角度,他须要做的只是编码,而后把代码上传到函数计算中。这个时候还不会产生费用,只有到被调用的时候才有费用。调用的形式能够是产品提供的 API/SDK,也能够通过一些事件源,比方阿里云的 OSS 的事件。比方用户往 OSS 里的某一个 bucket 上传了一个文件,心愿这个文件被主动解决;比方上传一个 zip 包,心愿可能主动解压到另外一个 bucket,这都是很典型的函数场景。

另外,函数计算可能提供十分好的弹性能力,最终的费用是依据时长和内存数进行计费的,如果调用量小的话,只会有很少的费用。并且它在语言方面也十分丰盛,罕用的 nodejs、php、python、java 都间接反对。同时提供自定义的运行环境,能够反对任意的可执行的语言。

2. 函数计算典型场景

从应用场景来说,次要有三类:

  • Web 利用。能够是各种语言写的,这种能够应用 Serverless 框架新编写的程序,也能够是已有的利用。比方小程序后端、或者公布到 API 市场的 API 后端利用等。
  • 对计算能力有很强的弹性诉求的利用。比方 AI 推理、音视频解决、文档转换等。
  • 事件驱动型的利用。比方通过其余阿里云产品驱动的场景、Web Hook、定时工作等。函数计算曾经与很多产品进行了买通,比方对象存储、表格存储、定时器、CDN、日志服务、云监控等,能够十分疾速地组装出一些业务逻辑。

3. 函数计算外围竞争力

函数计算对客户的一个最大的价值,就是可能让用户只关注本人的业务逻辑开发,齐全不须要治理运维,诸如计算资源、网络设置等都不须要关怀。在隔离性上提供 vm 级别的隔离,保障用户在运行时的数据安全、运行时平安等;在可用性方面默认提供 3az 的高可用架构,保障客户默认就是高可用的最佳实际架构;在弹性方面,能够做到毫秒级的弹性效率,满足客户突发的流量冲击;在计费方面也非常灵活,真正依照用户的申请状况进行免费,也反对对 long run 的利用更敌对的预付费模式。

Serverless 利用引擎

1. SAE 概述

SAE 是业内首款面向利用的 Serverless Paas 平台。这个产品以面向利用的视角,帮忙用户在不做任何批改的前提下把存量利用上到云端。在资源层,用户不再须要本人治理和运维机器及集群,只须要关注本人利用所须要应用的规格以及实例数,不再须要关怀底层是虚机还是容器。

SAE 从资源层面提供计算资源、弹性、隔离性等能力,让用户只须要关注本人的利用。在应用层,SAE 提供了监控、日志、微服务治理等能力,帮忙用户解决利用可观测性和治理需要。同时提供网络配置、流量控制能力,提供了和 CICD 良好的集成,用户能够应用已有 CICD 部署到 SAE,比方 jenkins、云效等,能够说笼罩了利用上云的残缺场景。

2. SAE 典型场景

SAE 有几个典型的应用场景,一个是存量业务上云,特地是微服务、java 利用,同时也反对其余语言的单体利用,都可能通过 SAE 这个平台运行在阿里云上,并且不须要做任何代码的批改。在行业方面,SAE 特地适宜有比拟大的流量稳定的在线业务,比方电商大促、在线教育等行业的场景。另外 SAE 作为利用平台也能够被下层的行业 Saas 所集成,帮忙用户更快地构建行业 Saas。

3. SAE 个性

通过下面的场景介绍,咱们能够看到 SAE 除了 Serverless 体验自身所带来的极致弹性、免运维等个性之外,重点在应用层给用户提供全栈的能力,包含对微服务的加强反对,以及整合了和利用非亲非故的能力,包含配置、监控、日志、流量管制等。再加上用户零代码的改变,是企业在线业务平滑上云十分好的抉择。

Serverless Kubernetes

1. ASK 概述

另一个阿里云提供的 Serverless 产品是 Serverless K8s。然而 K8s 怎么还能 Serverless 呢?这就须要先理解一下技术架构的演进历程。

最早的时候大家都把 Docker 镜像部署在虚机里,用户须要购买 ECS,而后部署镜像,最初是网络的一些配置,比方 SLB、EIP 等。在这个过程中,用户须要本人实现部署动作,扩容须要本人反复下面的动作,或者本人构建一套自动化脚本,相对来说老本和稳定性都比拟低。

之后有了 K8s 来帮大家解决容器编排的问题。这种标准化的形式的确大大提高了大家的生产力。用户通过应用 deployment、service 等规范的 K8s 的形式进行编排,并进行部署。但 K8s 的运维和治理还是绝对比较复杂的,技能要求比拟高,用户须要运维 ECS 以及通过 ECS 构建进去的 K8s。另外一个痛点时 K8s 集群里的 ECS 是须要事后购买的,如果客户的负载有比拟大的稳定,就会呈现比拟多的资源节约。尽管技术上也有解决方案,比方 worker node 的弹性,但这对于高级用户来说,还是有比拟高的复杂度。

那有没有一种计划能够让用户既能享受到 K8s 提供的容器编排能力,又可能不须要关怀 ECS 和 K8s 的运维、治理和弹性问题呢?这就是 Serverless K8s 的计划。对应到阿里云的产品就是 ASK。在 ASK 的计划里,用户创立一个 ASK 集群,但不须要指定任何 ECS 节点,而后通过规范的 K8s 容器编排、deployment 等部署镜像。ASK 会依据用户的负载需要,主动在底层资源池构建须要的 POD 并进行弹性伸缩,用户不再须要关怀容量布局、ECS 机器运维、资源限度等 LaaS 层的问题,十分便当。

2. ASK 典型场景

那 ASK 次要用在哪些场景里呢?首先能够用来跑在线业务,部署模式灵便,能够是 deployment、helm chart 等所有的 K8s 原生模式,特地是可能很好地应答突发流量,极致弹性,能够在 30 秒实现 500 个容器实例的弹性。这样的弹性效率,能够很好地撑持大数据计算类的工作,比方 Spark、Presto 等,也能够在须要的时候即时获取资源,撑持 10000 以上 Pod 的规格,无效升高客户老本。

另外一个非常适合的场景是用来构建随需启动的构建工作,比方在 ASK 中运行 jenkins、Gitlab-Runner 等。在有构建工作的时候,即时启动。没有工作的时候 0 生产,老本做到最低。这里只是列出了一些例子的场景,实际上基于 ASK 的这个个性,用户能够运行很多 K8s 原生的须要极致弹性的工作负载。

3. ASK 个性

ASK 齐全容器部署,通过容器进行隔离。在应用的过程中,用户无需运维 ECS 或者 K8s 集群,也不须要思考集群降级、容量布局、OS 及系统软件问题等事件,实践上能够提供有限的弹性容量。因为是齐全依照使用量进行免费,所以就不须要为限度资源付费。

总结

总结一下,能够看到阿里云明天在 Serverless 畛域有十分多样的产品,既有面向函数的函数计算,用户能够只关注代码,疾速开发交付;也有面向利用的 Serverless 利用引擎,让用户更关注利用视角,并且提供了围绕利用的一系列能力,包含监控、日志、流量等能力的集成;对于更习惯 K8s 生态的用户,ASK 让用户在不扭转以后 K8s 应用习惯的前提下,也能享受到 Serverless 的劣势。多样的产品,在满足不同用户诉求的同时,也使用户体验到了 Serverless 的免运维、极致弹性、按量付费等劣势。

退出移动版