Understanding GitOps - Akamai
Understanding GitOps - Akamai
EBOOK GITOPS
Copyright 2023 Akamai Technologies. All rights reserved.
Any trademarked names and logos are property of their respective companies.
Table of Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 03
What is GitOps? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 04
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
About . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
U N D E RSTANDI NG G I TOPS
Copyright 2023 Akamai Technologies. All rights reserved.
Any trademarked names and logos are property of their respective companies.
Introduction | 03
Introduction
GitOps is an operational framework that aims to streamline and automate the deployment and management
of applications and infrastructure using Git as the single source of truth. GitOps is popular in the cloud-native
ecosystem, particularly in Kubernetes-based environments, where managing Infrastructure as Code (IaC)
is crucial.
U N D E RSTANDI NG G I TOPS
Copyright 2023 Akamai Technologies. All rights reserved.
Any trademarked names and logos are property of their respective companies.
What is GitOps? | 04
What is GitOps?
GitOps is an operational framework that aims to streamline and automate the deployment and management
of applications and infrastructure using Git as the single source of truth. The term “GitOps” combines the version
control system Git with operations (Ops), emphasizing using Git principles and workflows for managing
infrastructure and applications.
In GitOps, the system’s desired state (including the application code, configuration, and infrastructure)
is defined and stored in a Git repository. This repository serves as the central source of truth for the entire
system. Any changes to the system are made by modifying the Git repository, which triggers an automated
process to reconcile the current state with the desired one. GitOps is possible due to IaC tools that allow you
to create and manage your infrastructure using declarative configuration files.
GitOps is a paradigm that empowers developers to manage tasks that operations might otherwise handle.
Traditionally, a company’s IT department oversees operations processes and services, including:
In that model, developers are siloed from these activities. GitOps aims to remove those silos, and enable
operations to employ the same tools and methodologies developers use for efficient collaboration.
U N D E RSTANDI NG G I TOPS
Copyright 2023 Akamai Technologies. All rights reserved.
Any trademarked names and logos are property of their respective companies.
GitOps and DevOps | 05
DevOps is an approach that combines development and operations practices to foster collaboration and
efficiency throughout the software development lifecycle. It emphasizes automation, continuous integration
and continuous delivery (CI/CD), and cross-functional teamwork. DevOps aims to break down silos between
development, operations, and other teams to enable faster and more reliable software delivery.
GitOps is a specific implementation of DevOps that emphasizes using Git as the single source of truth for
declarative infrastructure and application code. As we learned, it focuses on managing the entire software
delivery process using Git repositories. In GitOps, the system’s desired state is versioned and stored in a Git
repository, and a reconciliation loop continuously monitors and enforces that desired state.
U N D E RSTANDI NG G I TOPS
Copyright 2023 Akamai Technologies. All rights reserved.
Any trademarked names and logos are property of their respective companies.
GitOps and DevOps | 06
Write Automated
Code Testing Deploy
GitOps
Pipeline
Version Control Image Kubernetes
Repository Repository
Code Commit
(Multiple Unit & Integration Functional Configure Deployment
Developers) Tests Testing Automation (Containers, VMs)
DevOps
Pipeline
Build Create User Acceptance Load
Image Testing Testing
GitOps borrows best practices from DevOps and applies them to infrastructure automation,
including version control, collaboration, compliance, and CI/CD.
Tools like Kubernetes support software development lifecycle automation. Because many businesses
containerize deployments to scale applications and services, they often depend on third-party, cloud-based
services to host their infrastructure. This dependence has led to the rise of infrastructure automation to achieve
a level of elasticity not practical with traditional, or on-premise, infrastructure.
U N D E RSTANDI NG G I TOPS
Copyright 2023 Akamai Technologies. All rights reserved.
Any trademarked names and logos are property of their respective companies.
Automating Pipelines with IaC and CI/CD | 07
IaC is a technique for deploying and managing infrastructure through portable configuration files instead
of a manual or interactive process. This approach is not limited to just infrastructure primitives or managed
cloud services–it is applicable to all manageable aspects, such as resource deployment, software installations,
and network and security policies, among others. This type of unified management is commonly referred
to as “X as Code,” which provides a templated and documented desired state for your deployment. It allows
infrastructure provisioning and management to be treated as code, thereby enabling automation, version
control, and reproducibility. In GitOps, the system’s desired state is versioned and stored in a Git repository,
and a reconciliation loop continuously monitors and enforces that desired state.
U N D E RSTANDI NG G I TOPS
Copyright 2023 Akamai Technologies. All rights reserved.
Any trademarked names and logos are property of their respective companies.
Automating Pipelines with IaC and CI/CD | 08
CI/CD is a methodology and set of best practices allowing developers to rapidly and reliably deliver quality and
securely coded applications. Continuous Integration (CI) is the process of automatically validating the changes
by building, testing, and packaging the updated application code reliably and consistently. Triggering a CI
workflow on every push event provides a smoother, faster development process. Developers can discover bugs,
security vulnerabilities, and conflicts before changes are deployed to an environment.
A Continuous Delivery (CD) workflow takes over after successfully completing the CI workflow. This is the
automated and consistent process of delivering the updated application code to a selected environment.
This workflow can facilitate deploying the application directly onto staging or production servers, or shipping
a new release to a container registry or mobile distribution platform.
CI CD
Contiguous Integration Contiguous Deployment
A GitOps approach puts these core DevOps practices of IaC and CI/CD into operation. GitOps utilizes IaC to define
infrastructure as code and CI/CD practices to automate the deployment process. This results in more efficient,
reliable, and scalable infrastructure and application management.
U N D E RSTANDI NG G I TOPS
Copyright 2023 Akamai Technologies. All rights reserved.
Any trademarked names and logos are property of their respective companies.
GitOps Principles and Workflow | 09
Declarative Infrastructure
The desired state of the infrastructure and applications is declared in a Git repository using
declarative configuration files. These files describe the desired state of the system rather than
specifying the steps to reach that state.
Version Control
Git is used as the version control system, providing a history of changes made to the system over time.
This enables rollbacks, auditing, and collaboration among team members.
Reconciliation Loop
A GitOps tool or operator continuously monitors the Git repository for changes. When a change
is detected, the tool reconciles the system’s current state with the desired state defined in the
repository. It applies any necessary updates or rollbacks to achieve the desired state.
Within the GitOps workflow, there is a high level of automation, and a much higher probability that your
deployment will work exactly as expected.
In addition to deployment efficiency, using Git as a single source of truth allows you to rely on in-depth version
control in case you need to roll back changes. Historical information is readily available to see what change
caused a bug or other problems. This ultimately improves your reliability posturing and provides additional
security guardrails.
U N D E RSTANDI NG G I TOPS
Copyright 2023 Akamai Technologies. All rights reserved.
Any trademarked names and logos are property of their respective companies.
Using GitOps with Akamai Cloud Computing Services | 10
Here are other resources to help you get started with Git to create your own GitOps pipeline.
Resources
• Set up Git (GitHub documentation)
• Install GitLab with Docker
• Resolve Merge Conflicts in Git
• View all Git guides in Akamai’s documentation library
U N D E RSTANDI NG G I TOPS
Copyright 2023 Akamai Technologies. All rights reserved.
Any trademarked names and logos are property of their respective companies.
Conclusion | 11
Conclusion
You can see that while GitOps and DevOps share many of the same core components, GitOps focuses more
on tools and frameworks to enable the culture changes of DevOps. With GitOps, you’ll accelerate DevOps
practices and apply them to automation and deployment cycles, enabling developers to work in code
repositories they’re familiar with while empowering operations to build automated and efficient environments.
U N D E RSTANDI NG G I TOPS
Copyright 2023 Akamai Technologies. All rights reserved.
Any trademarked names and logos are property of their respective companies.
About | 12
www.akamai.com
www.linode.com
U N D E RSTANDI NG G I TOPS
Copyright 2023 Akamai Technologies. All rights reserved.
Any trademarked names and logos are property of their respective companies.
Cloud Computing Services
Developers Trust