Book Image

Mastering GitLab 12

By : Joost Evertse
Book Image

Mastering GitLab 12

By: Joost Evertse

Overview of this book

GitLab is an open source repository management and version control toolkit with functions for enterprises and personal software projects. It offers configurability options, extensions, and APIs that make it an ideal tool for enterprises to manage the software development life cycle. This book begins by explaining GitLab options and the components of the GitLab architecture. You will learn how to install and set up GitLab on-premises and in the cloud, along with understanding how to migrate code bases from different systems, such as GitHub, Concurrent Versions System, Team Foundation Version Control, and Subversion. Later chapters will help you implement DevOps culture by introducing the workflow management tools in GitLab and continuous integration/continuous deployment (CI/CD). In addition to this, the book will guide you through installing GitLab on a range of cloud platforms, monitoring with Prometheus, and deploying an environment with GitLab. You'll also focus on the GitLab CI component to assist you with creating development pipelines and jobs, along with helping you set up GitLab runners for your own project. Finally, you will be able to choose a high availability setup that fits your needs and helps you monitor and act on results obtained after testing. By the end of this book, you will have gained the expertise you need to use GitLab features effectively, and be able to integrate all phases in the development process.
Table of Contents (30 chapters)
Free Chapter
1
Section 1: Install and Set Up GitLab On-Premises or in the Cloud
6
Section 2: Migrating Data from Different Locations
11
Section 3: Implement the GitLab DevOps Workflow
17
Section 4: Utilize GitLab CI and CI Runners
23
Section 5: Scale the Server Infrastructure (High Availability Setup)

Chapter 1: Introducing the GitLab Architecture

  1. It was developed by Dimitri Zaporozhets with the help of Valery Sizov in 2011.
  2. The company is funded by venture capital.
  3. It is mainly developed in Ruby, with some components in Golang, and JavaScript is used in the frontend.
  4. GitLab Community Edition carries the open source MIT License; GitLab Enterprise edition uses a proprietary one.
  5. Open source is one of GitLab's core values. The core product (GitLab CE) is exactly that, and the Enterprise Edition is based on the CE core, but has extra functionality, the development of which is paid for by the proprietary license.
  6. Unicorn, Sidekiq, NGINX, Gitaly, database, Redis and GitLab Workhorse.
  7. One.
  8. Key-value pairs, which have five different datatypes.
  9. A shared NFS filesystem.
  10. GCP.