Understanding DevOps concepts
The software industry evolves quickly and organizations are forced to rapidly respond to their changing markets. DevOps is a set of industry practices that have evolved to support this demand for rapid change. The primarily goal of DevOps is to reduce an organization’s time-to-market for new features without compromising quality or end-user-experience. DevOps, like the Pega Platform, allows organizations to focus their efforts on adding customer value.
Adopting DevOps is an ongoing journey as opposed to a limited engagement project. There should be no point when you should stop seeking to improve efficiency. An evaluation of three main components is required when embarking on the DevOps journey:
- People: Before embarking on a DevOps journey, it’s important to get buy-in from the entire organization. The cultural shift to embrace change and shared-responsibility is one of the first challenges which needs to be overcome before auditing process and adopting new technologies.
- Process: Process is what makes each organization's software delivery process unique. Processes should be regularly reviewed for bottlenecks and automation opportunities.
- Technology: Technology is what has made DevOps transformations possible and widely available. Technology enables automation of nearly every aspect of the software lifecycle from planning, to production, to monitoring.
- Understanding development
Pega Platform developers use Agile practices to create applications and commit the changes into branches in a shared development environment. Automated and manual testing provides rapid feedback to developers so that they can improve the application.
- Understanding continuous integration
With continuous integration, application developers frequently check in their changes to the source environment and use an automated build process to automatically verify these changes. Continuous integration identifies issues and pinpoints them early in the cycle. Use Jenkins with the prpcServiceUtils tool and the execute test service to automatically generate a potentially deployable application and export the application archive to a binary repository such as JFrog Artifactory.
- Understanding continuous delivery
With continuous delivery, application changes run through rigorous automated regression testing and are deployed to a staging environment for further testing to ensure that there is a high confidence the application is ready to deploy on the production system.
- Understanding deployment
After an application change passes the testing requirements, use Jenkins and the prpcServiceUtils tools to migrate the changes into production after complete validation through automated testing on the staging system. Use application release guidelines to deploy with minimal downtime.