What Is DevOps?
The answer to this question can be given philosophically and technically. It is important to know the philosophy behind DevOps. But you will find this explanation in plenty of sites so I will skip this part.
Today almost everything is getting “automated”. Repetitive tasks are replaced with machines / code. Methods are being devised to address and minimise the defects and bugs in any system. Methods to minimise human error are being devised. The issues in the software development cycle are being addressed. One major issue in the SDLC was the process of how the developed code moved to production. DevOps addresses these issues. DevOps is an umbrella concept which deals with anything to smooth out the process from development to deployment into production.
- Introduce Code Review System
- Automate Build
- Automate Testing
- Automate Deployment
- Automate Monitoring
- Automate Issue Tracking
- Automate Feedbacks
These objects can be achieved by setting up a Continuous Integration pipeline and a Continuous Deployment/Delivery process. Post delivery, a process for Continuous Monitoring is set up.
Points to be considered while setting up a CI/CD pipeline
- Developers push lot of code (many commits)
- With every commit a build would be triggered
- Automated tests should be run in production-clone environment
- Builds should be fast
- Generate feedbacks (to developers, to testers, to admins, to open source community, etc)
- Publish latest distributable
- Distributable should be deployable on various environments
- Deployment process should be reliable and secure
- One click deploys