Create A CI/CD Pipeline With Kubernetes And Jenkins
CI/CD stands for Continuous Integration/Continous Delivery and/or Deployment.
A team that does not implement CI/CD will have to pass through the following stages when it creates a new software product:
1- The product manager (representing the client’s interests) provides the needed features that the product should have and the behavior it should follow.
The documentation must be as thorough and specific as possible.
2- The developers with the business analysts start working on the application by writing codes, running unit tests, and committing the results to a version control system (for example, git).
3- Once the development phase is done, the project is moved to QA. Several tests are run against the product, like User Acceptance Tests, Integration Tests, performance tests among others. During that period, there should be no changes to the code base until the QA phase is complete. If there should be any bug, they’re passed back to the developers to fix them and hands the product back to QA.
4- Once QA is done, code is deployed to production by the operations team.
There is a number of shortcomings for the above workflow:
— First, it takes so long from the time the product manager makes her request until the product is ready for production.
— It’s harder for developers to address bugs in code that has been written since quite a long time like a month or more ago. Remember, bugs are only spotted after the development phase is over and QA phase starts.
— When there’s an urgent code change like a serious bug that needs a hotfix, the QA phase tends to be shortened due to the need to deploy as fast as possible.
— Since there’s little collaboration between different teams, people start pointing fingers and blaming each other when bugs occur. Everybody starts caring only about his/her own part of the project and lose sight of the common goal.