Need for Version Control System and Continuous Integration
Multiple Developers working on to build an application.
Each Developer works on his local system, How can we integrate the code from multiple developers
Big Bang Integration:
- Consider the movie booking app
- Each team is working on their own
- Just before 15 days to release all the teams try to make their applications interact with each other by integrating the code.
- It was observed in many cases that the team will observe lot of failures and to meet the release date, they make temporary fixes which will ruin the application quality
To make the application development process simpler continuous integration was introduced where all the code by different teams will be integrated every time (hourly, daily) then create an application package
Options for sharing code
- shared folder
Merging the code has to be done by all the developers manually.
We need the following options
- merge the changes
- revert the changes
Version Control is a system that records changes to a file or group of files and directories over time and it allows multiple developers to integrate their work.
Some popular Version Control Systems
- IBM Clear Case
- Team Foundation Version Control
Version Control Architecture Evolution.
- Client Server to Distributed Systems
Relevance of Version Control For DevOps Engineer
- As a DevOps Engineer, we will work to develop scripts or configurations (Terraform, Chef, Ansible, Docker, k8s) and we need to integrate this activity with the team, so we need to have a good working knowledge on Version Control System.
- In some organizations, DevOps Engineers are expected to ensure all the team members are using version control system effeciently.
- The CI/CD Pipeline starts from VCS, so we need to understand the VCS to trigger the builds & continue with pipeline.
- Installing necessary softwares Refer Here