Definition & Goals of DevOps
Definition & Goals of DevOps
Definition: Continuous Integration involves regularly merging code changes into a central repository where
automated builds and tests run.
Process
Developers commit code changes to a shared repository several times a day
Automated build tools (like Jenkins, Travis CI) compile the code and run unit tests
Issues are detected early, making it easier to fix them.
Definition: Continuous Delivery ensures that code changes are automatically prepared for a release to
production.
Process
After CI, automated testing (integration tests, system tests, etc.) is conducted
The code is automatically packaged and made ready for deployment
While CD ensures the code is ready for production, the actual deployment can still be a manual decision.
Continuous Deployment:
Definition: Continuous Deployment goes a step further than Continuous Delivery by automatically deploying
every change that passes all stages of the production pipeline.
Process
Successful changes from the CD pipeline are automatically deployed to production
This process requires a very robust automated testing setup to ensure only stable changes are deployed.
Definition: IaC involves managing and provisioning computing infrastructure through machine-readable
configuration files, rather than through physical hardware configuration or interactive configuration tools.
Process
Define infrastructure configurations in code
Use version control to manage these configurations
Deploy and manage infrastructure in a consistent and repeatable manner.
Definition: Monitoring and logging involve tracking the performance and health of applications and
infrastructure, providing insights and alerts on the status of the system.
Process
Collect data from applications and infrastructure
Analyze data to detect anomalies and performance issues
Use alerts and dashboards to monitor system health in real time.
Definition: Encourages a culture where development, operations, and other stakeholders work together
seamlessly.
Process
Use collaboration tools to maintain open and continuous communication
Foster a culture of shared responsibility and transparency
Conduct regular meetings and reviews to discuss progress, challenges, and improvements.
Goals of DevOps
Improve Deployment Frequency
Increase the speed and frequency of software releases to deliver value to customers more quickly