flowable_pendulum_iStock-629601110

Business

Continuous Integration/Continuous Development in the context of Intelligent Business Automation and Low-Code

JULY 13, 2021

Low-Code and Time to Market 

When it comes to time to market in software development, an agile development process, cross-functional teams, adapting the scope, using a low-code platform, and continuous integration and continuous delivery (CI/CD) are important topics. While most of these topics can be achieved either by organizing teams in a different way or training, CI/CD is a technical aspect. CI/CD can normally be achieved with version control, automated testing, and automated deployment. This approach feels native in software development itself, while -coupling it with a low-code development platform brings a new challenge: in addition to the developed code there are models defining the process and behavior of the execution. 

Flowable Work, a leading Intelligent Business Automation Platform, already includes a model driven approach through low-code. One of its components, Flowable Design, it’s a tool that allows you to create models of cases, processes, and forms with advanced editing features, making modelling easier and more consistent. 

To ensure consistency, Flowable has already integrated versioning in its products. This helps us to run different versions at the same time and migrate business related information in case we updated our business model. However, this is fine in one environment, while you still need to propagate changes between different environments.  

For source code this is done with a version control system like Git, a build server like Gitlab or Jenkins. While those tools are a great fit for source code, there is no native integration into a low-code environment.  

Testing with Low-Code Development Approach 

An additional challenge faced in developing low-code models is testing. While automated tests in software development are common, writing tests with Low Code environments is more challenging. Normal unit and integration tests are often written as source code in the same programming language than the application as well or are executed by a test system. However, normally business modelers are neither Software Engineers nor Test Engineers. They mainly know their domain, have learned how business process can be modeled with the OMG standards BPMN, CMMN, and DMN.  

Flowable Work allows business process modelers to execute processes, interact with them, and refine them. In addition, Flowable Inspect, allows business modelers to test the models and build automated tests out of the Flowable Inspect user interface. Test definitions can be recorded and replayed at any time to validate changes to process or case models. 

Setting up a CI/CD Pipeline in a Model Driven Approach 

There are several environments in a software project, normally at least three. Starting with a development environment, continuing with a quality assurance (QA), and finally the production environment. Software code is normally promoted in an automated way using a version control system, a CI/CD server, as well as an artifactory to store artifacts long-term. Typically, Software Engineers are writing source code and tests on their machine, committing the source code to their version control system and everything else is happening automatically. The CI/CD pipeline ensures that automated tests are executed before new models and source code can be released to higher environments. This ensures the quality of the system/application exposed to the customer. There might a person involved pressing on a button to do the releases to the QA or production environment. But it’s important for efficiency that there is no log-in to a server and executing a manual deployment, everything needs to be automated. With business process models, there are often additional steps: Software Engineers are exporting them from the modelling application, placing the artifacts on the Source Code and then the deployment can happen. This step is simple, however it’s repetitive and a step which is normally done by Software Engineers. 

Flowable Design allows to publish the models directly to your Flowable Work installation. This is helpful for initial testing, might also be helpful in production in case customers are allowed to do simple changes. However, often the process and case models are fixed and should not be changed once everything is ready for production. A deployment to multiple environments in Flowable Design is possible, but typically you would like to archive the artifacts before the actual deployment. 

setting-up-pipeline-1024x326

This process can be completely automated.  

  • A business process modeler can build the workflow as usual with Flowable Design and publish to a test installation with Flowable Work and Inspect.  

  • In Flowable Inspect the business process modeler can create test definitions, which can then run on the model and future versions of the model.  

  • Once the models are finished, the publish functionality as part of Flowable Design can be used to publish all the models to a version control system.  

The Flowable APIs allow defining a custom publish target and then use the Flowable APIs to acquire the required information. Using an application orchestrating the publish to a version control system, helps then to aggregate all the required information for version control and publish the content to a version control system. Once a commit is done, an automated pipeline can be triggered. The pipeline can use a Flowable installation to automatically execute the tests, bundle the artifact, publish them to an artifactory and do what we normally do with source code. Test results can be visualized. Since everything is versioned, we can also tag versions for deployment to different environments and ensure that we always know which state of the models is deploy to which environment. 

A Deployment Example with Flowable Work 

Looking at a Flowable environment, we can deploy to different targets. After the initial deployment on the default target, a publish to our Deployment Pipeline can be done: 

deployment-example-1024x640

Here, we can also define our own deployment target which then triggers in the background a git commit with all our models included: 

deployment-example-2

Once the git commit is done, our pipeline can be triggered automatically: 

deployment-example-3

This pipeline will bundle the installable artifacts for a Flowable application and execute all the tests in a dedicated test environment. The test result is recorded and can be viewed inside the Jenkins pipeline: 

deplyoment-example-4

Since all the information is indexed by Elasticsearch, it’s easy for the pipeline to also produce a model coverage report. This is exactly the heatmap which is generated by Flowable out of the box. In addition, the result of the heatmap endpoints can be used to visualize which elements are covered and which not: 

deployment-example-5

Conclusion 

Modeled business processes seem to be at first out of the context of classical software deployment. They are XML artifacts which are created by a less technical person outside of the scope. With this in mind, Flowable Inspect was developed allowing to have test coverage also for them. With a CI/CD integration it becomes possible to automate the test execute, version on a classical version control system and propagate changes to upper environments. On top of it, it is possible to build management reports regarding test execution and test coverage.  

This way, here at Flowable we managed to combine two relevant time to market aspects, bringing the low-code development platform Flowable Work together with CI/CD.

Valentin Zickner- MG 4820

Valentin Zickner

Senior Solution Architect

Share this Blog post
low-code_blog_iStock-1340101219_wp
Business | DECEMBER 16, 2021

No-Code, Low-Code or Pro-Code? What you need is right code

In the business automation market there’s a lot of interest in low-code, which has acted as a spur for different vendors and analysts to position themselves around this. For no-coders, low-code still means code, which is just not a good enough answer; forRead more

flowable_data-object_iStock-1166495444_wp
Business | NOVEMBER 19, 2021

Data Objects: the Life Blood of Intelligent Business Automation

Data is the fuel for every application. It is essential to connect data from multiple systems to make better business-related decisions, and to improve your customers’ and employees’ experience, as well as your end-to-end business efficiency.Read more

flowable_RPA_blog_iStock-988520160
Business | SEPTEMBER 29, 2021

RPA is commodity – orchestrating it should now be the focus

Robotic Process Automation (RPA) has been a hot market for the last few years, with huge investments and valuations for its leading vendors.Read more