<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Continuous Integration/Continuous Delivery on Example Academy</title><link>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/</link><description>Recent content in Continuous Integration/Continuous Delivery on Example Academy</description><generator>Hugo</generator><language>en</language><atom:link href="https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/index.xml" rel="self" type="application/rss+xml"/><item><title>CI/CD Overview</title><link>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/overview/</guid><description>&lt;h3 id="continuous-delivery" class="heading-link">
 Continuous Delivery
 &lt;a href="#continuous-delivery" class="heading-anchor" aria-label="Permalink to this heading">🔗&lt;/a>
&lt;/h3>
&lt;p>&lt;a href="https://www.atlassian.com/continuous-delivery/principles">Continuous Delivery (CD)&lt;/a> is a software development practice that aims to automate the process of releasing software changes to production environments in a frequent and reliable manner. It builds upon the concept of Continuous Integration (CI) by extending the automated pipeline to include deployment and release processes. In continuous delivery, the goal is to have software in a state where it can be released to production at any given time.&lt;/p></description></item><item><title>CI/CD - Why Should You Bother?</title><link>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/why/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/why/</guid><description>&lt;h3 id="why-cicd-matters" class="heading-link">
 Why CI/CD Matters?
 &lt;a href="#why-cicd-matters" class="heading-anchor" aria-label="Permalink to this heading">🔗&lt;/a>
&lt;/h3>
&lt;p>In the ever-evolving landscape of software development, the adoption of Continuous Integration and Continuous Delivery (CI/CD) has become not just a trend but a fundamental necessity. This chapter aims to provide a comprehensive understanding of why developers and engineers must prioritize and embrace CI/CD practices.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>The Need for Speed &amp;amp; Efficiency&lt;/strong>: One of the primary reasons to incorporate CI/CD is the need for rapid and efficient software delivery. In a world where time-to-market is a critical success factor, developers face immense pressure to deliver high-quality code quickly. CI/CD automates and streamlines the entire development pipeline, from code integration to deployment, ensuring a swift and efficient release process.&lt;/p></description></item><item><title>What Is Continuous Integration?</title><link>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/ci/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/ci/</guid><description>&lt;h3 id="continuous-integration-ci" class="heading-link">
 Continuous Integration (CI)
 &lt;a href="#continuous-integration-ci" class="heading-anchor" aria-label="Permalink to this heading">🔗&lt;/a>
&lt;/h3>
&lt;p>Continuous Integration (CI) is a pivotal methodology in software development, reshaping the way teams collaborate and deliver high-quality code. At its core, CI involves the regular merging of code changes from multiple contributors into a shared repository. This iterative process serves as a proactive measure to identify and rectify integration issues at an early stage, fostering a development environment characterized by stability and efficiency.&lt;/p></description></item><item><title>What Is Continuous Delivery (CD)?</title><link>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/c-delivery/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/c-delivery/</guid><description>&lt;h3 id="continuous-delivery-cd" class="heading-link">
 Continuous Delivery (CD)
 &lt;a href="#continuous-delivery-cd" class="heading-anchor" aria-label="Permalink to this heading">🔗&lt;/a>
&lt;/h3>
&lt;p>Continuous Delivery is a software development practice that extends the principles of Continuous Integration to ensure that the codebase is always in a deployable state. The primary objective is to make software releases reliable, predictable, and sustainable. In a Continuous Delivery pipeline, automated testing, and deployment processes are integral components.&lt;/p>

&lt;h3 id="key-characteristics" class="heading-link">
 Key Characteristics
 &lt;a href="#key-characteristics" class="heading-anchor" aria-label="Permalink to this heading">🔗&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Automated Testing&lt;/strong>: Similar to Continuous Integration, Continuous Delivery places a strong emphasis on automated testing. This includes unit tests, integration tests, and other forms of testing that validate the correctness and functionality of the codebase.&lt;/p></description></item><item><title>What Is Continuous Deployment (CD)?</title><link>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/cd/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/cd/</guid><description>&lt;h3 id="continuous-deployment-cd" class="heading-link">
 Continuous Deployment (CD)
 &lt;a href="#continuous-deployment-cd" class="heading-anchor" aria-label="Permalink to this heading">🔗&lt;/a>
&lt;/h3>
&lt;p>Continuous Deployment takes the principles of Continuous Delivery a step further by automatically deploying every code change that passes automated testing directly to the production environment. The goal is to maximize efficiency and deliver new features or bug fixes to end-users as quickly as possible.&lt;/p>

&lt;h3 id="key-characteristics" class="heading-link">
 Key Characteristics
 &lt;a href="#key-characteristics" class="heading-anchor" aria-label="Permalink to this heading">🔗&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Automated Production Deployment&lt;/strong>: The hallmark of Continuous Deployment is the automatic deployment of code changes to the production environment once they pass automated tests. This minimizes manual intervention in the release process.&lt;/p></description></item><item><title>Continuous Deployment and Continuous Delivery</title><link>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/cicd/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/cicd/</guid><description>&lt;p>Continuous Deployment (CD) and Continuous Delivery (CD) are practices closely related to Continuous Integration (CI) in the realm of software development. While they share some similarities, each has distinct characteristics that contribute to the overall goal of delivering high-quality software efficiently.&lt;/p>
&lt;p>In summary, Continuous Delivery and Continuous Deployment are practices that extend the benefits of Continuous Integration. Continuous Delivery emphasizes a reliable and automated process up to the production environment, with human intervention required for the final release decision. On the other hand, Continuous Deployment takes automation further by automatically deploying code changes to production, providing immediate access to new features for end-users. The choice between Continuous Delivery and Continuous Deployment depends on factors such as the organization&amp;rsquo;s risk tolerance, regulatory requirements, and the need for human oversight in the release process.&lt;/p></description></item><item><title>Continuous Integration (CI) Principles and Practices</title><link>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/ci-principles/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/ci-principles/</guid><description>&lt;h3 id="continuous-integration-ci-principles" class="heading-link">
 Continuous Integration (CI) Principles
 &lt;a href="#continuous-integration-ci-principles" class="heading-anchor" aria-label="Permalink to this heading">🔗&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Frequent Code Integration&lt;/strong>: Developers integrate their code changes into a shared repository frequently, ensuring that the codebase is continuously evolving in a collaborative manner.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Automated Builds&lt;/strong>: Every integration triggers an automated build process, including compiling the code, running tests, and creating executable artifacts. Automation ensures consistency and reliability.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Automated Testing&lt;/strong>: A comprehensive suite of automated tests, including unit tests and integration tests, is run with each integration to detect and address issues early in the development process.&lt;/p></description></item><item><title>Continuous Delivery (CD) and Continuous Deployment (CD) Principles and Practices</title><link>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/cd-principles/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/cd-principles/</guid><description>&lt;h3 id="principles" class="heading-link">
 Principles
 &lt;a href="#principles" class="heading-anchor" aria-label="Permalink to this heading">🔗&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Consistent Deployment Process&lt;/strong>: Ensure that the deployment process is consistent and repeatable, reducing the risk of errors and ensuring that each release is reliable.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Automated Deployment&lt;/strong>: Automate the deployment process to create a streamlined and efficient method for releasing software. This includes deploying to staging environments for additional testing.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Environment Parity&lt;/strong>: Strive for parity between different environments, such as development, staging, and production, to minimize issues related to environment-specific differences.&lt;/p></description></item><item><title>Understanding Release Strategies</title><link>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/stategies/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/stategies/</guid><description>&lt;h3 id="release-strategies" class="heading-link">
 Release Strategies
 &lt;a href="#release-strategies" class="heading-anchor" aria-label="Permalink to this heading">🔗&lt;/a>
&lt;/h3>
&lt;p>Release strategies play a crucial role in the software development lifecycle, determining how and when new features, enhancements, and bug fixes are delivered to end-users. Different release strategies offer varying degrees of control, risk management, and flexibility.&lt;/p>

&lt;h4 id="rolling-release" class="heading-link">
 Rolling Release
 &lt;a href="#rolling-release" class="heading-anchor" aria-label="Permalink to this heading">🔗&lt;/a>
&lt;/h4>
&lt;p>In a rolling release strategy, new features and updates are continuously and incrementally released as soon as they are ready. There are no distinct version numbers or major releases. The software is always in a state of evolution.&lt;/p></description></item><item><title>GitOps as a Deployment Tool</title><link>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/gitops/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/gitops/</guid><description>&lt;h3 id="gitops-overview" class="heading-link">
 GitOps Overview
 &lt;a href="#gitops-overview" class="heading-anchor" aria-label="Permalink to this heading">🔗&lt;/a>
&lt;/h3>
&lt;p>GitOps is a deployment methodology that leverages Git as a single source of truth for infrastructure and application configuration. This approach enables developers to manage their applications and infrastructure in a declarative manner, using familiar Git workflows.&lt;/p>

&lt;h3 id="key-principles-of-gitops" class="heading-link">
 Key principles of GitOps
 &lt;a href="#key-principles-of-gitops" class="heading-anchor" aria-label="Permalink to this heading">🔗&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Declarative configuration&lt;/strong>: The desired state of the infrastructure and application is declared in Git repositories as YAML manifests, Helm charts, or other declarative formats.&lt;/p></description></item><item><title>Test</title><link>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/test/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://layer5io.github.io/layer5-academy/pr-preview/pr-207/learning-paths/d011fd20-a3f5-4480-883b-dfb34321d168/automation-and-reliability/ci-cd/cicd/test/</guid><description/></item></channel></rss>