【云原生】nuclio:一个高性能的“serverless”框架

news2024/11/24 16:01:37

文章目录

    • nuclio简介
    • Nuclio框架架构
    • 函数处理器
    • 事件响应模式
    • Dealer
    • 广泛的应用
    • 实时例子:车联网的事件驱动分析
    • 其他
      • 函数定义文件
      • 事件模型
      • 日志接口
      • 数据绑定模型
      • nuclio看板
      • CIL命令

nuclio简介

Nuclio是一个高性能的“无服务器”框架,专注于数据、I/O和计算密集型工作负载。它很好地集成了流行的数据科学工具,如Jupyter和Kubeflow;支持多种数据和流媒体源;并支持在cpu和gpu上执行。与其他serverless框架相比,nuclio解决了以下问题:

  • 实时处理,CPU/GPU和I/O开销最小,并行性最大
  • 与大量数据源、触发器、处理模型和ML框架的本地集成
  • 带有数据路径加速的有状态函数
  • 跨低功耗设备、笔记本电脑、边缘和预置集群以及公共云的可移植性
  • 开源,但为企业设计(包括日志记录、监控、安全性和可用性)

Nuclio框架架构

Nuclio整体框架核心包括:

  • nuctl:命令行工具,负责函数部署、服务发现等功能。
  • Playground:用于UI界面管理部署服务。
  • Dealer:起到中转作用,对云服务的job、任务、函数、用户UI、CLI等事件处理。负责事件监听,比如对于事件监听处理,包括HTTP请求事件、流请求事件、消息队列、数据库绑定。
  • Controller:用于底层平台绑定,比如Kubernetes、Cloud Provider…,整体上优于Kubernetes。
  • Builder:用于构建服务容器,部署远程或本地。在这里插入图片描述

函数处理器

Serverless最关键在于面向函数式编程,Function Processor作为函数处理引擎式nuclio核心模块,该部分由四部分组成。

  • 事件监听:把同步、异步、流、轮询事件作为函数的触发条件,起到调用服务的作用。
  • 数据绑定:用于绑定其他数据处理模块,包括RabbitMQ、Kafka等。
  • 函数worker:由用户自定义函数作为微服务,其语言可包括python、golang、ruby等。根据事件请求动态创建worker。
  • 控制框架:入口、日志、安全监控等。
  • 底层API:连接树莓派、docker、kubernetes、云基础设施。

【注】基础设施基于golang实现,golang直接调用内置go例程,其他语言一种类似与bash,另一种类似于socket
在这里插入图片描述

事件响应模式

事件包括四种模式:同步请求、异步消息队列、消息流、job(主/工)模式。
在这里插入图片描述

Dealer

通过spec文件,Dealer动态的分配任务到工作之中,分配后与POD Up/Down、事件变化没关系。
每一个任务由一个工作线程,例程负责该流或任务等检查点,工作执行取决于spec文件定义的min/max processors
在这里插入图片描述

广泛的应用

  • 数据获取:通过ETL或CDC获取数据,nuclio对数据丰富、聚合、预测。
  • 看板状态管理:nuclio dashboard管理服务。
  • 同步与备份:nuclio基于云服务商策略的同步与备份数据。
  • 事件处理:基于机器学习、大数据技术,nuclio完成复杂事件行为处理响应。

在这里插入图片描述

实时例子:车联网的事件驱动分析

实现不同数据流四个表以及地理地图的更新复杂事件的处理。
在这里插入图片描述

其他

函数定义文件

用于定义一个函数服务,包括版本、服务定义类型、函数服务镜像构建信息等。
在这里插入图片描述

事件模型

Event 接口获取上下文的请求等状态信息。
在这里插入图片描述

日志接口

利用Context.logger Interface保存日志信息,在云原生中日志是程序调试的依据。
在这里插入图片描述

数据绑定模型

Default Context.DataBinding API (sync & async ver), can be overwritten.
在这里插入图片描述

nuclio看板

用于在线编写函数,UI界面完成一键部署的服务。
在这里插入图片描述

CIL命令

nuclio提供的命令行控制工具,用于服务发现以及部署等操作。
在这里插入图片描述

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

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

相关文章

Signal tap 的各种用法

本文分为两部分,前一部分用于介绍signal tap基本功能,如果是初学者,看完这部分就可以用signal tap抓取一些简单的波形数据了。第二部分用于介绍一些特殊要求时的软件设置,比如连续触发,自定义触发条件等等。Signal Tap…

Linux从安装到实战+瑞吉外卖Linux项目部署

1.1虚拟机介绍1.2VMware Workstation虚拟化软件下载CentOS;5分钟教你下载安装VMware16虚拟机(含许可证密钥)【全免费VMware虚拟机 上集】_哔哩哔哩_bilibili1.3远程链接Linux系统 &FinalShell链接finalshell半天没连接进去他说ip adress 看IP地址不对…

【电子学会】2022年12月图形化一级 -- 和平使者

和平使者 1. 准备工作 (1)删除小猫角色; (2)选择背景Nebula,Space,删除默认的白色背景; (3)选择角色Dove。 2. 功能实现 (1)点击…

线程安全的集合类(多线程环境下使用ArrayList、队列及哈希表)

目录:多线程环境下使用ArrayList多线程环境下使用队列多线程环境下使用哈希表多线程环境下使用ArrayList在多线程环境下使用ArrayList可以有以下三种方式:1.使用同步机制 (synchronized 或者 ReentrantLock)2.Collections.synchronizedList(new ArrayLis…

Python __slots__:限制类实例动态添加属性和方法

那么,Python 是否也允许动态地为类或实例对象添加方法呢?答案是肯定的。我们知道,类方法又可细分为实例方法、静态方法和类方法,Python 语言允许为类动态地添加这 3 种方法;但对于实例对象,则只允许动态地添…

相机标定与3D重建(3)使用OpenCV对摄像机进行标定

相机已经存在很长很长时间了。然而,随着20世纪末廉价针孔相机的出现,针孔相机在我们的日常生活中司空见惯。不幸的是,这种廉价是有代价的:严重的扭曲。幸运的是,这些都是常量,通过标定和一些重新映射,我们可…

WebDAV之葫芦儿·派盘+GeniusScan

GeniusScan 支持WebDAV方式连接葫芦儿派盘。 推荐一款功能极其强大的手机微型扫描仪软件,可以将所有的东西扫描成为pdf格式的文档,还支持连接葫芦儿派盘服务。 GeniusScan让您的安卓设备变身微型扫描仪。它能让您快速扫描文档,将扫描结果保存JPEG或PDF格式,

【数字化】要点整理-《数据治理体系完整指南》

导读:本文整理内容来自一篇关于数据治理体系相对比较完整内容文章,体系化的范围介绍主要包括了介绍元数据、数据标准、数据建模、数据集成、数据质量、数据开发、数据安全、ETL。可以作为数据治理建设参考。01 数据治理体系02 元数据2.1、元数据解决的问…

先天性心脏病的6大症状,家长要重视治疗!

先天性心脏病是一种严重的心血管疾病,与遗传和环境有密切的关系,而且先天性心脏病越早治疗效果越好,因此要了解先天性心脏病的相关症状,能够更早的确诊病情,并提高患者的治愈几率。 天天性心脏病有哪些症状&#xff1f…

【链表面试题考察】

以下题目均为IO型。1.给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。题目示例如上:解题思路:双指针问题,给定指针prev和cur,从头结点开始往…

Unity SKFramework Documentation

文章目录Audio 音频背景音乐音效音频库Audio ListenerActions 事件Action 事件类型Action Chain 事件链Sequence 序列事件链Concurrent 并发事件链Timeline 时间轴事件链FSM 有限状态机State 状态State Machine 状态机State Builder 状态构建器ObjectPool 对象池IPoolable 接口…

2023 年 1 月的5篇深度学习论文推荐

本文整理了 2023 年 1 月5 篇著名的 AI 论文,涵盖了计算机视觉、自然语言处理等方面的新研究。 InstructPix2Pix: Learning to Follow Image Editing Instructions https://arxiv.org/abs/2211.09800v2 伯克利分校的研究人员开发了一种使用人工指令编辑图像的新方…

小程序项目学习--**第三章:WXSS-WXML-WXS语法**事件处理-组件化开发

第三章&#xff1a;WXSS-WXML-WXS语法事件处理-组件化开发 01_(掌握)WXML语法-基本规则和mustache语法 Page({data: {message: "Hello World",firstname: "kobe",lastname: "bryant",date: new Date().toLocaleDateString(),}, }) <!-- 1.Mu…

【HBase高级】5. HBase数据结构(上)跳表、二叉搜索树、红黑树、B、B+树

4. HBase事务 HBase 支持特定场景下的 ACID&#xff0c;即当对同一行进行 Put 操作时保证完全的 ACID。可以简单理解为针对一行的操作&#xff0c;是有事务性保障的。HBase也没有混合读写事务。也就是说&#xff0c;我们无法将读操作、写操作放入到一个事务中。 5. HBase数据…

CMMI高效落地 4大关键点要注意

CMM对企业降本增效、增强竞争力方面&#xff0c;优势明显。那么如何顺利进行CMMI认证&#xff1f;我们在CMMI认证时&#xff0c;需要注意哪些方面&#xff1f; 1、公司高层的支持 一个公司过程改进 工作的顺利施行&#xff0c;首先需要公司高层的支持。公司的商业目标、公司高层…

45_API接口漏洞

API接口漏洞 一、概念 api > application interface 应用接口 向特定的接口发送一个请求包 返回一个类似于json格式的字符串 二、REST型web service 可以从网上去搜索下api接口去理解,下面有个我找到的网址,给出api接口的分类 https://blog.csdn.net/t79036912/article…

【顺序表和链表的对比】

前言&#xff1a; 我们已经学习过了顺序表和链表的一些知识&#xff0c;在实际运用中我们不能笼统的说哪种存储结构更好&#xff0c;由于它们各有优缺点&#xff0c;选择哪种存储结构&#xff0c;则应该根据具体问题作出具体的分析&#xff0c;通常从空间性能和时间性能上作比较…

Day14【元宇宙的实践构想03】—— 元宇宙的资产观(NFT、数字资产、虚拟地产、与现实世界资产关系)

&#x1f483;&#x1f3fc; 本人简介&#xff1a;男 &#x1f476;&#x1f3fc; 年龄&#xff1a;18 ✍今日内容&#xff1a;《元宇宙的实践构想》03——元宇宙的资产观 ❗❗❗从1.31日开始&#xff0c;阿亮每天会查阅一些元宇宙方面的小知识&#xff0c;和大家一起分享。一是…

cobaltstrike的shellcode免杀

基础概念 shellcode是一段用于利用软件漏洞而执行的代码&#xff0c;也可以认为是一段填充数据&#xff0c;shellcode为16进制的机器码&#xff0c;因为经常让攻击者获得shell而得名。shellcode常常使用机器语言编写。 可在暂存器eip溢出后&#xff0c;塞入一段可让CPU执行的s…

vue入门到精通(七)

6、依赖注入 祖先组件向后代组件传值 6.1 provide() 提供一个值&#xff0c;可以被后代组件注入。 provide() 接受两个参数&#xff1a;第一个参数是要注入的 key&#xff0c;可以是一个字符串或者一个 symbol&#xff0c;第二个参数是要注入的值。 与注册生命周期钩子的 AP…