Automating DevOps with GitLab CI/CD Pipelines

by Christopher Cowell, Nicholas Lotz, Chris Timberlake

Software Development

Book Details

Book Title

Automating DevOps with GitLab CI/CD Pipelines

Author

Christopher Cowell, Nicholas Lotz, Chris Timberlake

Publisher

Packt Publishing

Publication Date

2023

ISBN

9781803233000

Number of Pages

348

Language

English

Format

PDF

File Size

4.7MB

Subject

Computers\Networking

Table of Contents

  • Cover
  • Title Page
  • Copyright and Credit
  • Dedicated
  • Contributors
  • Table of Contents
  • Preface
  • Part 1: Getting Started with DevOps, Git, and GitLab
  • Chapter 1: Understanding Life Before DevOps
  • Introducing the Hats for Cats web app
  • Building and verifying code manually
  • Security-testing code manually
  • Packaging and deploying code manually
  • Problems with manual software development life cycle practices
  • Solving problems with DevOps
  • Summary
  • Chapter 2: Practicing Basic Git Commands
  • Technical requirements
  • Why use Git?
  • Committing code to keep it safe
  • Tagging commits to identify versions of code
  • Branching code for developing in an isolated space
  • Syncing local and remote copies of repositories
  • Additional resources for learning Git
  • Summary
  • Chapter 3: Understanding GitLab Components
  • Technical requirements
  • Emphasizing the “why” over the “how”
  • Introducing the GitLab platform
  • Organizing work into projects and groups
  • Tracking work with issues
  • Editing files safely with commits, branches, and merge requests
  • Enabling DevOps practices with GitLab flow
  • Summary
  • Chapter 4: Understanding GitLab’s CI/CD Pipeline Structure
  • Technical requirements
  • Defining the terms pipeline, CI, and CD
  • Parts of a pipeline – stages, jobs, and commands
  • Running GitLab CI/CD pipelines
  • Reading GitLab CI/CD pipeline statuses
  • Configuring GitLab CI/CD pipelines
  • Summary
  • Part 2: Automating DevOps Stages with GitLab CI/CD Pipelines
  • Chapter 5: Installing and Configuring GitLab Runners
  • Technical requirements
  • Defining GitLab runners and their relationship to CI/CD
  • The runner architecture and supported platforms
  • Installing the Runner agent
  • Considerations regarding the various runner types and executors
  • Summary
  • Chapter 6: Verifying Your Code
  • Technical requirements
  • Building code in a CI/CD pipeline
  • Checking code quality in a CI/CD pipeline
  • Running automated functional tests in a CI/CD pipeline
  • Fuzz testing in a CI/CD pipeline
  • Checking accessibility in a CI/CD pipeline
  • Additional ways to verify your code
  • Summary
  • Chapter 7: Securing Your Code
  • Technical requirements
  • Understanding GitLab’s security scanning strategy
  • Using SAST to scan your source code for vulnerabilities
  • Using Secret Detection to find private information in your repository
  • Using DAST to find vulnerabilities in web applications
  • Using Dependency Scanning to find vulnerabilities in dependencies
  • Using Container Scanning to find vulnerabilities in Docker images
  • Using License Compliance to manage licenses of dependencies
  • Using IaC Scanning to find problems in infrastructure configuration files
  • Understanding the different types of security reports
  • Managing security vulnerabilities
  • Integrating outside security scanners
  • Summary
  • Chapter 8: Packaging and Deploying Code
  • Technical requirements
  • Storing code in GitLab’s package registry for later re-use
  • Storing code in GitLab’s container and package registries for later deployment
  • Deploying to different environments using GitLab Flow
  • Deploying to a review app for testing
  • Deploying to real-world production environments
  • Deploying to a Kubernetes cluster
  • Summary
  • Part 3: Next Steps for Improving Your Applications with GitLab
  • Chapter 9: Enhancing the Speed and Maintainability of CI/CD Pipelines
  • Accelerating pipelines with directed acyclic graphs and parent-child architecture
  • Building code for multiple architectures
  • When and how to leverage caching or artifacts
  • Reducing repeated configuration code with anchors and extensions
  • Improving maintainability by combining multiple pipelines and leveraging parent-child pipelines
  • Securing and accelerating jobs with purpose-built containers
  • Summary
  • Chapter 10: Extending the Reach of CI/CD Pipelines
  • Using CI/CD pipelines to spot performance problems
  • Integrating third-party tools into your CI/CD pipelines
  • Using CI/CD pipelines for developing MOBIle apps
  • Summary
  • Chapter 11: End-to-End Example
  • Technical requirements
  • Setting up your environment
  • Writing code
  • Establishing the pipeline infrastructure
  • Verifying your code
  • Securing your code
  • Improving your pipeline
  • Delivering your code to the right environment
  • Summary
  • Chapter 12: Troubleshooting and the Road Ahead with GitLab
  • Technical requirements
  • Troubleshooting and best practices for common pipeline problems
  • Managing your operational infrastructure using GitOps
  • Future industry trends
  • Conclusion and next steps
  • Index
  • Other Books You May Enjoy