Embracing On-prem Delivery with DevOps, Jama Software

The video above is a talk from the DevOpsDays Seattle 2019 event. In the presentation, Maarika Krumhansl, an Engineering Manager at Jama Software, describes the company’s evolution to create a continuous deployment pipeline to both SaaS and on-prem environments by leveraging Docker and Replicated. We’ve captured some of the highlights below, but this video is a much-watch for any traditional software company making the leap from delivering a monolithic on-prem product to offering both a multi-tenant SaaS hosted version of the application alongside a modern, reliable and scalable installable offering.

Maarika includes a pretty significant warning up front (5:31) about the trials and tribulations of managing both a SaaS and on-prem version. Her advice is to avoid doing on-prem if, at all possible, it makes building your product much more complex, with harder requirements and more demanding customers. Despite what we do at Replicated, we agree. Offering on-prem is not for every SaaS company out there, we don’t recommend it as a “one-off” side project, we believe it needs to be a core part of a modern software company’s strategy. Only the companies that plan to deploy to tens, hundreds, or thousands of on-prem customers, are rigorous about automation and have the means to employ someone to streamline the support process should even consider it.

“If you can’t avoid on-prem, limit complexity.”
Maarika Krumhansl, Jama Software

Maarika also explained how Jama Software previously relied on two workflows (1:39) for each deployment that consisted of monthly releases to their SaaS customers, and bi-annual releases to on-prem customers. This is the essence of the complexity, as it was a less than optimal waterfall process that took brute force to produce on-prem releases. At the same time, they were running into scaling issues from customers pushing the limits of their SaaS application.

“Additionally, we were seeing some customers in our cloud environment starting to push the limits of what are vertically scaling application could handle, and in fact, our business strategy was to start going after more of those larger customers, those enterprise scale customers for our cloud offering…at the same time we had to continue to offer an on-prem solution to those customers”
Maarika Krumhansl, Jama Software

Knowing the business strategy was to continue approaching large enterprise organizations, they needed to solve both scaling issues and less painful on-premises deployments. The first step was taking their monolithic Java application and packaging it into Docker containers. For more details on Jama Software’s move to Docker read “Long Road to Docker.” Jama was now able to deliver a horizontal scaling architecture, alongside setting the stage for providing the same application to on-prem customers.

In the video, we see why Jama Software chose Replicated as the mechanism for shipping their container-based application to on-prem customers (16:27). Replicated allows Jama Software to deliver the same containers they use in their Cloud environment to private instances on whatever hardware customers want. This ensures both SaaS, and on-prem customers receive a high-quality application without doubling the engineering effort.

release_channels

Replicated’s Release Channels play an essential role in reducing the complexity of Jama Software’s deployment efforts (18:10). Jama Software simultaneously pushes new Docker images to their Cloud environment and Replicated’s Private Image Registry. These pushes get tagged to an Unstable Release Channel, which makes staging versions available to Jama Software’s Dev and QA team. When a release is ready for production, Jama Software simply promotes a release to the Stable Channel. Existing on-prem customers receive update notifications in their self-hosted admin console, and with one click can perform upgrades or test releases in sandbox environments.

“Making the commitment that we were going to ship the docker containers to both our Cloud and On-prem customers, and then leveraging a 3rd party tool to do on-prem container orchestration, has greatly simplified the process of supporting a dual deployment model.”
Maarika Krumhansl, Jama Software

Serving new on-prem customers got a lot easier. Jama Software provides a simple installation script and Replicated handles the delivery and configuration, even if customers aren’t familiar with Docker. During an installation, Replicated’s Preflight Checks ensure a whole category of support issues never even arise (17:20). By testing a customers environment for things like OS version, memory, disk space, Replicated minimizes support issues that are typically created from private installations.

build_pipeline

Maarika wraps up her talk by sharing how Jama Software practices continuous delivery of their application to SaaS and On-prem customers (24:17). Both Jama Software’s customers and engineering team have seen huge benefits, as on-prem deployments have become routine.

If you're interested in delivering your application to enterprise customers, sign-up with Replicated for a free 30-day trial.