自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 从 0 开始手把手带你搭建一套规范的 Flutter-mvp 项目工程环境

随着Flutter2.0的发布,Flutter对桌面和Web的支持也正式宣布进入stable渠道。相信过不了多久,Flutter必会成为另一主流。前一阵子,基于个人的需要以及想真正的体验一下Flutter开发,本人就使用Flutter开发了一款记账类APP。对于这次开发的体验总结一下:就是爽!开发体验非常棒!还没尝试过的同学可以从本文开始学习,从0开始搭建一套规范的Flutter项目工程环境。

2021-05-11 14:07:08 262

原创 开源啦!!!轻量级工作流引擎管理系统

控制面板对应的是右上角菜单缩小,可对画布进行缩小操作放大,可对画布进行放大操作适应,可对画布进行自适应操作上一步,可返回画布上一步下一步,返回画布后再回退清空,清空画布内容查看,查看流程数据,一共两个tab,分别查看json和xml数据,其中json为logicflow的数据结构,xml为snakerflow工作流引擎的流程定义文件的数据结构。导入,可导入json/xml流程数据,生成流程设置高亮,可导入高亮数据,设置流程图高亮保存,点击保存后,数据会同步到后端。

2023-12-20 14:34:29 1157 1

原创 工作流引擎设计与实现·任务的阻塞与执行

节点名称显示名称模型类start开始StartModelapply请假申请TaskModel部门领导审批TaskModelend结束EndModel。

2023-05-24 18:18:27 338

原创 工作流引擎设计与实现·条件流程执行

如上图渲染的流程图,可由以下两种流程定义文件生成。由决策节点的输出边属性来定义表达式,该表达式返回值为true/false注:以下json并非全部,缺少位置信息。"name" : "leave" , "displayName" : "请假" , "instanceUrl" : "leaveForm" , "nodes" : [ {"value" : "开始" } } , {"value" : "请假申请" } } , {"value" : "部门领导审批" } } , {

2023-05-24 18:16:44 230

原创 工作流引擎设计与实现·流程的简单执行

上文中已经对模型进行了高度的抽象,本文将对模型行为进行进一步说明。

2023-05-24 18:16:00 242

原创 工作流引擎设计与实现·解析流程定义文件

在上一篇我们手动构建了一个流程对象并简单打印执行,其构建流程对象的方式并不是很友好。为了更方便的构建流程对象,我们采用全新的方式,即解析基础篇提到的流程定义文件,并将其转成流程模型。

2023-05-24 18:15:59 283

原创 工作流引擎设计与实现·模型抽象

上文对工作流进行了一些基本的介绍,有了基础篇的内容,相信我们可以很容易抽象了一些实体模型:流程模型、开始节点模型、结束节点模型、任务节点模型、决策节点模型、分支节点模型、合并节点模型、边模型。

2023-05-24 18:14:45 395

原创 工作流引擎设计与实现·基础篇

在工作流中,业内习惯使用bpmn规范来定义流程,但是因该规范过于庞大且复杂,所以本工作流的设计并不采用该定义规范。而是以LogicFlow流程编辑器框架为基础,进行自定义扩展。(省去前端再次技术选型的问题)这里做一下简单的介绍。上文我们提到的流程元素就是构成流程的基础单元,其中各节点对应着LogicFlow的node,而输入/输出边则对应着LogicFlow的edge。

2023-05-24 18:01:02 722

原创 k8s中级篇-Helm安装nfs-client-provisioner

前言自建k8s集群,或要做持久化存储,一般都会选择nfs,而为了管理方便,我们一般都会安装nfs-client-provisinoner来动态创建存储。下面来介绍其安装与使用。环境主机名ip角色mldong01192.168.0.245mastermldong02192.168.0.54node01mldong03192.168.0.22node02三台主机为华为软开云的ECS,CentOS Linux release 7.6.1810 (Core)

2021-05-12 16:30:32 1079 4

原创 k8s中级篇-cert-manager+Let‘s Encrypt自动证书签发

前言说到免费的SSL证书,大家首先想到的肯定是Let’s Encrypt,而使用过Let’s Encrypt的同学应该也知道,其有效期只有三个月,三个月后要重新续期。github上也有类似的脚本可以做到自动续期。那如果是在k8s上使用该免费证书,又如何操作的呢?这里cert-manager就派上用场了。环境主机名ip角色mldong01192.168.0.245mastermldong02192.168.0.54node01mldong03192.168.0

2021-05-12 16:29:44 5803 2

原创 k8s中级篇-Helm安装与入门

前言相信对于包管理工具,大家肯定是不陌生的,如:java有maven/gradle、python有pip、nodejs有npm/yarn等,而k8s也有其包管理工具-helm。使用helm我们可以更为方便地将应用发布到k8s集群。环境主机名ip角色mldong01192.168.0.245mastermldong02192.168.0.54node01mldong03192.168.0.22node02三台主机为华为软开云的ECS,CentOS Li

2021-05-12 16:29:03 588

转载 k8s中级篇-使用rke安装k8s集群

前言之前为了快速入门学习k8s的编排,直接使用了阿里云上的k8s集群,本中级篇这里尝试一下从0-1搭建k8s集群,并演示一些更为经典的案例:如自建nfs服务器存储卷的使用、自动证书签发cert-manager let’s encrypt、rancher2.x、helm包管理工具等。环境主机名ip角色mldong01192.168.0.245mastermldong02192.168.0.54node01mldong03192.168.0.22node02

2021-05-12 16:28:10 529

原创 Centos7安装Rancher2.x并创建K8s集群

前言前面的文章大多是学习如何使用k8s,并没有怎么讲述k8s集群安装,本篇文章就安排上了,这次并没有使用官方的安装方式,而是使用Rancher。Rancher是一个开源软件平台,使组织能够在生产中运行和管理Docker和Kubernetes。使用Rancher,组织不再需要使用一套独特的开源技术从头开始构建容器服务平台。Rancher提供了管理生产中的容器所需的整个软件堆栈。环境主机名ip角色mldong01192.168.0.245mastermldong02

2021-05-12 16:27:01 472

原创 手把手带你玩转k8s-win10的k8s上搭建开发环境服务

前言上一篇在win10系统上安装了docker并启用了其集成的k8s的环境,同时也以nginx为例在k8s上跑了一个完整的实例。本文还是在该k8s集群上操作,安装我们在开发过程中使用的服务,如:mysql/redis/rabbitmq等。持久化上一篇为了演示方便并没有使用持久化存储,本文这里要安装开发环境中的服务,持久化是不可缺少的环节。共享目录创建目录(git bash)mkdir -p /d/mldong/docker-data/设置目录权限(git bash)chmod 7

2021-05-12 16:26:12 494

原创 手把手带你玩转k8s-win10上搭建k8s集群

前言前面的系列教程都是在阿里云上实践的,最近自己组装了一台台式电脑,装上了win10系统。为了让更多的小伙伴有机会学习k8s的编排,这里使用了另一个更为简单的方案——Docker for Windows。当然,使用mac的同学也可以使用Docker for Mac。其安装使用方式都大同小异。这里重点讲一下在win10上的安装。准备工作系统配置开始虚拟化先查看CPU是否支持虚拟化和是否已启用虚拟化。如果未启用,需要进入到BIOS进行设置,这里略。启用Hyper-V安装Docker for

2021-05-12 16:25:24 2933 2

原创 手把手带你玩转k8s-健康检查之存活探针与就绪探针

前言经过前面的一系列文章,我们对k8s应该也算是简单的入门了。本文开始,会逐步开始讲解一些进阶的知识点。在前面的文章中,我们主要是围绕如何完整地发布一个可对外访问的服务。其中重点是以springboot+vuejs前后端分离项目为主的。后续的文章也会是围绕springboot+vuejs,不过会基于其扩展一些新的服务,如redis、rabbitmq、elk等。关于健康检测健康检查(Health Check)是让系统知道您的应用实例是否正常工作的简单方法。 如果您的应用实例不再工作,则其他服务不应访问

2021-05-12 16:24:09 2960

原创 手把手带你玩转k8s-jenkins流水线发布vue项目

前言后端项目发布完了,本篇开始讲到前端项目,也就是前面开源的vue项目。其实编写流水线的思路都差不多,先梳理好流程,把流程定义好后,再使用Jenkins的流水线语法去编写流水线。这里的vue项目的发布也差不多。发布流程分析拉取代码打包生成静态文件执行k8s发布命令获取nginx持久化目录将静态文件复制到持久化目录因为在前面的一键脚本已经将流程实现过了,这里只需要将原来的shell转成流水线开始编码入参说明参数名默认值说明project_namemldong-

2021-05-12 16:23:09 1169

原创 手把手带你玩转k8s-jenkins流水线发布springboot项目

前言上一篇已经将流水线常用语法案例整理了。在这之前,也使用shell写过一键部署springboot项目的脚本。本文会综合前面的知识,编写一条完整的发布springboot到k8s集群的流水线。发布流程分析其实,发布流程都大同小异,只是看使用的是啥工具去实现发布流程,人工/shell/jenkins等拉取代码编译打包构建新的镜像推送到私有仓库使用模板生成新的发布yaml调用发布命令当然,基础流程是这样,但是有部分细节还是需要另外考虑。关于DockerfileDockerfile文

2021-05-12 16:21:40 1290

原创 手把手带你玩转k8s-jenkins流水线语法

前言上文讲了如何在docker上安装jenkins,并简单介绍了jenkins的使用,同时也演示了流水线的Hello World。本文会对流水线的一些常用语法进行演示和说明。为了与后续的实战案例更贴切,本文演示的语法样例会以实战案例中可能用到语法来进行说明。发布流程分析springboot项目发布流程拉取代码编译打包构建新的镜像推送到私有仓库调用发布命令vue项目发布流程拉取代码打包生成静态资源静态资源复制到指定目录调用发布命令案例详解简单的流水线说明pipeline

2021-05-11 14:25:02 852

原创 手把手带你玩转k8s-jenkins安装与流水线

前言本系列教程最主要的目地是使用k8s做持续集成,从本文开始,才算是正式进入主题。环境安装如果使用的是阿里云Kubernetes集群 ,可以安装其 ack-jenkins应用。5分钟在阿里云Kubernetes服务上搭建jenkins环境并完成应用构建到部署的流水线作业为了通用性,这里并没有使用ack-jenkins,而是使用官方的 jenkinsci/blueocean镜像。jenkins中文官网因为后面要讲的jenkins内容需要联网,但是之前购买的服务器是没有绑定公网ip的,这里也不想

2021-05-11 14:24:08 527

原创 手把手带你玩转k8s-常用对象详解

前言经过前面几篇文章的实战案例,相信我们对k8s是如何部署应用也有了一定的了解。虽然部署的模板并不一定是最优的,但是基本上能解决大多数应用的部署问题。本文会着重讲解一下前几篇文章用到的Kubernetes 对象。常用对象详解当创建 Kubernetes 对象时,必须提供对象的规约,用来描述该对象的期望状态,以及关于对象的一些基本信息(例如名称)。 当使用 Kubernetes API 创建对象时(或者直接创建,或者基于kubectl),API 请求必须在请求体中包含 JSON 格式的信息。 大多数

2021-05-11 14:23:02 561

原创 手把手带你玩转k8s-一键部署vue项目

前言在快速开发框架-前端篇中少了一个章节,就是关于vue工程的一键发布脚本设计和实现。本文就在此展开,并部署到k8s环境中。传统部署方式与k8s部署区别在没有使用k8s之前的前后端分离项目部署,一般是依托于宿主机上的nginx。前端静态资源走nginx,后端接口会使用nginx做代理。而此时,nginx是提前安装的,所以一键脚本并不会考虑nginx的安装与运行,只会将打包好静态资源放在指定目录。使用k8s之后,一键脚本会有的区别,除了打包静态资源放在指定目录上,还要考虑nginx实例的运行。传统

2021-05-11 14:22:15 2291

原创 手把手带你玩转k8s-一键部署springboot项目

前言本文的一键部署,其实就是将部署流程化的命令转成shell脚本,当然,因为是发布到k8s集群上,所以发布的命令和需要的东西会有些不一样。本文的一键部署脚本是基于 打造一款适合自己的快速开发框架-持续部署之一键发布脚本设计与实现这篇文章进行改造的。所以建议大家先把该篇文章先看一篇。知识准备关于基础镜像制作基础镜像一般可以直接使用openjdk: 8u212-jdk-alpine,但是直接使用的话,其功能还是不够,所以我们需要在其基础上进行加工。加入一些必要安装包。以及进行一些初始化工作。修改源

2021-05-11 14:21:02 771

原创 手把手带你玩转k8s-docker进阶Dockerfile与docker-compose

前言本系列文章主要还是围绕k8s的持续集成,但是一下子直奔主题可能跨度有点大,所以中间会穿插一些基础的知识。本文重点梳理一下docker的进阶知识——Dockerfile与docker-compose。因为很多人可能跟我之前一样入门学过docker,但是可能也只是简单的接触,觉得命令烦琐就放弃了。其实,当你学完dockerfile和docker-compose后,我相信你对docker的命令烦琐这个误解就会自动解除,然后会慢慢喜欢上docker。Dockerfile什么是DockerfileDock

2021-05-11 14:19:15 923

原创 手把手带你玩转k8s-完整的发布一个可对外访问的服务

前言连续撸了两篇文,但是还没真正的将服务对外访问,本文还是基于前两篇文的环境,完整的发布一个可对外访问的服务。当然,肯定还是先部署nginx,这里先简单画一下图。先梳理一下问题如图,先决条件:小A同学的公网ip为 47.92.133.211负载均衡器的绑定的公网ip为 47.92.133.212有两个域名a.mldong.com和b.mldong.comk8s集群中有两个服务a和b本文内容:如何配置,使访问a.mldong.com即为访问服务a,访问b.mldong.com即为访问服

2021-05-11 14:18:08 1730

原创 手把手带你玩转k8s-ConfigMap与持久化存储

前言k8s的存储方式有很多,本文重点讲一下ConfigMap和持久化存储-nfs。这也是k8s常用的存储方式。干讲的话不太好讲,所以会以nginx为例,因为nginx刚好同时需要以上两种存储方式。这里先简单的画一下图。本系列教程一共使用了三台服务器,其中一台可以联网,两台不可联网。k8s集群不可联网。nginx存储类型分析使用nginx的时候,最为关注的主要有以下两个目录:/etc/nginx/conf.d和/usr/share/nginx/html一个是配置文件目录,一个是静态资源目录。而一

2021-05-11 14:17:09 478

原创 手把手带你玩转k8s-集群创建和Hello World

前言因为公司业务发展需要,现在开始陆陆续续将swarm上的服务转到k8s了。而我也终于有机会开始k8s的学习(caikeng)之旅。这里不会对swarm和k8s进行对比,反正知道k8s比swarm更香就对了。本系列教程主要是面向想入门k8s但又无门的开发小伙伴。环境搭建本文的环境搭建并不是真的亲手去搭建,而是使用云平台的容器服务去创建k8s集群。目地很简单,专业的事就让专业的人去做。我们能把k8s使用得顺手就可以了,维护就让云平台帮做吧。当然主要原因还是想让大家能更快的上手使用k8s。云供应商很多,下

2021-05-11 14:15:35 684

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除