DevOps is a set of practices that bridge application development (dev) and operational behavior (ops) to reduce time to market without compromising quality and operational effectiveness. The goal of DevOps is to deploy into a production environment faster, gathering feedback to enhance the product rapidly. It allows application developers and business owners to quickly respond to customer needs, increase the feedback cycle, and ultimately achieve business value faster.
DevOps encourages a culture of collaboration between the development, quality, and operations teams bringing together process and technology to reduce or eliminate barriers through the following fundamental practices:
- Continuous integration
- Continuous delivery
- Continuous deployment
Adopting DevOps practices and using DevOps tools creates a standardized deployment process to deploy predictable, high-quality releases.
In the image below, you see how DevOps supports the iterative nature of a project.
DevOps processes and pipeline
In a DevOps workflow, the first best practice for application developers to adopt is continuous integration. Continuous integration is the process by which development changes to an application are integrated as frequently as possible, at least once a day, and preferably multiple times a day, every time developers complete a meaningful work unit. With continuous application integration, application developers frequently check-in their changes to the source environment and use an automated build process to verify these changes. This continuous integration identifies issues and pinpoints them early in the cycle.
Successful adoption of continuous integration enables the next best practice of continuous delivery. With continuous delivery, application changes run through rigorous automated regression testing. The changes are deployed to a staging environment for further testing to ensure that there is high confidence the application is ready to deploy on the production system.
Successful adoption of continuous integration opens the opportunity for continuous deployment. With continuous deployment, application changes are deployed to the production environment frequently or on-demand.
- Continuously integrating to a shared repository everyday
- Checking in/Merging changes frequently
- Fast validation
- Always ready to ship
- Running all tests frequently in QA, UAT or Staging environments
- Continuously Deploying/Shipping
- Frequent deployments and validation in production (like) environments
In the Pega Express™ delivery approach, these processes translate into a DevOps pipeline, defined in four stages:
- Stage 1 - Development
- Stage 2 - Continuous integration
- Stage 3 - Continous delivery
- Stage 4 - Continuous deployment
Stages 1 and 2 are development developer-centric and seek to answer the following questions:
- Are the changes good enough to share?
- Do the changes work together with other developer changes?
Stages 3 and 4 are customer-centric and seek to answer the following questions:
- Is the application with the new changes functioning as designed and as expected by customers?
- Is the application ready to be used by customers?
In the following image, click the + icons to learn more about the DevOps pipeline.
The Pega Platform™ offers tools to support continuous integration, delivery, and deployment through Deployment Manager. Deployment manager provides a low-code, model-driven experience to configure and run continuous integration and continuous delivery workflows or deployment pipelines for your application.
You can fully automate deployment pipelines and start with automated integration of developer changes through:
- Branch merging and validation
- Application packaging
- Artifact repository management
- Test execution
- Guardrail compliance
- Test coverage enforcement
Note: Pega Platform supports open DevOps integration using popular third-party tools (such as Jenkins and Microsoft Azure DevOps) by providing an open platform, with all the necessary hooks and services. With open DevOps integration, you can build a deployment pipeline using third-party tools to automate branch merging, application packaging and deployment, test execution, and quality metric enforcement.
Check your knowledge with the following interaction.