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
- 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
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.
- Source Control (1), MS Source Safe ---Stand Alone App
- Source Control (2), MSTFS --- Centralized Server App
- Source Control (3), MSAzure DevOps (GitHub, Jira)--- Centralized Service
- Source Control (4), Git --- Distributed App
- Source Control (4-1), Git --- Configuration
- Source Control (4-2), Git --- Configured to Connect to DevOps and GitHub
- Source Control (4-3), Git --- Cherry Pick in Visual Studio
- Source Control (4-4), Git ---Recover Git Tree: Reflog/Reset
- Source Control (4-5), Git ---Recover Deleted Branch
- Source Control (4-6), Git ---Revert
- Source Control (4.7), Git --- Get Specific Version or Commit
- Source Control (4.8), Git --- Get Specific Version or Commitin practice
- Source Control (4-9), Git ---Merge: Fetch, Pull, Push and Sync
- Source Control (5), GitHub access (setup connection)
- Source Control (6), DevOps access (setup connection)
- Source Control (7), GitLab access (setup connection and Clone to Local)
- Source Control (8), Git, Azure Repos, and Visual Studio (Interaction)
- Source Control (9), Push into Git Hub and DevOps
- Source Control (10), Git Hub, DevOps Publish
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,
This is a Tesla auto pipeline.
The second view of the Tesla Pipeline.
Compared with Azure pipelines.
The 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 Ghent, Belgium.
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
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
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
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].
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)
- MS Visual SourceSafe: 02/14/1995; seeSourceSafe Wiki. Version
- TFS: 03/17/2006,see Microsoft Announces Release of Team Foundation Server
- VSTS: 2011~2014:
- 2011: introduction article online: Visual Studio Team System (VSTS)
- 2014:announced by Microsoft: "Around 2012, Microsoft launched a cloud version of TFS, running on Azure, called Visual Studio Online, which was rebranded to Visual Studio Team Services (VSTS) around 2014. Initially, VSTS was just TFS "in the cloud."
- DevOps: 09/10/2018, SeeMicrosoft: "On September 10, 2018, Microsoft renamed Visual Studio Team Services (VSTS) to Azure DevOps Services. With Azure DevOps Server 2019, Microsoft is renaming Visual Studio Team Foundation Server to Azure DevOps Server."
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.
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.
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]
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 Commons, Hibernate, 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