Book description
An expert guide to helping you use DevOps techniques with the latest GitLab version to optimize and manage your software workflow
Key Features
- Delve into GitLab's architecture, and install and configure it to fit your environment
- Learn about the underlying principles of Agile software development and DevOps
- Explore Gitlab's features to manage enterprise cloud-native applications and services
Book Description
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.
What you will learn
- Install GitLab on premises and in the cloud using a variety of configurations
- Conduct data migration from the SVN, TFS, CVS, and GitHub platforms to GitLab
- Use GitLab runners to develop different types of configurations in software development
- Plan and perform CI/CD by using GitLab features
- Monitor and secure your software architecture using Prometheus and Grafana
- Implement DevOps culture by introducing workflow management tools in GitLab
Who this book is for
If you are a software developer, DevOps professional, or any developer who wants to master GitLab for productive repository management in your day-to-day tasks, this book is for you. Basic understanding of the software development workflow is assumed.
Table of contents
- Title Page
- Copyright and Credits
- Dedication
- About Packt
- Contributors
- Preface
- Section 1: Install and Set Up GitLab On-Premises or in the Cloud
- Introducing the GitLab Architecture
-
Installing GitLab
- Technical requirements
- Installing GitLab using omnibus packages
-
Running from source
-
Operating system – Debian 10
- Required basic software packages
- Required programming languages
- System users
- SQL database
- Redis memory database
- GitLab
- Installing GitLab Shell
- Installing GitLab-Workhorse
- Installing Gitaly
- Initializing the database and activating advanced features
- Final steps for preparing the system
- Preparing to serve
- NGINX
-
Operating system – Debian 10
- Using it from Docker
- Deploying GitLab using Kubernetes
- Summary
- Questions
- Further reading
-
Configuring GitLab Using the Web UI
- Technical requirements
- Configuring GitLab settings at the instance level
- Configuring GitLab settings at the group level
- Configuring GitLab settings at the project level
- Summary
- Questions
- Further reading
- Configuring GitLab from the Terminal
- Section 2: Migrating Data from Different Locations
- Importing Your Project from GitHub to GitLab
- Migrating from CVS
- Switching from SVN
- Moving Repositories from TFS
- Section 3: Implement the GitLab DevOps Workflow
- GitLab Vision - the Whole Toolchain in One Application
- Create Your Product, Verify, and Package it
- The Release and Configure Phase
- Monitoring with Prometheus
- Integrating GitLab with CI/CD Tools
- Section 4: Utilize GitLab CI and CI Runners
- Setting Up Your Project for GitLab Continuous Integration
- Installing and Configuring GitLab Runners
- Using GitLab Runners with Docker or Kubernetes
-
Autoscaling GitLab CI Runners
- Technical requirements
- Runner client architecture
- Setting up the environment
- Configuring the Runner
- Summary
- Questions
- Further reading
- Monitoring CI Metrics
- Section 5: Scale the Server Infrastructure (High Availability Setup)
-
Creating a Basic HA Architecture Using Horizontal Scaling
- Technical requirements
- The underlying architecture of this solution
- Setting up the bastion hosts
- Configuring the database nodes
- The Redis configuration
- Connecting the shared filesystem
- Setting up the application servers
- Summary
- Questions
- Further reading
- Managing a Hybrid HA Environment
-
Making Your Environment Fully Distributed
- Technical requirements
- The basic architecture of this solution
- Performing changes to the Terraform configuration
- Splitting more application components
- The clustered Redis/Sentinel configuration
- Changes in Ansible files
- Script enhancements
- Summary
- Questions
- Further reading
-
Using Geo to Create Distributed Read-Only Copies of GitLab
- Technical requirements
- The basic architecture of this solution
- Preparing the infrastructure
- Setting up Geo
- Summary
- Questions
- Further reading
-
Assessments
- Chapter 1: Introducing the GitLab Architecture
- Chapter 2: Installing GitLab
- Chapter 3: Configuring GitLab Using the Web UI
- Chapter 4: Configuring GitLab from the Terminal
- Chapter 5: Importing Your Project from GitHub to GitLab
- Chapter 6: Migrating From CVS
- Chapter 7: Switching from SVN
- Chapter 8: Moving Repositories from TFS
- Chapter 9: GitLab Vision: The Whole Toolchain in One Application
- Chapter 10: Create Your Product, Verify, and Package it
- Chapter 11: The Release and Configure Phase
- Chapter 12: Monitoring with Prometheus
- Chapter 13: Integrating GitLab with CI/CD Tools
- Chapter 14: Setting Up Your Project for GitLab Continuous Integration
- Chapter 15: Installing and Configuring GitLab Runners
- Chapter 16: Using GitLab Runners with Docker or Kubernetes
- Chapter 17: Autoscaling GitLab CI Runners
- Chapter 18: Monitoring CI Metrics
- Chapter 19: Creating a Basic HA Architecture by Using Horizontal Scaling
- Chapter 20: Managing a Hybrid HA Environment
- Chapter 21: Making Your Environment Fully Distributed
- Chapter 22: Using Geo to Create Distributed Read-Only Copies of GitLab
- Other Books You May Enjoy
Product information
- Title: Mastering GitLab 12
- Author(s):
- Release date: August 2019
- Publisher(s): Packt Publishing
- ISBN: 9781789531282
You might also like
book
Automating DevOps with GitLab CI/CD Pipelines
Use GitLab CI/CD pipelines for automating and deploying different steps of your software development lifecycle using …
video
Kubernetes for the Absolute Beginners - Hands-On
Starting from the fundamental concept of containers, the course gradually unfolds into a comprehensive guide on …
video
Getting Started with Kubernetes LiveLessons, 2nd Edition
6+ Hours of Video Instruction An updated edition of this video title is available. Please go …
book
Kubernetes: Up and Running, 3rd Edition
This third edition comes with a dedicated playlist of interactive Katacoda labs mapped to each section …