春色满园关不住,带你体验阿里云 Knative

简介: Knative 是基于 Kubernetes 的开源 Serverless 应用编排框架。阿里云 Knative 在社区Knative基础之上,与阿里云产品进行了深度的融合,给你带来最纯粹的容器化 Serverless 体验。

Knative 是基于 Kubernetes 的开源 Serverless 应用编排框架。阿里云 Knative 在社区Knative基础之上,与阿里云产品进行了深度的融合,给你带来最纯粹的容器化 Serverless 体验。

章程

  • 关于 Knative
    • Serverless 服务引擎 - Serving
    • Serverless 事件驱动 - Eventing
  • 阿里云 Knative
    • 阿里云产品融合
    • 阿里云 K8s 生态集成
  • 一个例子

关于Knative

Knative 是基于 Kubernetes 的开源 Serverless 应用编排框架。实际上 Knative 包含的不单单是 Workload,它还有 Kubernetes 原生的流程编排引擎和完备的事件系统。 Knative 目标是基于 Kubernetes 提供应用 Serverless 工作负载编排的标准化。Knative 核心模块主要包括事件驱动框架 Eventing 和部署工作负载的 Serving。

Serverless 服务引擎 - Serving

Knative Serving 核心能力就是其简洁、高效的应用托管服务,这也是其支撑Serverless 能力的基础。当然作为SeverlesssFramework 就离不开按需分配资源的能力,Knative 可以根据您应用的请求量在高峰时期自动扩容实例数,当请求量减少以后自动缩容实例数,可以非常自动化的帮助您节省成本。Serving 还提供了的流量管理能力和灵活的灰度发布能力。流量管理能力可以根据百分比切分流量,灰度发布能力可以根据流量百分比进行灰度

简单的应用模型

提供了极简的应用模型 - Knative Service,同时满足服务部署、服务访问以及灰度发布的能力。可以用下面的公式表述:Knative Service = 工作负载(Deployment)+服务访问(service)+灰度流量(Ingress)。应用模型如图:

 

  • Service: 对 Serverless 应用模型的抽象,通过Service 管理应用的生命周期
  • configuration: 用于配置应用期望的信息。每次更新Service 就会更新Configuration
  • revision: configuration的每次更新都会创建一个快照,用来做版本管理
  • route: 将请求路由到Revision,并可以向不同的Revision 转发不同比例的流量

 

  • 应用托管
    • Kubernetes 是面向 IaaS 管理的抽象,通过 Kubernetes 直接部署应用需要维护的资源比较多
    • 通过 Knative Service 一个资源就能定义应用的托管
  • 流量管理
    • Knative 通过 Gateway 结果应用流量,然后可以对流量按百分比进行分割,这为弹性、灰度等基础能力做好了基础
  • 灰度发布
    • 支持多版本管理,应用同时有多个版本在线提供服务很容易实现
    • 不同版本可以设置不同的流量百分比,对灰度发布等功能实现起来很容易
  • 弹性
    • Knative 帮助应用节省成本的核心能力是弹性,在流量增加的时候自动扩容,流量下降的时候自动缩容
    • 每一个灰度的版本都有自己的弹性策略,并且弹性策略和分配到当前版本的流量是相关联的。Knative 会根据分配过来的流量多少进行扩容或者缩容的决策

丰富的弹性策略

作为 Serverless 框架,其核心能力就是自动弹性,Knative中提供了丰富的弹性策略:

  • 基于流量请求的自动扩缩容-KPA
  • 基于CPU、Memory的自动扩缩容-HPA
  • 支持定时 + HPA的自动扩缩容策略
  • 事件网关,提供请求与Pod 1对1处理能力

Serverless 事件驱动框架 - Eventing

事件驱动是Serverless的标配,在Knative 同样提供了事件驱动框架-Eventing。

Knative 的 Eventing 提供了完整的事件模型,可以很容易地接入各个外部系统的事件。事件接入以后通过 CloudEvent 标准在内部流转。

在Knative Eventing提供两种事件转发方式:

  • 事件源直接转发到服务
  • 事件源转发到Broker/Trigger,然后通过过滤转发到服务

 

对于在使用过程中究竟应该使用哪种方式进行转发呢?其实很简单,broker/trigger模型是基于底层消息系统实现的,对于像github、gitlab、k8s apiserver这样的事件源来说,需要对消息事件进行缓冲处理、保证消息传输可靠性,那么我们建议通过事件源转发到Broker/Trigger进行事件流转。

对于事件源本身就是消息系统来说,像mns、kafka、rocketmq来说,使用事件源直接转发到服务更为高效。

讲到这里,就不得不提Knative的事件源。我把它比喻成事件驱动引擎,Knative Eventing正是通过这些事件源驱动事件流转。

Knative社区提供了丰富的事件源,如Kafka、GitHub等。此外还接入消息云产品事件源,如MNS、RocketMQ等。

阿里云Knative

阿里云 Knative 在社区原生的 Knative 之上,与阿里云资源体系进行了全方位的整合,提供了更为丰富的能力以及云产品级别的支持。

 

与阿里云产品融合

  • 丰富的消息云产品事件源:Kafka、MNS、RocketMQ
  • 服务访问:SLB
  • 存储:NAS、云盘等
  • 可观测性:日志服务、ARMS
  • IaaS资源:ECS、ECI

天然集成阿里云k8s生态

  • 支持阿里云标准版 Kubernentes,专有版Kubernentes
  • 支持阿里云Serverless Kubernetes(ASK), 并且在ASK中将 Knative 管控组件全托管, 为用户节省了资源以及运维成本。

一个例子

接下来以一个发送弹幕的示例来介绍一下如何玩转阿里云Knative。先看一下效果:

 

架构示意图

 

流程说明:

  • 用户通过弹幕web服务发送弹幕到阿里云kafka
  • Kafka Source事件源监听到弹幕消息,然后发送到弹幕消息处理服务
  • 弹幕消息处理服务接收到消息,然后自动弹性扩容实例进行消息处理,并将处理完成的消息发送给弹幕服务
  • 最后弹幕通过web服务界面展示给用户

 

具体实践活动(密透:完成有机会拿Cherry机械键盘):https://developer.aliyun.com/adc/series/ask?accounttraceid=82456b2a764b48bfa05663576c3025e8xihe

总结

最后我们总结一下阿里云 Knative 能给我们带来哪些能力:

  • 服务部署低门槛、易上手
  • Serverless 按需使用资源
  • 事件驱动与消息云产品无缝对接
  • 天然集成阿里云 K8s 生态
  • 与阿里云产品打通

希望这些能力能给你带来真正的按需使用,降低运维、资源使用成本的诉求,这也是 serverless 思想理念所追求的目标。

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513789.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python选择排序算法图解_python基本算法之实现归并排序(Merge sort)

0、前言 评判一个算法的好坏的标准: 时间复杂度 空间复杂度 1、归并排序算法是什么? 冒泡排序(Bubble Sort)是一种建立在归并操作上面的一种有效的排序算法,由John von neumann于1945年发明。采用分治法(Divide and Conquer&#…

从前端智能化看“低代码/无代码”

简介: 什么是低代码/无代码开发?业界对于低代码/无代码开发是否存在其他不同的理解?低代码开发和无代码开发之间的区别是什么? 作者 | 甄子 来源 | 阿里技术公众号 一 概念 1 什么是低代码/无代码开发?业界对于低代码…

初二物理模型有哪些_暑假新初二、新初三的数学该怎么学,教辅怎么买,题该怎么刷?看这里~...

这个暑假对于新初二和新初三的孩子都非常关键,因为下一学期的数学难度都要上升一个台阶,自古相传一句老话“初二两极分化,初三天上地下”,其实引起这么大化学反应的原因就是在于数学和科学这两门理科在八上和九上有了一个质变。我…

低代码会让程序员更加内卷吗?

作者| Mr.K 编辑| Emma来源| 技术领导力(ID:jishulingdaoli)今天的主题呢主要是来源于最近的一个很火的话题——『低代码』。低代码会不会让程序员更加内卷?要回答这个问题,需要先弄清楚:低代码适合做什么,不适合做什…

技术干货 | 应用上线前的“体检”,你知道需要检测哪些指标吗?

简介: 应用上线前检测哪些项目?如何检测?检测数据指标包括哪些? 随着越来越多的企业基于 mPaaS 搭建并上线新的 App,App 的上线质量也成为各个客户关注的重点。上线前检测哪些项目?如何检测?检…

python 机器学习_基于 Python 语言的机器学习工具Sklearn

本篇介绍了Sklearn机器学习基础,从Sklearn的简介,模块以及与tensorflow的优劣势对比来了解基于Python语言的机器学习工具。01、Sklearn简介sklearn(scikit-learn)是Python重要的学习库,它封装了机器学习中常用的算法,包括监督学习…

那些你不知道的TCP冷门知识!

简介: 最近在做数据库相关的事情,碰到了很多TCP相关的问题,新的场景新的挑战,有很多之前并没有掌握透彻的点,大大开了一把眼界,选了几个案例分享一下。 最近在做数据库相关的事情,碰到了很多TC…

CPU 可以跑多快?地球到火星的距离告诉你!

来源:码农的荒岛求生作者:码农的荒岛求生这张出自Google大神 Jeff Dean的图,展示系统中各种关键操作的时延具体有多少。需要注意的是这张图上的数据自2012年后就没有再更新过了,统计自2020年的最新数据见这里:这张图中…

步进电机五根线怎么接_步进驱动和伺服驱动的区别

概述步进电机主要是依相数来做分类,而其中又以二相、五相步进电机为目前市场上所广泛采用。二相步进电机每转最细可分割为400等分,五相则可分割为1000等分,所以表现出来的特性以五相步进电机较佳、加减速时间较短、动态惯性较低。随着全数字式…

可观测告警运维系统调研——SLS告警与多款方案对比

简介: 本文介绍对比多款告警监控运维平台方案,覆盖阿里云SLS、Azure、AWS、自建系统(ELK、Prometheus、TICK)等方案。 前言 本篇是SLS新版告警系列宣传与培训的第三篇,后续我们会推出20系列直播与实战培训视频&#…

Flagger on ASM·基于Mixerless Telemetry实现渐进式灰度发布系列 1 遥测数据

简介: 服务网格ASM的Mixerless Telemetry技术,为业务容器提供了无侵入式的遥测数据。遥测数据一方面作为监控指标被ARMPS/prometheus采集,用于服务网格可观测性;另一方面被HPA和flaggers使用,成为应用级扩缩容和渐进式…

Flagger on ASM——基于Mixerless Telemetry实现渐进式灰度发布系列 2 应用级扩缩容

简介: 应用级扩缩容是相对于运维级而言的。像监控CPU/内存的利用率就属于应用无关的纯运维指标,针对这种指标进行扩缩容的HPA配置就是运维级扩缩容。而像请求数量、请求延迟、P99分布等指标就属于应用相关的,或者叫业务感知的监控指标。 本篇…

自动替换 Kubernetes 镜像

来源:云原生指北作者:Addo Zhang最近萌生了个想法,维护一个后网络友好的仓库镜像,在 Pod 创建时将镜像仓库切换到自维护的仓库,从自维护的仓库拉取镜像。前几天体验了极狐Gitlab 的容器镜像库,便是为这个想…

Flagger on ASM——基于Mixerless Telemetry实现渐进式灰度发布系列 3 渐进式灰度发布

简介: 作为CNCF[成员](https://landscape.cncf.io/card-mode?categorycontinuous-integration-delivery&groupingcategory&selectedweave-flagger),[Weave Flagger](flagger.app)提供了持续集成和持续交付的各项能力。Flagger将渐进式发布总结为…

react 使用 leaflet 百度地图_【React】react项目中应用百度地图添加起始点绘制路线...

如图:项目中百度地图的应用添加起始点、终点并绘制路线在展示代码的时候首先展示一下后台返回给我的接口{其中position_list参数代表的是用户的行驶点, area参数代表的是服务区的坐标点,下面会用到参数下面开始展示代码了index.html引入百度地…

基线长度中误差的计算_电子战支援实施中的测向技术

派遣一个机载电子战机组执行支援压制敌防空系统任务,在任务计划阶段,全体人员将会获取任务区域内的EOB,机载电子战人员会优先识别他们在任务期间可能会遇到的威胁辐射源,以及其他中立、友好辐射源。当机载电子战人员进入目标作战区…

洞察设计模式的底层逻辑

简介: 设计模式是开发同学经常聊到的话题,也经常被用到实际的开发项目中,熟练的人可以做到信手拈来,不熟悉的人陷入苦思冥想中。笔者认为,不仅仅要掌握设计模式的用法,更要洞察设计模式的底层逻辑&#xff…

pta段错误是什么意思_用Python执行Django数据迁移时报!(1091错误及解决方法)...

前言:今天为大家带来的内容是用Python执行Django数据迁移时报!(1091错误及解决方法)本文内容具有不错的参考意义,希望在此能够帮助到大家!前几天在Pycharm 中的Terminal下,执行数据迁移操作时:第一步: Pyth…

cad大理石填充图案_CAD制图初学入门者必须知道的CAD填充问题

在使用浩辰CAD软件绘制图纸的过程中,经常会用到CAD填充功能。但是CAD制图初学入门者在进行CAD填充时偶尔会遇到一些问题,比如在自己的CAD软件中填充是完整的,但是在别人的CAD软件中打开却出现了缺口,这是什么原因呢?接…

苹果:iOS 比 Android 更安全!

整理 | 祝涛 出品 | CSDN据报道,在答复欧盟委员会数字市场行动的函件中,苹果援引诺基亚2019年、2020年的威胁情况报告称,安卓平台恶意软件的数量是iPhone的15~47倍。苹果称iOS比安卓安全就在于无法绕过商店安装软件,因此坚决…