Source Control (3-1), DevOps And Different Products

Introduction

This is a series of articles related to Source Control or Version Control issues, from stand-alone apps, such as MS SourceSafe, to Server apps, such as MS TFS (Team Foundation Server), to web services, such as GitHub, AWS, and MS Azure DevOps. We tried categorizing this article series as Source Control or Version Control. Still, this site does not have these categories, so we make the articles in Category DevOps, as explained in the Wiki.

DevOps is a set of practices that combines software development (Dev) and IT operations (Ops). It aims to shorten the systems development life cycle and provide continuous delivery with high software quality. DevOps complements Agile software development; several DevOps aspects came from the Agile methodology.

The structure of this article series will cover,

  • Stand Alone App
    • MS Source Safe
  • Server App
    • MS TFS (Team Foundation Server)
  • Online (Cloud) Centralized Service
    • MS AzureDevOps
      • Boards
      • Repos
      • Pipelines
      • Test Plans
      • Artifacts
    • GitHub
    • AWS GitHub Enterprise
  • Distributed App
    • Git

Because these are huge topics, I will not go step by step. Instead, I write any section when I feel ready for it, but each section will be relatively independent to become a reading unit.

Introduction

This series of articles originally and mainly discusses source control issues, whatever tool we use, such as SourceSafe, TFS, DevOps, and Git. However, we put these series under the DevOps category. However, we expand the discussion into the DevOps field through deep discussion. At this point, we should have an overall understanding of DevOps, especially when we use different DevOps tools; we should know what DevOps is. I made this article to discuss this issue. We are starting with the concept of DevOps and ending with the different tools used by DevOps.

The content of this article will be

  • A: Introduction
  • B: DevOps
    • B - 1: What DevOps is
    • B - 2: History
    • B - 3: Demo of DevOps Tools
  • C- Tools(Products)
    • C - 1: MS DevOps
    • C - 2: GitHub
    • C - 3: GitLab
    • C - 4: Jira

B - DevOps

DevOps is quite a confusing concept. It is not a method, not a tool, not a ... any unique staff; it is a combination of several something, a collection of something; it is also a dynamic process including some actions in it. Let us start now.

B-1.What is DevOps?

Before we discuss DevOps, we should know, What DevOps is.

This series of articles the first one was published on September 27, 2021, in Source Control (8), Git, Azure Repos, and Visual Studio. At that time, we got the DevOps definition from Wiki like this.

"DevOps is a set of practices that combines software development (Dev) and IT operations (Ops). It aims to shorten the systems development life cycle and provide continuous delivery with high software quality. DevOps complements Agile software development; several DevOps aspects came from the Agile methodology."

It is said: "DevOps is a set of practices that ..."

Now, if we click the same link, we get something different:

"DevOps is a methodology in the software development and IT industry. Used as a set of practices and tools, DevOps integrates and automates the work of Software development(Dev) and IT operations (Ops) to improve and shorten the systems development life cycle. DevOps is complementary to agile software development; several DevOps aspects came from the agile way of working."

It is said, "DevOps is a methodology that..."

The exact definition is still under discussion and development.

Other than it being a cross-functional combination of the terms and concepts of "development" and "operations", academics and practitioners have not developed a universal definition for the term "DevOps". Most often, DevOps is characterized by key principles.

  • shared ownership,
  • workflow automation, and
  • rapid feedback

My Understanding

Defining DevOps as a methodology is easy, but it does not cover what DevOps is. Maybe defining it as a set of Practices is better; however, it is a bit hard to understand.

Let us consider Tesla workshop,

Tesla workshop

This is a Tesla auto pipeline.

Tesla auto pipeline

The second view of the Tesla Pipeline.

Second view of the Tesla Pipeline

Compared with Azure pipelines.

Azure pipelines

The tasks of Azure pipelines.

Tasks of Azure pipelines

We may conclude, what DevOps is.

DevOps is an A pipeline and the related, including

  • Operations
    • Auto development
    • Auto Deployment
  • Tasks
    • Boarding
    • Code repository
    • pipeline
    • Testing
    • deployment
  • Tools
    • Azure Azure DevOps, since02/01/2010
    • GitLab, since04/07/2005
    • GitHub, since04/07/2005
    • Jira
    • Git, since04/07/2005

We may shorten it as DevOps is a software automation process.

B-2.History

Around 2007 and 2008, concerns were raised by those within the software development and IT communities that the separation between the two industries, where one wrote and created software entirely separate from those that deployed and supported the software, was creating a fatal level of dysfunction within the industry.

In 2009, the first conference, named DevOps Days, was held in GhentBelgium.

In 2012, a report called "State of DevOps" was first published by Alanna Brown at Puppet Labs.

As of 2014, Nicole Forsgren, Gene Kim, Jez Humble, and others published the annual State of DevOps report. They stated that the adoption of DevOps was accelerating. Also in 2014, Lisa Crispin and Janet Gregory wrote the book More Agile Testing, containing a chapter on testing and DevOps.

In 2016, the State of DevOps report published the DORA metrics for throughput (deployment frequency, lead time for changes) and stability (mean time to recover, change failure rate).

B-3.Demo of the DevOps Tools

Demo1

DevOps Tools

whom we have a chance to use or use,

  • Git: distributed source control tool
  • GitLab: Server side, cloud repository
  • Azure: Cloud
  • AWS: Cloud
  • Docker: Container
  • Sonatype: Open source security tool
  • Kubernetes: an open-source container orchestration system for automating software deployment, scaling, and management.

Another demo

Another demo

Whom we have a chance to use or use.

  • Jenkins: a popular open-source automation server. It's used to implement Continuous Integration (CI) and Continuous Delivery (CD) for any development project.
  • JUnit: a unit testing framework for the Java programming language.
  • Jira: JIRA is a bug-tracking tool developed by Atlassian that allows software developers to plan, track, and work faster.
  • Confluence: a web-based corporate wiki developed by Australian software company Atlassian.

A complete view

A complete view

C - Tools (Products)

In this section, we will give more details and a short summary of several tools we are familiar with, which are discussed in other articles in this series.

C-1.Azure DevOps

Azure DevOps Server (formerly Team Foundation Server (TFS) and Visual Studio Team System (VSTS)) is a Microsoft product that provides capabilities [ref].

Azure DevOps Server

Tasks

It covers the entire application lifecycle and enables DevOps capabilities. Azure DevOps can be used as a back-end to numerous integrated development environments (IDEs) but is tailored for Microsoft Visual Studio and Eclipse on all platforms.

On-premises vs. online

Azure DevOps is available in two different forms.

  • on-premises ("Server") and
  • online ("Services") ---Azure DevOps Services (formerly Visual Studio Online before it was renamed to Visual Studio Team Services in 2015).

The Microsoft Azure cloud platform backs the cloud service. It uses the same code as the on-premises version of Azure DevOps, with minor modifications, and implements the most recent features.

History

The main timeline for MS Visual SourceSafe (1995), TFS (2005), VSTS (2014), DevOps (2018)

C-2.GitHub

GitHub, Inc. is an Internet hosting service for software development and version control using Git. It provides [ref]

Headquartered in California, it has been a subsidiary of Microsoft since 2018.

Github

It is commonly used to host open-source software development projects. As of January 2023, GitHub is the largest source code host. As of November 2021, it is reported having

  • over 100 million developers and
  • more than 372 million repositories ,including
  • at least 28 million public repositories.

GitHub.com

Development of the GitHub.com platform began on October 19, 2007. The site was launched in April 2008 by Tom Preston-Werner, Chris Wanstrath, P. J. Hyett, and Scott Chacon.

C-3.GitLab

GitLab Inc. is an open-core company that operates GitLab, a DevOps software package that can develop, secure, and operate the software. Ukrainian developer Dmytro Zaporozhets and Dutch developer Sytse Sijbrandij created the open-source software project. In 2018, GitLab Inc. was considered the first partly Ukrainianunicorn. [ref]

Since its foundation, GitLab Inc. has promoted remote work and is known to be among the largest all-remote companies in the world.GitLab has an estimated 30 million registered users, with 1 million active, licensed users.

Gitlab

Overview

GitLab Inc. was established in 2014 to continue the development of the open-source code-sharing platform launched in 2011 by Dmytro Zaporozhets. The company's other co-founder Sytse Sijbrandij initially contributed to the project and, by 2012, decided to build a business around it.GitLab offers its platform as a freemium . Since its foundation, GitLab Inc. has been an all-remote company. By 2020, the company employed 1300 people in 65 countries.

Until 2019, the company used a no-vetting policy for customers (except when required by law) and banned political discussions in the workplace but relaxed the restrictions in response to criticism.

C-4.Jira

Jira is a proprietary issue-tracking product developed by Atlassian that allows bug tracking and agile project management.[ref]

Jira

Naming

The product name comes from the second and third syllables of the Japanese word pronounced as Gojira, which is Japanese for Godzilla. The name originated from a nickname Atlassian developers used to refer to Bugzilla, which was previously used internally for bug-tracking.

Description

Jira includes tools allowing migration from competitor Bugzilla. According to Atlassian, Jira is used for issue tracking and project management by over 180,000 customers in 190 countries. Some organizations that have used Jira at some point for bug-tracking and project management include Fedora CommonsHibernate, and the Apache Software Foundation, which uses both Jira and Bugzilla.

Jira is offered in four packages

  • Jira Work Management is intended as generic project management.
  • Jira Software includes the base software and agile project management features (previously a separate product: Jira Agile).
  • Jira Service Management is intended for IT operations or business service desks.
  • Jira Alignis intended for strategic product and portfolio management.

Jira is written in Java.

Reference

Comparisons


Similar Articles