0% found this document useful (0 votes)
3 views

Unit 3 - DevOps

The document discusses the importance of source code control management (SCM) in DevOps, highlighting collaboration, traceability, and continuous integration. It details the evolution of SCM, the role of hosted Git servers like GitHub and GitLab, and introduces Docker as a tool for application deployment. Additionally, it covers Gerrit, a web-based code review tool integrated with Git, outlining its features, advantages, and disadvantages.

Uploaded by

artdemios73
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Unit 3 - DevOps

The document discusses the importance of source code control management (SCM) in DevOps, highlighting collaboration, traceability, and continuous integration. It details the evolution of SCM, the role of hosted Git servers like GitHub and GitLab, and introduces Docker as a tool for application deployment. Additionally, it covers Gerrit, a web-based code review tool integrated with Git, outlining its features, advantages, and disadvantages.

Uploaded by

artdemios73
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Source code control management, Git servers, Docker intermission, Gerrit.

Source Code Control Management

Source code control (also known as version control) is an essential part of DevOps practices. Here are
a few reasons why:

Collaboration: Source code control allows multiple team members to work on the same codebase
simultaneously and track each other's changes.

Traceability: Source code control systems provide a complete history of changes to the code,
enabling teams to trace bugs, understand why specific changes were made, and roll back to previous
versions if necessary.

Branching and merging: Teams can create separate branches for different features or bug fixes, then
merge the changes back into the main codebase. This helps to ensure that different parts of the code
can be developed independently, without interfering with each other.

Continuous integration and delivery: Source code control systems are integral to continuous
integration and delivery (CI/CD) pipelines, where changes to the code are automatically built, tested,
and deployed to production.

In summary, source code control is a critical component of DevOps practices, as it enables teams to
collaborate, manage changes to code, and automate the delivery of software.

The evolution of Source Code Management (SCM) parallels the growth of software development:

1. Early Days

o Initial SCM systems focused on tracking code changes over time.

2. 1990s-2000s: Rise of Open Source and Internet

o Tools like CVS, Subversion, and Git emerged.

o Made collaboration, version control, and automation of build, test, and deployment
easier.

3. Mid-2000s: DevOps Integration

o SCM became central to DevOps, with Git as the preferred tool.

o Git's distributed design, branching, merging, and CI/CD integration enhanced


DevOps workflows.

4. Today

o Git is the most popular SCM system globally.

o Modern cloud-based platforms offer advanced features like collaboration, code


reviews, and issue tracking, making SCM essential for DevOps.
Hosted Git servers

Hosted Git servers are online platforms that provide Git repository hosting services for software
development teams. They are widely used in DevOps to centralize version control of source code,
track changes, and collaborate on code development. Some popular hosted Git servers include
GitHub, GitLab, and Bitbucket. These platforms offer features such as pull requests, code reviews,
issue tracking, and continuous integration/continuous deployment (CI/CD) pipelines.

Different Git server implementations

There are several different Git server implementations that organizations can use to host their Git
repositories. Some of the most popular include:

GitHub: One of the largest Git repository hosting services, GitHub is widely used by developers for
version control, collaboration, and code sharing.

GitLab: An open-source Git repository management platform that provides version control, issue
tracking, code review, and more.

Bitbucket: A web-based Git repository hosting service that provides version control, issue tracking,
and project management tools.

Gitea: An open-source Git server that is designed to be lightweight, fast, and easy to use.

Gogs: Another open-source Git server, Gogs is designed for small teams and organizations and
provides a simple, user-friendly interface.

GitBucket: A Git server written in Scala that provides a wide range of features, including issue
tracking, pull requests, and code reviews.

Organizations can choose the Git server implementation that best fits their needs, taking into
account factors such as cost, scalability, and security requirements.

Docker intermission

Docker is an open-source project with a friendly-whale logo that facilitates the deployment of
applications in software containers.

It is a set of PaaS products that deliver containers (software packages) using OS-level virtualization.

Docker is a tool that makes it easy to create, package, and deploy applications with all their parts, like
libraries and dependencies.

It automates application deployment and uses virtualization to run multiple containers on the same
hardware.

Docker improves productivity, keeps applications isolated, and simplifies configuration.

Docker benefits include:

● High ROI and cost savings

● Productivity and standardization


● Maintenance and compatibility

● Rapid deployment

● Faster configurations

● Seamless portability

● Continuous testing and deployment

● Isolation, segregation, and security

Docker vs. Virtual Machines

A Virtual Machine (VM) provides a dedicated environment for applications. Both Docker and VMs
have their advantages, but for running applications in different environments, either can be used.
Here's a quick comparison to help decide which fits better.

OS Support: VM requires a lot of memory when installed in an OS, whereas Docker containers
occupy less space.

Performance: Running several VMs can affect the performance, whereas, Docker containers are
stored in a single Docker engine; thus, they provide better performance.

Boot-up time: VMs have a longer booting time compared to Docker.


Efficiency: VMs have lower efficiency than Docker.

Scaling: VMs are difficult to scale up, whereas Docker is easy to scale up.

Gerrit

Gerrit is a web based code review tool which is integrated with Git and built on top of Git version
control system (helps developers to work together and maintain the history of their work). It allows
to merge changes to Git repository when you are done with the code reviews.

Gerrit was developed by Shawn Pearce at Google which is written in Java, Servlet, GWT(Google Web
Toolkit).

Why Use Gerrit?

Following are certain reasons, why you should use Gerrit.

● You can easily find the error in the source code using Gerrit.

● You can work with Gerrit, if you have regular Git client; no need to install any Gerrit client.

● Gerrit can be used as an intermediate between developers and git repositories.

Features of Gerrit

● Gerrit is a free and an open source Git version control system.

● The user interface of Gerrit is formed on Google Web Toolkit.

● It is a lightweight framework for reviewing every commit.

● Gerrit acts as a repository, which allows pushing the code and creates the review for your
commit.
Advantages of Gerrit

● Gerrit provides access control for Git repositories and web frontend for code review.

● You can push the code without using additional command line tools.

● Gerrit can allow or decline the permission on the repository level and down to the branch
level.

● Gerrit is supported by Eclipse.

Disadvantages of Gerrit

● Reviewing, verifying and resubmitting the code commits slows down the time to market.

● Gerrit can work only with Git.

● Gerrit is slow and it's not possible to change the sort order in which changes are listed.

● You need administrator rights to add repository on Gerrit.

It is used to store the merged code base and the changes under review that have not being merged
yet. Gerrit has the limitation of a single repository per project.

You might also like