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
- Consider the movie booking app
-
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
- versions
- 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
- Subversion(SVN)
- IBM Clear Case
- Team Foundation Version Control
- Perforce
- Git
-
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.
References
- Installing necessary softwares Refer Here
