DevOps Introduction

DevOps Introduction

Let's learn to automate

Hello everyone, I am Batool Fatima. I am 18 years old. I have been learning DevOps for a month now. This is my first ever code blog. I may not explain all the concepts very clearly so If anyone of you find any mistake please correct me. So, Let's start with DevOps.

Implementing automation at each and every step is the main purpose of DevOps. It is a practice that unites software development and operations. Different stages of DevOps are-

  • Version Control- Maintains different versions of code. (GIT)

  • Continuous Integration- Compile, Validate, Renew, Unit Testing, Integration Testing of code. (JENKINS)

  • Continuous Delivery- It automates entire software delivery process. (MAEVEN)

  • Continuous Deployment- Deploying the test app on the production server for release.

Version Control System-

Version Control Systems are software tools that help in recording changes made to files by keeping a track of modifications done in code. #Layman Explanation- As we know that when a software product is developed there is a team of members living in different locations for it. Each one of them contributes something to the development. So when they make modifications to the source code by adding or removing anything they make use of version control systems. By use of Version Control Systems, we can manage and communicate the changes done in the source code. It also allows to know what changes have been made and by whom. Every contributor has a separate branch for making changes and this merged into the source code when its analyzed finally.

There are two types of Version Control System- 1. Centralized Version Control System (CVCS) 2. Distributed Version Control System (DVCS)

Let's know about both of them.

1.CENTRALIZED VERSION CONTROL SYSTEM- It contains just one repository(Server) globally and developers get local copy of source code from server, make changes and commit those changes to central source on server. It is possible for others to see changes made. Example- SVN tool

Drawback of CVCS- 1. The developer always need to be connected to network to perform any action as it is not available locally and does not provide offline access. 2. Since everything is centralized so if central server gets failed, one will loose entire data. 3. It is slower as every command needs to communicate with the server. 4. Working on branches is difficult and developers face merge conflict.

2.DISTRIBUTED VERSION CONTROL SYSTEM- In this system of version control, every contributor has a local copy or clone of the main repository which contains all the files and metadata of the main repository. Just committing the changes won't show it to others. It will only be saved in local rep. One has to push them to make it visible in central repo. The other person needs to pull the changes from central repo to see it. Example- GIT, GITLAB etc.

Benefits of DVCS- 1. It works very fine on offline mode as the developer copies the entire central repo files on local machine. 2. Its is faster as mostly one deals with the local repo instead of central server. 3. If server is down one can work using local repo. 4. It stores the history of versions of the project. So if any mistake happens , developers can easily roll back to previous version of their project.

I hope this was useful to you. In next blog I will write what I learn about Git and GitHub.

Thank You!