Knative 极致 Serverless 体验(一)|学习笔记

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 快速学习 Knative 极致 Serverless 体验(一)

开发者学堂课程【如何通过 Knative 轻松实现应用 Serverless 化交付  Knative 极致 Serverless 体验(一)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/291/detail/3431


Knative 极致 Serverless 体验(一)


 内容介绍

1.为什么需要 Knaltlive

2.Knative Sarving 简介

3.Knatiwe 和云的完美融合

4.动手实践

5.总结

 

一、为什么需要 Knaltlive

Serverless 当前已是万众期待,未来可期,各种调查报告显示企业和开发者已经在使用 Serverless 构建线上服务,而且这个比例还在不断增加。在这个大趋势下,最初企业线上服务都是基于 VM 的方式使用云资源,都是通过工具裸部署在VM中。直接在VM中启动应用导致线上服务对VM有很强的依赖。然后伴随着容器的崛起,大家开始在容器技术中部署应用。但如果有十几甚至几十个应用需要部署,就需要在 vm 中成百上千进行部署,而 Knaltlives 很好的解决了这个问题。

1、Serverless 应用的共同的特质

1按需使用,自动弹性。按需使用云资源,应用量上涨的时候自动扩容,应用量降低的时候自动缩容。所以需要具备自动弹性的能力。

2灰度发布。要能支持多版本管理,应用升级的时候可以使用各种灰度发布策略上线新的版本。

3流量管理。能够管理流量,对不同版本进行灰度。

4负载均衡、服务发现。应用弹性过程中自动增加或者减少,所以说需要具备负载均衡、服务发现

5Gateway(网关)多个应用在同一集群中需要对同一应用的不同版本进行管理。

2、弹性和按实例数发布的矛盾

首先需要一个 Deployment 来管理 Workload,还需要通过 Service 对外暴露服务和实现服务发现的能力。应用有重大变更,新版本发布时可能需要暂停观察,待观察确认没问题之后再继续增加灰度的比例。这时就要使用两个 Deployment 才能做到。

v1 Deployment 代表旧版本,灰度的时候逐一减少实例数;

v2 Deployment 代表新版本,灰度的时候逐一增加实例数。

hpa 代表弹性能力,每一个 Deployment 都有一个 hpa 管理弹性配置。这其中其实是有冲突的:假设 v1 Deploymen 原本有三个 pod,灰度的时候升级一个 pod 到 v2,此时其实是 1/3 的流量会打到 v2 版本上。但当业务高峰到来后,因为两个版本都配置了 hpa,所以 v2 和 v1 会同时扩容,最终 v1 和 v2 的 pod 数量就不是最初设置的 1/3 的比例了。

所以传统的这种按照 Deployment 实例数发布的灰度策略和弹性配置天然是冲突的。而如果按照流量比例进行灰度就不会有这个问题,这可能就要引入 Istio 的能力。

image.png

3、引入流量管理网管

引入 Istio 作为 Gateway 组件,Istio 除了管理同一个应用的流量灰度,还能对不同的应用进行流量管理。看起来很好,但是仔细分析一下存在什么问题。先梳理一下在原生 K8s 之上手动管理 Serverless 应用都需要做什么:

· Deployment

· Service

· HPA

· Ingress

· Istio

· VirtualService

· Gateway

这些资源是每一个应用维护一份,如果是多个应用就要维护多份。这些资源散落在 K8s 内,根本看不出来应用的概念,另外管理起来也非常繁琐。

4、在 K8s 之上的应用编排抽象

Serverless 应用需要的是面向应用的管理动作,比如应用托管、升级、回滚、灰度发布、流量管理以及弹性等功能。而 Kubernetes 提供的是 IaaS 的使用抽象。所以 Kubernetes 和 Serverless 应用之间少了一层应用编排的抽象。

而 Knative 就是建立在 Kubernetes 之上的 Serverless 应用编排框架。除了 Knative 以外,社区也有好几款 FaaS 类的编排框架,但这些框架编排出来的应用没有统一的标准,每一个框架都有一套自己的规范,而且和 Kubernetes API 完全不兼容。不兼容的 API 就导致使用难度高、可复制性不强。云原生的一个核心标准就是 Kubernetes 的 API 标准,Knative 管理的 Serverless 应用保持 Kubernetes API 语义不变。和 Kubernetes API 具有良好的兼容性,就是 Knative 的云原生特性所在。

5、Knative 是什么呢?

Knative 主要解决的问题就是在 Kubernetes 之上提供通用的 Serverless 编排、调度服务,给上层的 Serverless 应用提供面向应用层的原子操作。并且通过 Kubernetes 原生 API 暴露服务 API,保持和 Kubernetes 生态工具链的完美融合。Knative 有 Eventing 和 Serving 两个核心模块,本文主要介绍 Serving 的核心架构。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
5月前
|
运维 物联网 关系型数据库
关于阿里云Serverless 框架的产品体验
阿里云Serverless框架简化运维,实现5分钟一键部署。弹性伸缩、按需付费等特点让企业专注业务创新,降低成本与运维负担。适用于Web应用、数据分析、物联网等多种场景,支持快速迭代与多语言开发。尽管面临资源配额、网络配置等挑战,其竞争力在于成本节约、功能集成与性能优化,尤其适合追求高效开发与弹性扩展的团队。
100 1
|
6月前
|
弹性计算 运维 监控
体验Serverless架构
体验Serverless架构
|
运维 监控 Kubernetes
带你读《云原生架构白皮书2022新版》——爱奇艺体育:体验 Serverless 极致扩缩容,资源利用率提升 40%(上)
带你读《云原生架构白皮书2022新版》——爱奇艺体育:体验 Serverless 极致扩缩容,资源利用率提升 40%(上)
294 12
|
弹性计算 运维 监控
带你读《云原生架构白皮书2022新版》——爱奇艺体育:体验 Serverless 极致扩缩容,资源利用率提升 40%(下)
带你读《云原生架构白皮书2022新版》——爱奇艺体育:体验 Serverless 极致扩缩容,资源利用率提升 40%(下)
243 11
|
运维 大数据 Serverless
极致体验!基于阿里云 Serverless 快速部署 Function
云计算的不断发展,涌现出很多改变传统 IT 架构和运维方式的新技术,而以虚拟机、容器、微服务为代表的技术更是在各个层面不断提升云服务的技术能力,它们将应用和环境中很多通用能力变成了一种服务。但无论这些技术应用在哪里,帮助企业 “降本增效” 是技术变革永恒的主题。
极致体验!基于阿里云 Serverless 快速部署 Function
|
编解码 弹性计算 运维
serverless 入门与实践40 | 优化 20% 资源成本,新东方的 Serverless 实践之路
serverless 入门与实践40 | 优化 20% 资源成本,新东方的 Serverless 实践之路
164 0
serverless 入门与实践40 | 优化 20% 资源成本,新东方的 Serverless 实践之路
|
人工智能 运维 自然语言处理
serverless 入门与实践37 | 学习笔记: TapTap 算法平台的 Serverless 探索之路
serverless 入门与实践37 | 学习笔记: TapTap 算法平台的 Serverless 探索之路
220 0
serverless 入门与实践37 | 学习笔记: TapTap 算法平台的 Serverless 探索之路
|
Kubernetes 负载均衡 Cloud Native
Knative 极致 Serverless 体验|学习笔记(一)
快速学习 Knative 极致 Serverless 体验
Knative 极致 Serverless 体验|学习笔记(一)
|
运维 Kubernetes Serverless
Knative 极致 Serverless 体验|学习笔记(二)
快速学习Knative 极致 Serverless 体验
Knative 极致 Serverless 体验|学习笔记(二)
|
运维 监控 大数据
基于阿里云 Serverless 快速部署 Function 的极致体验
“Serverless 真正做到了部署应用无需涉及基础设施的建设,自动构建、部署和启动服务;不仅降低了应用运维复杂度和成本,还使软件应用的开发效率提高,缩短了产品的上市时间。”
基于阿里云 Serverless 快速部署 Function 的极致体验

相关产品

  • 函数计算