百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 博客教程 > 正文

Helm部署及使用

connygpt 2024-09-09 03:09 8 浏览

一、Helm介绍

Helm 是Deis 开发的一个用于Kubernetes 应用的包管理工具,主要用来管理 Charts。有点类似 CentOS 中的 yum包管理工具。可以很方便的将之前打包的好的yaml 文件部署到Kubernetes上。

1.1 为什么需要helm

kubernetes上的应用对象,都是由特定的资源描述组成,包括deploymentservice等,都保存各自文件中或集中写到一个配置文件中,然后通过kubectl apply -f ...进行部署。

如果应用只是一个或几个这样的服务组成,上面的部署方式足够了。而对于一个复杂的应用,会有很多类似上面的资源文件,例如微服务架构应用,组成应用的服务可能多达十个,几十个。如果有更新或回滚应用的需求,可能要修改和维护所涉及的大量资源文件,而这种组织和管理应用的方式就显得力不从心。且由于缺少对发布过的应用版本管理和控制,使Kubernetes上的应用和更新等面临诸多的挑战。主要面临以下几个问题:

  • 如何管理、编辑和更新这些分散的kubernetes应用配置文件。
  • 如何把一套相关的配置文件作为一个应用进行管理。
  • 如何分发和重用kubernetes的应用配置。

1.2 Helm组件

?? helm

Helm是一个命令行下的客户端工具,主要用于kubernetes应用程序Chart的创建、打包、发布和管理。

?? Tiller

Tiller 是 Helm 的服务端,部署在Kubernetes集群中,Tiller 用于接收 Helm 的请求,并根据 Chart 生成 kubernetes 的部署文件(Helm称为Release),然后提交给 Kubernetes 创建应用,Tiller 还提供了 Release 的升级、删除、回滚等一系列功能。

?? Chart

Helm 的软件包,采用 TAR 格式,类似于 yum 的 rpm包,其包含了一组定义 Kubernetes 资源相关的 YAML 文件。

?? Release

基于 Chart 部署实体,一个 chart 被 helm 运行后将会生成对应的一个 release;将在 kubernetes 中创建出真实运行的资源对象。

?? Repoistory

Helm 的软件仓库,Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository。

1.3 Helm 工作原理

下图描述了 Helm 的几个关键组件 Helm(客户端)、Tiller(服务器)、Repository(Chart软件仓库)、Chart(软件包)之间的关系。

Chart Install 过程

  • Helm 从指定的目录或者 TAR 文件中解析出 Chart 结构信息。
  • Heml 将指定的 Chart 结构和 Values 信息通过 gRPC 传递给 Tiller。
  • Tiller 根据 Chart 和 Values 生成一个 Release。
  • Tiller 根据 Release 发送给 Kubernetes 用于生成 Release。

Chart Update 过程

  • Helm 从指定的目录或者 TAR 文件中解析出 Chart 结构信息。
  • Helm 将需要更新的 Release 的名称、Chart结构和 Values 信息传递给 Tiller。
  • Tiller 生成 Release 并更新指定名称的 Release 和 History。
  • Tiller 将 Release 发送给 Kubernetes 用于更新 Release。

Chart Rollback 过程

  • Helm 将要回滚的 Release 的名称传递给 Tiller。
  • Tiller 根据 Release 的名称查找 History。
  • Tiller 从 History 中获取上一个 Release。
  • Tiller 将上一个 Release 发送给 Kubernetes 用于替换当前 Release。

Chart 处理依赖说明

Tiller 在处理 Chart 时,直接将 Chart 以及其依赖的所有 Charts 合并为一个 Release,同时传递给 Kubernetes。因此 Tiller 并不负责管理依赖之间的启动顺序。Chart 中的应用需要能够自行处理依赖关系。

1.4 Helm版本介绍

Helm2时期,添加了Tiller组件和GRPC来处理Helm chart的安装和管理,呈现chart并将它们推送到Kubernetes API服务器,2019年11月13日,Helm 团队发布了 Helm v3 的第一个稳定版本

架构变化

很明显从helm v3移除了 Tiller

Helm 3新特性

  • Release名称可以在不同命名空间重用
  • 支持将 Chart 推送至 Docker 镜像仓库中
  • 使用JSONSchema验证chart values
  • 其他特性如下
  1. 为了更好地协调其他包管理者的措辞 Helm CLI个别更名

helm delete` 更名为 `helm uninstall

helm inspect` 更名为 `helm show

helm fetch` 更名为 `helm pull

但以上旧的命令当前仍能使用

  1. 移除了用于本地临时搭建 Chart Repositoryhelm serve 命令。
  2. 自动创建名称空间

在不存在的命名空间中创建发行版时,Helm 2创建了命名空间。Helm 3遵循其他Kubernetes对象的行为,如果命名空间不存在则返回错误。

  1. 不再需要requirements.yaml, 依赖关系是直接在chart.yaml中定义。

二、Helm部署

helm 部署方式有很多,可以参考官方文档

2.1 helm v2 部署

1.下载helm

wget https://mirrors.huaweicloud.com/helm/v2.16.9/helm-v2.16.9-linux-amd64.tar.gz

2.安装配置

$ tar xvzf helm-v2.16.9-linux-amd64.tar.gz

$ cp -av linux-amd64/helm /usr/bin/

$ cp -av linux-amd64/tiller /usr/bin/

3.指定配置文件(此步骤视情况而定,比如rke部署的k8s集群则需要;kubeadm部署的集群默认在master节点则不需要)

$ vim /root/.shellrc

alias helm='helm --kubeconfig /home/rancher/kube_config_cluster.yml'

$ source /root/.shellrc

4.在kube-system命名空间中创建serviceaccount

$ kubectl create serviceaccount --namespace kube-system tiller

5.创建ClousterRoleBinding以授予tiller账户对集群的访问权限

$ kubectl create clusterrolebinding tiller-cluster-admin --clusterrole=cluster-admin --group=system:serviceaccounts --namespace=kube-system:tiller

6.安装helm server(tiller),注意保持版本号相同

$ helm init --service-account tiller --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.9 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts --force-upgrade

7.查看tiller服务是否正常运行

$ kubectl get pod -n kube-system -l app=helm

NAME READY STATUS RESTARTS AGE

tiller-deploy-79f8998f84-85lwq 1/1 Running 0 45s

8.查看版本(注意:client和server版本必须要保持一致)

$ helm version

Client: &version.Version{SemVer:"v2.16.9", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}

Server: &version.Version{SemVer:"v2.16.9", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}

补充:如果需要在kubernetes中卸载已部署的 Tiller, 可使用如下命令进行卸载

$ helm reset

2.2 helm v3 部署

helm v3已经移除了tiller,所以只需要部署helm客户端即可,即解压软件移动命令即可

$ wget https://mirrors.huaweicloud.com/helm/v3.2.1/helm-v3.2.1-linux-amd64.tar.gz

$ tar xvzf helm-v3.2.1-linux-amd64.tar.gz

$ cp -av linux-adm64/helm /usr/bin/

2.3 helm 常用命令

命令

描述

create

创建一个chart并指定名字

dependency

管理chart依赖

get

下载一个release。可用子命令:all、hooks、manifest、notes、values

history

获取release历史

install

安装一个chart

list

列出release

package

将chart目录打包到chart存档文件中

pull

从远程仓库中下载chart并解压到本地 # helm pull stable/mysql --untar

repo

添加,列出,移除,更新和索引chart仓库。可用子命令:add、index、list、remove、update

rollback

从之前版本回滚

search

根据关键字搜索chart。可用子命令:hub、repo

show

查看chart详细信息。可用子命令:all、chart、readme、values

status

显示已命名版本的状态

template

本地呈现模板

uninstall

卸载一个release

upgrade

更新一个release

version

查看helm客户端版本

2.4 添加Chart仓库

常用仓库如下:

  • 微软仓库(http://mirror.azure.cn/kubernetes/charts/)这个仓库强烈推荐,基本上官网有的chart这里都有。
  • 阿里云仓库(https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts )
  • 官方仓库(https://hub.kubeapps.com/charts/incubator)官方chart仓库,由于众所周知原因,在国内有点不好使,故不推荐。
  • elasticsearch (https://helm.elastic.co) elastic

添加仓库

添加微软仓库为 stable$ helm repo add stable http://mirror.azure.cn/kubernetes/charts"stable" has been added to your repositories 添加阿里云仓库为 aliyun$ helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts "aliyun" has been added to your repositories

查看仓库

$ helm repo list NAME  	URL                                                   stable	http://mirror.azure.cn/kubernetes/charts              aliyun	https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

查看一个仓库中所有的包

$ helm search repo stableNAME                                 	CHART VERSION	APP VERSION            	DESCRIPTION                                       stable/acs-engine-autoscaler         	2.2.2        	2.1.1                  	DEPRECATED Scales worker nodes within agent pools stable/aerospike                     	0.3.2        	v4.5.0.5               	A Helm chart for Aerospike in Kubernetes          stable/airflow                       	7.1.5        	1.10.10                	Airflow is a platform to programmatically autho...stable/ambassador                    	5.3.2        	0.86.1                 	DEPRECATED A Helm chart for Datawire Ambassador   stable/anchore-engine                	1.6.9        	0.7.2                  	Anchore container analysis and policy evaluatio...

删除仓库

$ helm repo remove aliyun"aliyun" has been removed from your repositories

三、Helm 基本使用

3.1 部署一个应用

这里示例通过helm部署一个MySQL进行示例

1.查找 chart

$ helm search repo mysqlNAME                            	CHART VERSION	APP VERSION	DESCRIPTION                                       stable/mysql                    	1.6.4        	5.7.30     	Fast, reliable, scalable, and easy to use open-.........

2.查看下这个chart的变量信息,这里将变量文件保存到本地,进行修改后再使用,这里我们将persistenceenabled改为false,表示不适用存储卷,查看变量文件可以发现会自动绑定pvc,但是这里没有提前准备pv,如果不修改也可以,先创建一个pv即可。

$ helm show values stable/mysql > values.yaml$ vim values.yamlpersistence:  enabled: false      # 修改为false  ## database data Persistent Volume Storage Class  ## If defined, storageClassName: <storageClass>  ## If set to "-", storageClassName: "", which disables dynamic provisioning  ## If undefined (the default) or set to null, no storageClassName spec is  ##   set, choosing the default provisioner.  (gp2 on AWS, standard on  ##   GKE, AWS & OpenStack)  ##  # storageClass: "-"  accessMode: ReadWriteOnce  size: 8Gi  annotations: {}

3.通过helm install进行安装,这里由于修改了values,所以通过-f指定了本地的values.yaml文件

$ helm install my-mysql -f values.yaml stable/mysqlNAME: my-mysqlLAST DEPLOYED: Sun Jun 21 13:35:04 2020NAMESPACE: defaultSTATUS: deployedREVISION: 1NOTES:MySQL can be accessed via port 3306 on the following DNS name from within your cluster:my-mysql.default.svc.cluster.local To get your root password run:     MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace default my-mysql -o jsonpath="{.data.mysql-root-password}" | base64 --decode; echo) To connect to your database: 1. Run an Ubuntu pod that you can use as a client:     kubectl run -i --tty ubuntu --image=ubuntu:16.04 --restart=Never -- shell -il 2. Install the mysql client:     $ apt-get update && apt-get install mysql-client -y 3. Connect using the mysql cli, then provide your password:    $ mysql -h my-mysql -p To connect to your database directly from outside the K8s cluster:    MYSQL_HOST=127.0.0.1    MYSQL_PORT=3306     # Execute the following command to route the connection:    kubectl port-forward svc/my-mysql 3306     mysql -h ${MYSQL_HOST} -P${MYSQL_PORT} -u root -p${MYSQL_ROOT_PASSWORD}

4.查看状态

$ helm list NAME    	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART      	APP VERSIONmy-mysql	default  	1       	2020-06-21 13:38:32.133419251 +0800 CST	deployed	mysql-1.6.4	5.7.30 # 查看发布状态$ helm status my-mysql# 查看pod状态$ kubectl get pods NAME                        READY   STATUS    RESTARTS   AGEmy-mysql-7557c5798c-lvshx   1/1     Running   0          35s

5.根据上面提示的查看密码,进行连接MySQL进行测试

$ kubectl get secret --namespace default my-mysql -o jsonpath="{.data.mysql-root-password}" | base64 --decode; echoi8MgJpwwZe$ kubectl exec -it my-mysql-7557c5798c-lvshx -- mysql -u root -pi8MgJpwwZe...... Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || sys                |+--------------------+4 rows in set (0.00 sec)

3.2 构建一个 Helm Chart

上面变示例了通过helm部署一个应用(MySQL)。我们也可以进行自行构建Chart进行部署。

Chart 目录结构说明

mychart/├── charts├── Chart.yaml├── templates│   ├── deployment.yaml│   ├── _helpers.tpl│   ├── hpa.yaml│   ├── ingress.yaml│   ├── NOTES.txt│   ├── serviceaccount.yaml│   ├── service.yaml│   └── tests│       └── test-connection.yaml└── values.yaml
  • Chart.yaml:用于描述这个 Chart 的基本信息,包括名字、描述信息以及版本等。
  • values.yaml:用于存储 templates 目录中模板文件中用到的变量的值。
  • templates:目录里面存放所有的 yaml 模板文件。
  • charts:目录里存放这个 chart 依赖的所有子 chart。
  • NOTES.txt:用于介绍 Chart 帮助信息,helm install 部署后展示给用户;例如:如何使用这个Chart,列出缺省的设置等。
  • _helpers.tpl:放置模板助手的地方,可以在整个 chart 中重复使用

示例

3.2.1 构建 Chart

1.首先通过create生成chart模板样式,进行修改即可,这里采用完全自定义,所以我们将用不到的yaml文件进行删除

$ helm create mychartCreating mychart$ tree mychart/mychart/├── charts├── Chart.yaml├── templates└── values.yaml 2 directories, 2 files

2.修改Chart.yaml文件,定义版本和名字等

$ cd mychart/$ vim Chart.yaml apiVersion: v2name: mychartdescription: A Helm chart for Kubernetestype: applicationversion: 0.1.0appVersion: 1.16.0

3.这里部署通过部署一个web站点nginx进行示例,首先通过kubectl create 生产一个deployment 模板进行修改,下面yaml文件中将 副本数(replicas)、name、image定义为了变量进行传递

$ kubectl create deployment deployment --image=nginx:1.12 --dry-run -o yaml > templates/deployment.yaml$ vim templates/deployment.yaml apiVersion: apps/v1kind: Deploymentmetadata:  labels:    app: deployment  name: {{ .Values.Name }}spec:  replicas: {{ .Values.replicas }}  selector:    matchLabels:      app: deployment  template:    metadata:      labels:        app: deployment    spec:      containers:      - image: {{ .Values.image }}        name: nginx

4.编写变量文件

$ vim values.yaml Name: mychart-deploy-demoreplicas: 3image: nginx:1.18.0

其实上面这两个文件的内容就已经算是一个可以安装的chart包了。

5.进行安装

$ helm install web mychart/NAME: webLAST DEPLOYED: Sun Jun 21 17:50:53 2020NAMESPACE: defaultSTATUS: deployedREVISION: 1TEST SUITE: None$ helm list NAME    	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART      	APP VERSIONmy-mysql	default  	1       	2020-06-21 17:15:24.316454342 +0800 CST	deployed	mysql-1.6.4	5.7.30 $ kubectl get pods -o wide NAME                                   READY   STATUS    RESTARTS   AGE   IP            NODE        NOMINATED NODE   READINESS GATESmychart-deploy-demo-8475948ddd-565kk   1/1     Running   0          11s   10.244.1.35   k8s-node1   <none>           <none>mychart-deploy-demo-8475948ddd-6d69h   1/1     Running   0          11s   10.244.2.33   k8s-node2   <none>           <none>mychart-deploy-demo-8475948ddd-gvqqv   1/1     Running   0          11s   10.244.2.32   k8s-node2   <none>           <none>

3.2.2 升级

1.首先进行访问测试,可以看到访问结果nginx版本为1.18.0

$ curl -I 10.244.1.35HTTP/1.1 200 OKServer: nginx/1.18.0Date: Sun, 21 Jun 2020 10:15:08 GMTContent-Type: text/htmlContent-Length: 612Last-Modified: Tue, 21 Apr 2020 12:43:12 GMTConnection: keep-aliveETag: "5e9eea60-264"Accept-Ranges: bytes

2.发布新版本的chart时,或者当要更改发布的配置时,可以使用helm upgrade命令,比如这里升级镜像为1.19.0

$ helm upgrade --set image=nginx:1.19.0 web mychartRelease "web" has been upgraded. Happy Helming!NAME: webLAST DEPLOYED: Sun Jun 21 18:20:10 2020NAMESPACE: defaultSTATUS: deployedREVISION: 2TEST SUITE: None$ kubectl get pods -o wide NAME                                   READY   STATUS    RESTARTS   AGE   IP            NODE        NOMINATED NODE   READINESS GATESmychart-deploy-demo-59fc9f9c7f-kk5mq   1/1     Running   0          15s   10.244.2.35   k8s-node2   <none>           <none>mychart-deploy-demo-59fc9f9c7f-w94zq   1/1     Running   0          12s   10.244.2.36   k8s-node2   <none>           <none>mychart-deploy-demo-59fc9f9c7f-x2pxg   1/1     Running   0          14s   10.244.1.39   k8s-node1   <none>           <none># 访问测试$ curl -I 10.244.1.39HTTP/1.1 200 OKServer: nginx/1.19.0Date: Sun, 21 Jun 2020 10:26:16 GMTContent-Type: text/htmlContent-Length: 612Last-Modified: Tue, 26 May 2020 15:00:20 GMTConnection: keep-aliveETag: "5ecd2f04-264"Accept-Ranges: bytes

可以看到已经升级镜像版本为1.19.0版本,如果有大量的改动,那么可以修改values文件,然后通过如下命令进行更新

$ helm upgrade -f values.yaml web mychart

3.2.3 回滚

如果在发布后没有达到预期的效果,则可以使用helm rollback回滚到之前的版本。通过helm history命令可以查看发布版本记录

$ helm history webREVISION	UPDATED                 	STATUS    	CHART        	APP VERSION	DESCRIPTION     1       	Sun Jun 21 18:24:41 2020	superseded	mychart-0.1.0	1.16.0     	Install complete2       	Sun Jun 21 18:25:27 2020	deployed  	mychart-0.1.0	1.16.0     	Upgrade complete

比如这里我们要回滚到第一个版本:

$ helm rollback web 1Rollback was a success! Happy Helming!

在通过helm history命令进行查看,可以看到后面的 DESCRIPTION还有详细版本说明。

$ helm history webREVISION	UPDATED                 	STATUS    	CHART        	APP VERSION	DESCRIPTION     1       	Sun Jun 21 18:24:41 2020	superseded	mychart-0.1.0	1.16.0     	Install complete2       	Sun Jun 21 18:25:27 2020	superseded	mychart-0.1.0	1.16.0     	Upgrade complete3       	Sun Jun 21 18:30:52 2020	deployed  	mychart-0.1.0	1.16.0     	Rollback to 1

还可以通过helm get manifest命令查看模板被渲染过后的资源文件

$ helm get manifest web---# Source: mychart/templates/deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata:  labels:    app: deployment  name: mychart-deploy-demospec:  replicas: 3  selector:    matchLabels:      app: deployment  template:    metadata:      labels:        app: deployment    spec:      containers:      - image: nginx:1.18.0        name: nginx

3.2.4 打包

如果我们需要将构建的Chart打包保存,并推送到charts仓库共享别人使用,则可以通过helm package命令进行打包

$ helm package mychart/Successfully packaged chart and saved it to: /root/helm/mychart-0.1.0.tgz

四、Helm 自定义安装

有时候我们需要安装应用,但是默认的chart的一些参数并不是我们需要的,这时候则需要我们自定义参数传给已有的 chart 进行安装应用。示例,下面将进行自定义安装MySQL

4.1 查看Chart默认value

$ helm show values stable/mysql......## Specify password for root user#### Default: random 10 character string# mysqlRootPassword: testing## Create a database user### mysqlUser:## Default: random 10 character string# mysqlPassword:## Allow unauthenticated access, uncomment to enable### mysqlAllowEmptyPassword: true## Create a database### mysqlDatabase:......persistence:  enabled: true......

在安装过程中传递配置数据的方式有两种:

  • --values(或-f):指定带有替代参数及值的YAML文件,可以多次指定,最后一个文件的优先级最高。
  • --set:在命令行上指定替代。

4.2 配置文件定义配置项

通过上面查看默认的变量中,我们进行自定义MySQL root用户密码,并安装完成自动创建一个应用用户及设置密码,并创建一个应用数据库helm;同事设定了不启用persistence

$ vim mysql_values.yamlmysqlRootPassword: te123mysqlUser: helmmysqlPassword: helm123mysqlDatabase: helmpersistence:  enabled: false

4.3 命令行定义配置项

$ helm install --set mysqlRootPassword=te123,mysqlUser=helm,mysqlPassword=helm123,mysqlDatabase=helm,persistence.enabled=false mysql-test stable/mysql

更多values yaml与set使用对应如下:

相关推荐

3分钟让你的项目支持AI问答模块,完全开源!

hello,大家好,我是徐小夕。之前和大家分享了很多可视化,零代码和前端工程化的最佳实践,今天继续分享一下最近开源的Next-Admin的最新更新。最近对这个项目做了一些优化,并集成了大家比较关注...

干货|程序员的副业挂,12个平台分享

1、D2adminD2Admin是一个完全开源免费的企业中后台产品前端集成方案,使用最新的前端技术栈,小于60kb的本地首屏js加载,已经做好大部分项目前期准备工作,并且带有大量示例代码,助...

Github标星超200K,这10个可视化面板你知道几个

在Github上有很多开源免费的后台控制面板可以选择,但是哪些才是最好、最受欢迎的可视化控制面板呢?今天就和大家推荐Github上10个好看又流行的可视化面板:1.AdminLTEAdminLTE是...

开箱即用的炫酷中后台前端开源框架第二篇

#头条创作挑战赛#1、SoybeanAdmin(1)介绍:SoybeanAdmin是一个基于Vue3、Vite3、TypeScript、NaiveUI、Pinia和UnoCSS的清新优...

搭建React+AntDeign的开发环境和框架

搭建React+AntDeign的开发环境和框架随着前端技术的不断发展,React和AntDesign已经成为越来越多Web应用程序的首选开发框架。React是一个用于构建用户界面的JavaScrip...

基于.NET 5实现的开源通用权限管理平台

??大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标!??今天小编推荐一款基于.NE...

StreamPark - 大数据流计算引擎

使用Docker完成StreamPark的部署??1.基于h2和docker-compose进行StreamPark部署wgethttps://raw.githubusercontent.com/a...

教你使用UmiJS框架开发React

1、什么是Umi.js?umi,中文可发音为乌米,是一个可插拔的企业级react应用框架。你可以将它简单地理解为一个专注性能的类next.js前端框架,并通过约定、自动生成和解析代码等方式来辅助...

简单在线流程图工具在用例设计中的运用

敏捷模式下,测试团队的用例逐渐简化以适应快速的发版节奏,大家很早就开始运用思维导图工具比如xmind来编写测试方法、测试点。如今不少已经不少利用开源的思维导图组件(如百度脑图...)来构建测试测试...

【开源分享】神奇的大数据实时平台框架,让Flink&amp;Spark开发更简单

这是一个神奇的框架,让Flink|Spark开发更简单,一站式大数据实时平台!他就是StreamX!什么是StreamX大数据技术如今发展的如火如荼,已经呈现百花齐放欣欣向荣的景象,实时处理流域...

聊聊规则引擎的调研及实现全过程

摘要本期主要以规则引擎业务实现为例,陈述在陌生业务前如何进行业务深入、调研、技术选型、设计及实现全过程分析,如果你对规则引擎不感冒、也可以从中了解一些抽象实现过程。诉求从硬件采集到的数据提供的形式多种...

【开源推荐】Diboot 2.0.5 发布,自动化开发助理

一、前言Diboot2.0.5版本已于近日发布,在此次发布中,我们新增了file-starter组件,完善了iam-starter组件,对core核心进行了相关优化,让devtools也支持对IAM...

微软推出Copilot Actions,使用人工智能自动执行重复性任务

IT之家11月19日消息,微软在今天举办的Ignite大会上宣布了一系列新功能,旨在进一步提升Microsoft365Copilot的智能化水平。其中最引人注目的是Copilot...

Electron 使用Selenium和WebDriver

本节我们来学习如何在Electron下使用Selenium和WebDriver。SeleniumSelenium是ThoughtWorks提供的一个强大的基于浏览器的开源自动化测试工具...

Quick &#39;n Easy Web Builder 11.1.0设计和构建功能齐全的网页的工具

一个实用而有效的应用程序,能够让您轻松构建、创建和设计个人的HTML网站。Quick'nEasyWebBuilder是一款全面且轻巧的软件,为用户提供了一种简单的方式来创建、编辑...