Business Process Model & Notation ( BPMN ) Workflows in Jenkins

  • Upload
    penney

  • View
    30

  • Download
    2

Embed Size (px)

DESCRIPTION

Business Process Model & Notation ( BPMN ) Workflows in Jenkins. Max Spring Cisco https://wiki.jenkins-ci.org/display/ JENKINS/ Jenkow+Plugin. Goals. Attract users Get feedback Gain contributors. Agenda. What is BPMN & Activiti ? How to setup & use Jenkow plugin For Jenkins admins - PowerPoint PPT Presentation

Citation preview

Title of talk

Business Process Model & Notation (BPMN) Workflows in JenkinsMax SpringCiscohttps://wiki.jenkins-ci.org/display/JENKINS/Jenkow+PluginJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfGoalsAttract usersGet feedbackGain contributorsJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfAgendaWhat is BPMN & Activiti?How to setup & use Jenkow pluginFor Jenkins adminsPlugin internalsFor Plugin developersFuture Features

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfProblem: Job OrchestrationPutting jobs into relationDefining logic for execution of multiple jobsExisting orchestration mechanismsBuilt-in Upstream / DownstreamJoin PluginLocks and Latches PluginDrools Plugin (deprecated)Build Flow Plugin...

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJoin Plugin: provides concurrency join operation (last release v1.15 3-May-2012)Locks and Latches: another plugin to control parallel execution (last release v0.6 16-Apr-2010)Drools: similar to Jenkow in using graphical editor in EclipseBuild Flow: define workflow in DSL (last release v0.5 3-Sep-2012)

https://wiki.jenkins-ci.org/display/JENKINS/Join+Pluginhttps://wiki.jenkins-ci.org/display/JENKINS/Locks+and+Latches+pluginhttps://wiki.jenkins-ci.org/display/JENKINS/Drools+Pluginhttps://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin

4BPMNBusiness Process Model & NotationSimilarity with UML activity diagramsBPMN < 2.0Just modeling standardBPMN 2.0Introduced in 2011Added well-defined execution semantics

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfBPMN ConceptsProcess: workflow definitionProcess instance: running workflowTask: workflow stepJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfTask in BPMN: similar to task in Rally, resolved by a human actor/6Basic BPMN ConstructsStart / End Events

Script TaskGroovyJavascriptNo concurrency!

User TaskExecuted by real person

Jenkins TaskInvoke Jenkins job

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfBasic BPMN ConstructsParallel Gateway

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfBasic BPMN ConstructsExclusive Gateway

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfMore complex workflow

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconf10BPMN BenefitsIts a standardGeared towards non-software developersConstructs for interactions with other actors (persons and systems)Powerful graphical notationExisting toolingWell-documented XMLJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconf

http://activiti.orgOpen Source (Apache License) BPMN 2.0 workflow engineImplemented in JavaWeb-based Workflow ManagementWorkflow EditorActiviti Designer (Eclipse Plugin)ExtensibleWeb-based Activiti Modelernot under active developmentJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfPost subject: Re: Activiti Modeler by SignavioPosted: Tue Mar 27, 2012 11:30 am Sure, the Activiti Designer is supported in the Activiti project.The Activiti modeler codebase isn't part of the Activiti codebase, that's the reason it isn't supported.Best regards,Tijs Rademakers

12Earlier Activiti / Jenkins IntegrationPart of a larger commit automation effortJenkins as Execution EngineActiviti Workflow Engine in Apache ServiceMix Container (OSGi)Using Jenkins Channel (ssh) mechanismJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkow OverviewJenkins plugin ("Jenkins On Workflow")Early release (v0.2.4)Emphasis on workflow editorActiviti Engine in JenkinsActiviti Designer in EclipseBundled with JenkowServed by Jenkins Update Site pluginGit repository in Jenkins to store workflowsUsing Git Server plugin (thanks Kohsuke)Version-controlled workflowsJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkow Setup (one time)Install plugin from Available catalogIf authorization is on,configure SSH public keyTo allow push into workflow Git repositoryPeopleuseridConfigureSSH Public Keys

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconf

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkow SetupCreate first job with workflow stepJob ConfigureBuildAdd build stepBPMN WorkflowWorkflow Name: first-workflowIf workflow doesnt exist,a simple hello world workflow gets created

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkow SetupBuild first job

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfWorkflow Editor Setup (one time)Get Eclipse (3.7 Indigo)http://www.eclipse.org/downloads/(Eclipse IDE for Java Developer)

Or install EGitHelpEclipse MarketplaceFind:egitInstall

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfWorkflow Editor Setup (one time)Install Jenkow Activiti DesignerJenkins: Eclipse Update Site copy URLEclipse:HelpInstall new SoftwareAddName:Jenkow, Location: paste URL OK

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfImport Workflow Project (one time)Git repository in JenkinsJenkow: copy Git ssh URI

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfImport Workflow Project (one time)Import in Eclipse (1/2)FileImportGitProjects from GitNextURINext URI: paste Git URINext

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfImport Workflow Project (one time)Import in Eclipse (2/2)Branch selection: select masterNextLocal Destination NextImport existing projectNextImport Projects: select jenkow-workflowsFinish

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfImport Workflow Project (one time)Open Workflow ProjectProject Explorer: jenkow-worfklowssrc/main/resourcesdiagramsfirst-wf.bpmn

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfEdit WorkflowScriptTask

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfEdit WorkflowJenkinsTask

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfPush changed WorkflowSave workflowCommitProject Explorer: right-click jenkow-workflowsTeamCommitCommit messageCommitPushProject Explorer: right-click jenkow-workflowsTeamPush to UpstreamOK

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfRun changed WorkflowCreate called-by-wf jobKick first-job

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconf

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfExample Launch Sequence

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfImplementation Details

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfExecution ModesScript ModeBuild stepOccupies executorNo persistencyShort runningWorkflow Mode (not yet implemented)Workflow Job TypeNo executor wastedWorkflow state persisted in DBLong running (days, weeks, )Interact with other systems / actorsJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfPlugin ElementsEclipse GraphitiActiviti Designer+ Patch: Palette Extension Provider(Eclipse Extension Point)Jenkow IDE ConfigJenkow Designer ExtensionJenkow Update SiteActivitiWorkflow EngineJenkow Plugin~/.jenkow/lib/EclipseEGitJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkinsRun TimeEGit~/.jenkow/lib/ jenkow-designer-extension.jar$JENKINS_HOME/ jenkow-repository/ .git/ jenkow-workflows/EclipseActiviti DesignerJenkow IDE ConfigActiviti Workflow EngineJenkow PluginGit Server Plugin (JGit)Eclipse Update Site PluginCI ServerAdmin Workstationgit reset --hardDB

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfEGit~/.jenkow/lib/ jenkow-designer-extension.jarEclipseActiviti DesignerJenkow IDE ConfigAdmin WorkstationJenkinsRun Time & External DB$JENKINS_HOME/ jenkow-repository/ .git/ jenkow-workflows/Activiti Workflow EngineJenkow PluginGit Server Plugin (JGit)Eclipse Update Site PluginCI ServerDatabaseActiviti Explorer

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkowBuilder (start workflow)

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkowBuilder (end workflow)

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkinsTask

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkinsTaskDelegate

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfFuture FeaturesWorkflow Job Type (workflow mode)How to manage active workflows?Workflow diagrams in JenkinsShowing execution stateIntegrate Activiti Web UIs?Activiti ModelerJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfFuture FeaturesJob parameter supportMore task types for other Jenkins functionsSlave node managementBuild promotionMulti-instance task supportJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfFuture FeaturesFind alternative to bundling Eclipse update site with Jenkow pluginOther mechanisms to expose workflow repositoryEclipse EFS over SSHJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkow Take AwayUse for complex job orchestrationGit Server Plugin usage exampleEclipse Update Site usage exampleMaven / Tycho integration

Resourceshttps://wiki.jenkins-ci.org/display/JENKINS/Jenkow+Plugin

http://www.activiti.org/

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfThank You To Our Sponsors

Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconf