With a microservice standardization and design mindset that we talked about in earlier two parts, the final one is going to be around change management where we will explore options to automate and leverage tools to manage operations what we call as DevOps
With multiple environments and multiple versions of code, the software developers traditionally spend lot of their time on configuration and change management tasks. DevOps on a micro service application deployed on cloud completes your modernization cycle.
DevOps is combination of cultural philosophies, practices and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes.
In a non-DevOps environment, there is increasing conflict between realizing new features and application stability. The KPI for the development team is around their ability to deliver new features quickly where the operations teams KPI is around the stability of the application and sustainability of continuous operations.
In a DevOps environment it is more of a collaborative agile team where they are responsible for delivering new features in an iterative manner and also ensure the stability of the application. The combination of a shared code base, CI & CD, Test driven development, and automated deployments act as preventive quality assurance as it secures the quality of the application at every phase.
Jenkins: Automate software development process with continuous integration and facilitating technical aspects of continuous delivery.
Docker: A container image is a lightweight, stand-alone, executable package of a piece of software
AWS Code Pipeline: AWS Code Pipeline is continuous integration and delivery service for fast, reliable application and infrastructure updates.