Applications build on top of a BPM platform share a key aspect in common with all other applications: they must be tested! But how can tests be automated when an application requires a specific build process and a specific server to run?
In this talk I’ll highlight how we built a solution to automate the build, packaging, deployment and test of Bonita process-based applications using well known developer and DevOps tools such as Jenkins, Docker and Ansible. I’ll explain why we think that using the cloud for testing environments is a nifty idea, and also how to make sure that ultimately, solutions can be easily deployed on the cloud.
3. What is a Bonita application?
• Mix of source code and models:
– Process diagrams
– Data model
– REST API extensions (Groovy)
– Connectors (Java)
– User interfaces (HTML, JS, ...)
– ...
• Steps to build and package:
– Compile source code, minify JS, ...
– Transform models
– Create a zip file for each artifact
4. Our goal: empower our clients to
frequently deploy robust new version
of Bonita applications
5. Bonita Continuous Delivery for DevOps
Our solution: Bonita Continuous Delivery
Continuous Delivery of Bonita applications
Solution for Bonita platform provisioning
+
=
for developers
for SysAdmins
7. Continuous… Integration? Delivery? Deployment?
“Continuous something” method is relative to environments and responsibilities
Continuous Integration
- Compile and unit test artefacts
- Integrate frequently
- Outcomes: a set of packaged
artefacts ready to be used to build
an application
Continuous Delivery
- Build, deploy and test (integration)
applications on test environment
- Outcomes: a packaged application with all
dependencies/artefacts ready to be
deployed on production
Continuous Deployment
- Deploy application on production
environments managed by
DevOps
- Outcomes: a packaged application
automatically deployed in
production
8. Values of continuous delivery?
“This is a DevOps development practice where code changes are automatically build,
tested and prepared for a release to production” Balaji Iyer, Architect AWS
Automate the
software release
process
Improve
developer
productivity
Find and
address bugs
quicker
Deliver updates
faster to
reduce the time
to market
9. Continuous Delivery solution architecture
Bonita UI Designer
Bonita for development teams
Bonita Studio
Git
Jenkins
clone
Build
artefacts
Create test
environment
Integration
tests
Application
deployment
Unit tests
Get the
sources
10. Some prerequisites and choice we made
• Supported VCS
– Subversion
– Git
• Build with an headless tool (i.e. without Bonita Studio)
• Jenkins as continuous integration software
– Used internally to build Bonita
– Open and flexible
12. Challenges related to server setup
• Provisioning
• OS installation
• DBMS installation
• JVM installation
• Bonita bundle installation
• Application server, Bonita web app and DBMS configuration
14. Server maintenances challenges
• Backup of the installation:
– Components installation
• Database backup
– Bonita configuration
– Execution data
– Business data
16. Benefits of using Amazon EC2
• Fast provisioning
• OS is installed automatically
• Resources usage optimization
– Allocate a server only for the duration of the tests
• Setup of a cluster environment is a lot easier
17. Benefits of using Amazon RDS
• DBMS setup
• DBMS security and bug fixes updates
• Handle backups
• Easy cluster deployment
• Storage scaling
18. Bonita Docker image
• A Bonita server ready to use
• Isolate Bonita from the host OS
• JVM and application server installed and
configured
• Configuration simplified
19. Deployment orchestration
• Automate tasks execution:
– EC2 provisioning
– RDS: create database schemas
– Docker engine installation
– Bonita docker image deployment and configuration
– HAProxy installation and configuration for load balancing
• Also support on premises deployment
• Potential support of others cloud providers: Azure,...
20. Visit our website
www.bonitasoft.com
Join our community
community.bonitasoft.com
Download
www.bonitasoft.com/downloads
Follow us on twitter
@bonitasoft
@antoinemottier
Thanks for your attention
Questions?