In this solution reference, we demonstrate the ability to implement web services delivered through CI/CD using the Stratoscale private cloud environment. Specifically, we utilize Mattermost, an open source workplace messaging service, as an example web application along with Jenkins, an open source automation server which includes support for continuous delivery use cases.
We provide an overview of our sample scenario, followed by a detailed deployment walk through that enables readers to easily replicate the scenario in their own environments.
By the end of this paper, readers should have a clear understanding of how web services and CI/CD can be easily implemented using the capabilities of Stratoscale.
This short video offers a summary of how to build CI/CD pipeline on-prem:
High Velocity Web Services with an On-Prem CI/CD Pipeline
Download the full use case including scripts and code sinppets
Modern enterprise IT teams are increasingly adopting cloud computing technologies as a foundational component of their strategy to deliver business value for internal stakeholders.
While public cloud infrastructures are often an initial launching point for experimenting with these environments, private cloud solutions are an attractive alternative due to their ability to meet specific functional and security requirements while extending comparable benefits. To truly realize the potential of these investments, however, organizations need to be able to instantiate their high value use cases via private cloud capabilities such as those offered by Stratoscale’s solution.
A critical area of responsibility for IT teams is that they identify appropriate solutions for line-of-business (LOB) applications to meet the requirements of the business units that they support. As part of this, they take on the ownership of deploying, managing, and accommodating the customization of these workloads as needed. Many applications capable of meeting LOB requirements today are packaged and delivered as web services due to the fact that these configurations offer multiple operational advantages including scalability and resiliency. In addition, they allow providers to meet demands from users that they be able to access application functionality seamlessly across their various screens including desktops and mobile devices. For IT teams, this translates into the need for deploying internal facing web services using their private cloud infrastructures.
As opposed to traditional desktop software which may be updated on an infrequent basis, web services engender a model where functionality is continuously under development. This implies that IT teams work closely with developers to ensure that application improvements are released to users in a methodical and timely manner. Continuous integration and continuous delivery (CI/CD) pipelines can be built to accommodate this interaction so that value created by developers can be rapidly and safely delivered to users in an iterative manner.
Our goal in this use case is to implement an end-to-end deployment pipeline for a web application, using Mattermost as an example. Specifically, we implement a system that automatically compiles and builds application images from source code checked into a repository and then deploy the image into a Kubernetes environment.
The Mattermost application itself is composed of three tiers:
- A scalable proxy tier
- An application server tier
- A database tier
We expose the application to users outside of the Kubernetes cluster through an external load balancer endpoint to make use of multiple application proxy instances. To implement the endpoint, we utilize Stratoscale’s support for Load-Balancing-as-a-Service (LBaaS) to easily define, configure, and deploy load balancers.
Deployment Architecture Overview