工作流

容器化的 DevOps 工作流

自古美人都是妖i 提交于 2020-03-20 20:51:38
原文: 容器化的 DevOps 工作流 对于 devops 来说,容器技术绝对是我们笑傲江湖的法宝。本文通过一个小 demo 来介绍如何使用容器技术来改进我们的 devops 工作流。 devops 的日常工作中难免会有一些繁琐的重复性劳动。比如管理 Azure 上的各种资源,我们会使用 Azure CLI 工具。同时我们也会使用 Ansible 完成一些自动化的任务。当我们同时使用二者的时候就会碰到一些尴尬的事情:Azure CLI 依赖的 python 版本为 3.x,而 Ansible 的主流版本还在依赖 python 2.x。如果我们要同时使用二者,就需要在环境中搞一些飞机。如果团队中的每个成员都需要使用这样的工具,那么每个人的环境中都需要这些飞机!下面是一些比较类似的问题: 一些工作流在陌生的环境中不能正确的工作 在工作流中加入新的工具时,整个团队都需要获取并安装这些新的工具 运行 devops 工作流不能对当前的环境产生影响(应该允许在 build 环境中运行 devops 工作流) 工作流的变化不会对运行环境产生任何的影响 实现这些需求的最好方式就是容器技术!通过容器把我们的 devops 工作流和运行环境隔离开就可以了。文本的 demo 会演示一个非常简单的使用 Azure CLI 的工作流,我们的目标是为整个团队打造一个满足以上需求的工具集(容器镜像)

工作流引擎activiti和jbpm哪个比较好

柔情痞子 提交于 2020-03-19 17:23:58
在常用的ERP系统、OA系统的开发中, 工作流引擎 是一个必不可少的工具。之前在选择工作流引擎时曾经在activiti和jbpm之间有过比较,当时做出的决定是使用jbpm,但实际开发过程中发现这个选择是不合适的。目前我们改为选择Activiti作为工作流模块的引擎,理由如下: 1、Activiti拥有更简洁健壮的接口 JBPM自从版本五后,便重启炉灶,完全抛弃了JBMP4的代码基础,重新基于drools进行了实现。JBPM5,JBPM6似乎缺少一个合格的系统架构师,其接口设计匪夷所思,基本上是按照drools的接口再提供了一套JBPM接口,同名的接口,实现类不断重复出现,代码体系十分混乱。 一个典型的例子,同样是查询待办事项,在JBPM中接口如下: List<TaskSummary> getTasksAssignedAsBusinessAdministrator(String userId, String language); List<TaskSummary> getTasksAssignedAsExcludedOwner(String userId, String language); List<TaskSummary> getTasksAssignedAsPotentialOwner(String userId, String language); @Deprecated

Activiti工作流实战使用总结

两盒软妹~` 提交于 2020-03-19 17:23:13
作流在我们日常的工作中用得可谓相当普及,尤其在企业内部管理系统,如考勤、财务、合同等系统中更是离不开它。在我们金融科技领域,工作流主要用于贷款审批、风控审核等环节。由于工作流具有一定的门槛,国内尚没有能满足企业级应用的工作流开源框架,一些国内CMS开源项目号称支持的工作流也只是对Activiti的简单引入或者是较简单的工作流实现,还不能完整的满足一般企业应用。 Activiti是目前最热门的开源工作流框架,但是由于中西方文化差异及组织架构上的不同,拿Activiti来做中国式的企业级应用难度很高,需要做大量的改造。如果JAVA底子不好推荐XJR快速开发框架,基于国内企业级需求自主开发的一款java开发框架。通过图形化、可视化的简单拖拉设置操作,快捷设计出我们所需的表单、APP、流程、报表等,可开发各种管理信息系统。 这里记录下Activiti工作流常见的思考点及解决思路,实际碰到的问题会更多且更复杂。 1、待办已办在Activiti相关API中是面向任务的,需求是面向流程的 比如,如下图的需求 在Activit中一个流程是有多个Task组成,而我们中国式的审批需求是一个流程只允许出现一次,哪怕这个流程你在审批过程中参与过两次以上的审批任务,也仅需要显示一次。 这里就需要将TaskService查询出来的任务再按流程实例ID进行去重,去重后任务查询api的分页会变得不可用

Activiti工作流实战使用总结

大憨熊 提交于 2020-03-19 17:22:57
作流在我们日常的工作中用得可谓相当普及,尤其在企业内部管理系统,如考勤、财务、合同等系统中更是离不开它。在我们金融科技领域,工作流主要用于贷款审批、风控审核等环节。由于工作流具有一定的门槛,国内尚没有能满足企业级应用的工作流开源框架,一些国内CMS开源项目号称支持的工作流也只是对Activiti的简单引入或者是较简单的工作流实现,还不能完整的满足一般企业应用。 Activiti是目前最热门的开源工作流框架,但是由于中西方文化差异及组织架构上的不同,拿Activiti来做中国式的企业级应用难度很高,需要做大量的改造。如果JAVA底子不好推荐XJR快速开发框架,基于国内企业级需求自主开发的一款java开发框架。通过图形化、可视化的简单拖拉设置操作,快捷设计出我们所需的表单、APP、流程、报表等,可开发各种管理信息系统。 这里记录下Activiti工作流常见的思考点及解决思路,实际碰到的问题会更多且更复杂。 1、待办已办在Activiti相关API中是面向任务的,需求是面向流程的 比如,如下图的需求 在Activit中一个流程是有多个Task组成,而我们中国式的审批需求是一个流程只允许出现一次,哪怕这个流程你在审批过程中参与过两次以上的审批任务,也仅需要显示一次。 这里就需要将TaskService查询出来的任务再按流程实例ID进行去重,去重后任务查询api的分页会变得不可用

工作流-流程实例与执行实例

≯℡__Kan透↙ 提交于 2020-03-17 13:39:37
某厂面试归来,发现自己落伍了!>>> 数据库 首先,流程实例和执行实例( ProcessInstance 与 Execution )对应的数据库表都是 ACT_RU_EXECUTION ,其中 ID_ 是执行实例, PROC_INST_ID_ 是流程实例。 Execution 的含义就是一个流程实例( ProcessInstance )具体要执行的过程对象,其中 ProcessInstance 与 ProcessInstance 的对应关系是 1:N(N>=1) 。 来源: oschina 链接: https://my.oschina.net/u/2555967/blog/3196613

Activiti工作流实战使用总结

一曲冷凌霜 提交于 2020-03-17 12:35:45
工作流在我们日常的工作中用得可谓相当普及,尤其在企业内部管理系统,如考勤、财务、合同等系统中更是离不开它。在我们金融科技领域,工作流主要用于贷款审批、风控审核等环节。由于工作流具有一定的门槛,国内尚没有能满足企业级应用的工作流开源框架,一些国内CMS开源项目号称支持的工作流也只是对Activiti的简单引入或者是较简单的工作流实现,还不能完整的满足一般企业应用。 Activiti是目前最热门的开源工作流框架,但是由于中西方文化差异及组织架构上的不同,拿Activiti来做中国式的企业级应用难度很高,需要做大量的改造。如果JAVA底子不好可以试试XJR快速开发框架,基于国内企业级需求自主开发的一款java开发框架。通过图形化、可视化的简单拖拉设置操作,快捷设计出我们所需的表单、APP、流程、报表等,可开发各种管理信息系统。 这里记录下Activiti工作流常见的思考点及解决思路,实际碰到的问题会更多且更复杂。 1、待办已办在Activiti相关API中是面向任务的,需求是面向流程的 比如,如下图的需求 在Activit中一个流程是有多个Task组成,而我们中国式的审批需求是一个流程只允许出现一次,哪怕这个流程你在审批过程中参与过两次以上的审批任务,也仅需要显示一次。 这里就需要将TaskService查询出来的任务再按流程实例ID进行去重,去重后任务查询api的分页会变得不可用

Openstack Mistral 工作流组件介绍

拟墨画扇 提交于 2020-03-16 17:54:18
某厂面试归来,发现自己落伍了!>>> Mistrial是mirantis公司为openstack开发的工作流组件,提供WorkFlow as a service。 典型的用户用例包括云平台的任务计划服务(Cloud Cron),任务调度(Task Scheduling), 复杂的运行时间长的业务流程服务。目前项目还在开始阶段。对应的是AWS的SWS(Simple WorkFlow Service)。 项目wiki: https://wiki.openstack.org/wiki/Mistral 项目Code: https://github.com/stackforge/mistral 1. 基本术语 Workbook: 工作本,用户的工作流接口,可以理解成一篇任务文档用来录入用户的工作流程,步骤,需要完成的任务。每个任务的执行顺序,依赖关系,以及每个任务完成之后产生的事件。站在用户的角度,这篇文档完整的记录了某项任务的流程,让执行者能够清楚怎么完成。站在开发人员的角度,为了方便编程。定义了一种新的语言DSL(下面会有介绍),用来描述整个工作流。 Task: 即工作流的具体步骤。可以是Action的集合。 Action: Mistral的最小单位。特指一个具体的工作,比如说发送一个HTTP请求,或者运行某条命令。 Flow:工作流。 指的是Mistral系统中如何执行task

实战篇:工作流之快速开发

狂风中的少年 提交于 2020-03-16 17:17:18
某厂面试归来,发现自己落伍了!>>> 大家好,今天我来跟大家分享下我的撸码心得。说到这工作流的设计啊,还是要从我的坑爹主管说起!情况是这样的: 测试小姐姐:“程序猿哥哥,今天不用修复BUG,有时间聊一下吗?” 我还没来得及回复,主管的微信头像就在闪了,准没好事。 主管:“小马啊,我这边有一个小任务要交给你!” 我:“主管,你有什么事尽管说?” 主管:“那个公司想做开发,要用到工作流,工作流程设计的任务就交给你了,上头催得比较紧,你这几天就给我干出来吧!” 主管说完,就把要用到工作流中设计了的四个表甩给我。 表1:流程单头表 表2:流程单身表 表3:单据单头表 表4:单据单身表 我一看只差没直接哭了~~~啊,咋办~~~ 开玩笑!这坑爹主管真是使劲坑我啊,什么基础雏形的东西都不给我。我去?!这让我搞个毛线咯?!幸好马哥人脉广阔,在基友群里发了个江湖救急!就有哥们给我推荐了个快速开发工具!真是帮大忙了,真是靠谱!主管也知道这个工作流不是一件容易的事情,IT部就3个人,我直接把这个快速开发工具扔给他。公司的项目基本上是我完成的,比较信任我,他后面采纳了用快速开发工具来做。我还准备了好多草稿打算说服他,要是不同意,我就直接撂摊子不干了。 下面看看用这个快速开发工作流的框架实战例子。请假流是OA系统的最基本的,从这个干起吧。公司请假流程,首先要有个请假表单,借助这个开发工具

Windows Workflow Foundation之旅(六)——框架组成、工作流创作模式

被刻印的时光 ゝ 提交于 2020-03-16 06:38:48
Windows Workflow Foundation 之旅(六)——框架组成 翻译自: ms-help://MS.WinWF.v1.EN/WinWF_GettingStarted/html/68db11eb-3d20-41ca -90f 7-ae635fd4e 2a 2.htm 这个专题前面的三个指南,介绍了 WWF 编程了三个大方面: 顺序工作流 、 状态机工作流 和自 定义活动 。相信大家对 WWF 的编程模型已经有了一个初步的了解。从这次开始,我们就要深入 WWF ,全面的探究一下 WWF 。 传统的编程语言是针对短期运行应用程序的,缺乏 持久化 和 抗中断 的功能支持。 WWF 是一个框架,不是一种语言。他对工作流应用程序有深刻的认识,提供了各种手段来处理持久化,中断补偿,故障恢复等功能。 WWF 同时具有 灵活性 和 可扩展性 。你可以直接用代码定义工作流,也可以用外部的定义语言也定义,或同时使用两者。你可以用你自己的自定义活动来实现自定义的工作流模式,以到达可重用的目的。 WWF 支持 模型驱动 的开发,提供了 可视化 的设计工具,并隐藏了一些系统级的功能,如事务、状态管理和并发控制,是开发者可以专注于业务模型。 WWF 中的工作流和活动 工作流 是一组相关的活动的集合。 活动 是 WWF 中可建模、可编程、可重用、可执行的原子单位。 WWF 提供了一组丰富的活动库

撸码心得:为什么我选择敏捷开发框架

天涯浪子 提交于 2020-03-14 15:29:36
如今,编程领域发生了很大的变化,程序员花费了大量的时间来完善语法和代码结构的时候过去了。之前,从头开始以完美的语法编写代码是衡量程序员能力的最佳标准。但是,现在这种做法消失了,敏捷开发框架开始出现了,利用它程序员可以用更少的代码、更多的灵活性来构建一个强大的应用程序。 很明显,使用Java或者PHP等编程语言来编写程序,会比使用已经存在的框架花费更多的时间。使用众所周知的框架不仅可以让你尽可能快的完成事情,同时还可以享受其日积月累的好处,问题解决得更完美。 当然,如果你觉得这个框架不完美,那么也可以自己从头开始重写代码,以规避掉框架坏的部分,但是这样做可能需要更长的时间。如果项目对于上市和部署时间方面要求非常严格,那么强大的框架开发绝对是首选。 以下是这个敏捷开发框架的一些阐述: XJR敏捷开发框架技术特点 技术选型: 使用目前流行的多种web技术,包括springboot, JPA,Druid, Activiti,Lombok,swagger,poi,WebSocket,Jquery,BootStrap, maven,Jenkins 等等,支持多种数据库MySQL, Oracle, sqlserver等。 分层设计:使用分层设计,分为dao,service,Controller,view层,层次清楚,低耦合,高内聚。 安全考虑:严格遵循了web安全的规范,前后台双重验证