Using Modern DevOps and CI/CD Tools with HCL Domino

By Larry Barker

The release of HCL Domino v12, combined with Teamstudio Build Manager v9.0, opens up some interesting possibilities for using new features in both products to integrate HCL Domino apps into DevOps strategies using modern platforms and tools. This is the first in a series of articles that describes some options for how to do that.

In the world of software engineering, the term CI/CD refers to the combined practices of Continuous Integration and Continuous Delivery. If those terms are not familiar to you, you’re not alone amongst HCL Domino professionals. Wikipedia has a nice summary of what this really means:

CI/CD bridges the gaps between development and operation activities and teams by enforcing automation in building, testing and deployment of applications. CI/CD services compile the incremental code changes made by developers, then link and package them into software deliverables.

Teamstudio Build Manager brings many of the concepts of CI/CD to the HCL Domino development environment. Build Manager has been helping businesses automate their Domino application releases for more than 15 years.  By enabling them to create automated build pipelines for their deployments, Build Manager automates the process of moving native HCL Domino applications through the various DevOps lifecycles and stages.

If you are unfamiliar with Build Manager, you may want to think of all the typical steps you manually perform against your application designs as you prepare for release. Everything from signing code for production, setting agent servers, performing a design refresh against inheriting applications, and all while trying to keep track of the 15 or so tasks that could potentially make up the entirety of a Domino application release.  Build Manager provides you with the capability to package and automate all of these steps into repeatable deployment pipelines, integrate workflow approvals and enforce the capture of release management details for auditing purposes.

With the release of HCL Domino v12 and HCL’s move to support server provisioning via Domino one-touch setup, you are now able to set up new server instances in a single step by referencing JSON configuration files. This brings about some interesting use cases and deployment options not previously available to Build Manager users.  As an example, you may now provision on-demand Domino servers for application testing as part of your release.  Or,  for any other release requirements where a consistent configuration of the environment is essential in the testing phases of your Domino HCL application promotions.

If this wasn’t enough, when you throw in the added support for containerization platforms such as Docker or Podman, this all introduces Build Manager promotions to the possibility of using “Infrastructure as Code” strategies in parallel with traditional Domino application releases.  Extending the one-click build concept embodied within Build Manager to not only the NTFs and NSFs we are so familiar with but also the infrastructure on which they rely.  By doing so, we further support the principles of configuration management or, more simply, consistency in our deployment environments and not only the deployment process where many of the benefits of Build Manager currently reside.

So, where does this all lead us? 

The ability to take advantage of the bevy of services available from providers such as AWS or Azure opens up worlds of opportunity.  These may be incorporated into your Domino release process using one of the most underutilized “Actions” within Build Manager, the Run Command.  With this, we may systematically invoke instructions to targeted services via their respective Command Line interfaces (CLIs) at any phase of the deployment or promotion process.

Well, this all sounds interesting, but what if we want to use existing CI/CD tools to manage and initiate traditional Domino application deployments? 

As of Build Manager v9.0, we have added the ability for deployments to be initiated via the command-line, providing an easy way to integrate Build Manager to build and deploy code as part of larger projects that may use other Continuous Integration build tools.

This has inspired us to write a series of articles over the coming months detailing areas where Build Manager may be used to create more “modern” Domino application release strategies.  This post is the first in this series.

What’s Next?

We will take a look at setting up Build Manager to deploy a modular Domino-based web application through its entire lifecycle, using a mixture of modern cloud and container platforms, services, and tools within the application build process.  We will explore:

  • Configuring Build Manager pipelines orientated toward specific environments (Dev/Test/Prod) and the “Actions” appropriate for each.

  • Build-out of Domino Test/UAT on-demand servers on AWS EC2 as part of a Build Manager promotion.

  • Bootstrapping a Domino application with desired configuration/test data in parallel with server setup and provisioning via one-touch setup.

  • Provisioning of cloud infrastructure on AWS as part of the Build Manager release via AWS CLI and Cloudformation.

  • Initiating Build Manager promotions with external CI/CD tools.

We are very excited to see the new opportunities HCL Domino v12 is bringing to the table and how customers are using the new features within their Build Manager application release processes.

Keep an eye on this space for further updates! 

Next up: Build Manager Promotion Paths and Pipelines.