Nowadays, only working on coding is not enough to keep your company on par with others. We need an efficient way to reduce erros and increase the productivity while integration and deployment. It is why Continuous integration, delivery and deployment come in place.
CI (Continuous Integration) means developers commit new codes into a shared repository multiple times in a day. This way is better than isolating the new codes and integrate them into main repository during the integration test lifecycle. The benefit behind CI is we can find our the error in the beginning stage and fix it.
CD (Continuous Delivery) means automating the integrated code and deliver to production stage so that we can immidately build a software without any bugs and delay. It is an implementation process in software development approach or we called DevOps process.
CD (Continuous Deployment) means the process of automating delivery of a software production. It is a bit similar to continuous delivery. However, this process will pass thru all the production stages, typically to client’s production server. This process should not have any human intervention. This accelerates the feedback loop from initial code to the end of production stage.
In below slides, you will see our CI/CD approach, process and challenges. One of our challenges we are still struggling is when a code needs to access and update the database. We need determinate the maintenace window, but it may be against the theory of CICD.