<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Codegiant]]></title><description><![CDATA[Exploring the latest in Developer Tools and AI, with insights, tutorials, and updates for tech enthusiasts and professionals alike.]]></description><link>https://blog.codegiant.io</link><image><url>https://substackcdn.com/image/fetch/$s_!lvKU!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7bbe846-06aa-4eba-b8ad-020a4d4b003b_128x128.png</url><title>Codegiant</title><link>https://blog.codegiant.io</link></image><generator>Substack</generator><lastBuildDate>Tue, 21 Apr 2026 05:46:02 GMT</lastBuildDate><atom:link href="https://blog.codegiant.io/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Codegiant]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[codegiant@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[codegiant@substack.com]]></itunes:email><itunes:name><![CDATA[Codegiant]]></itunes:name></itunes:owner><itunes:author><![CDATA[Codegiant]]></itunes:author><googleplay:owner><![CDATA[codegiant@substack.com]]></googleplay:owner><googleplay:email><![CDATA[codegiant@substack.com]]></googleplay:email><googleplay:author><![CDATA[Codegiant]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Deploy AI Apps with Cloudflare]]></title><description><![CDATA[Learn how to leverage Cloudflare's powerful edge computing and security features to deploy AI applications with high availability and low latency.]]></description><link>https://blog.codegiant.io/p/deploy-ai-apps-with-cloudflare</link><guid isPermaLink="false">https://blog.codegiant.io/p/deploy-ai-apps-with-cloudflare</guid><dc:creator><![CDATA[Abdullateef Lawal]]></dc:creator><pubDate>Sat, 07 Dec 2024 00:35:20 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d3be8ae0-9f21-429e-ba58-7fd964eb935b_2400x1256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7hai!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205dc225-8c91-4b92-9ec1-66aae12d5fb2_2400x814.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7hai!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205dc225-8c91-4b92-9ec1-66aae12d5fb2_2400x814.png 424w, https://substackcdn.com/image/fetch/$s_!7hai!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205dc225-8c91-4b92-9ec1-66aae12d5fb2_2400x814.png 848w, https://substackcdn.com/image/fetch/$s_!7hai!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205dc225-8c91-4b92-9ec1-66aae12d5fb2_2400x814.png 1272w, https://substackcdn.com/image/fetch/$s_!7hai!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205dc225-8c91-4b92-9ec1-66aae12d5fb2_2400x814.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7hai!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205dc225-8c91-4b92-9ec1-66aae12d5fb2_2400x814.png" width="1456" height="494" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/205dc225-8c91-4b92-9ec1-66aae12d5fb2_2400x814.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:494,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:354290,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7hai!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205dc225-8c91-4b92-9ec1-66aae12d5fb2_2400x814.png 424w, https://substackcdn.com/image/fetch/$s_!7hai!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205dc225-8c91-4b92-9ec1-66aae12d5fb2_2400x814.png 848w, https://substackcdn.com/image/fetch/$s_!7hai!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205dc225-8c91-4b92-9ec1-66aae12d5fb2_2400x814.png 1272w, https://substackcdn.com/image/fetch/$s_!7hai!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205dc225-8c91-4b92-9ec1-66aae12d5fb2_2400x814.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>Introduction</h1><p>Artificial Intelligence (AI) is transforming the way developers build and deploy applications. As AI capabilities continue to grow, businesses are increasingly adopting machine learning models, natural language processing (NLP), and other AI features in their applications. These features enable the creation of smarter, more intuitive apps, whether it's for chatbots, recommendation systems, or automated content generation. However, while the potential is vast, deploying AI apps can often be complex, requiring substantial computational resources and infrastructure management.</p><p>This is where <strong><a href="https://cloudflare.com">Cloudflare</a></strong> steps in, offering a suite of tools and services that make it easier for developers to deploy AI apps globally, while leveraging its fast, secure, and highly scalable infrastructure. With<a href="https://workers.cloudflare.com/"> </a><strong><a href="https://workers.cloudflare.com/">Cloudflare Workers</a></strong>, you can build serverless applications that run at the edge of the network, reducing latency and enhancing performance. <strong><a href="https://www.cloudflare.com/developer-platform/products/workers-ai/">Cloudflare Workers AI</a></strong> enables you to incorporate powerful AI models into your applications without worrying about managing servers or extensive infrastructure.</p><p>In this article, we will explore how Cloudflare's Full-Stack AI Building Blocks can help developers deploy scalable AI applications with ease. We will walk through the process of building a simple "Hello World" AI application using the <strong><a href="https://hono.dev/">Hono</a></strong> framework and deploying it to Cloudflare Workers.</p><h1>What are Full-Stack AI Building Blocks on Cloudflare?</h1><p>Cloudflare provides a robust platform for deploying AI-powered applications by combining serverless computing with advanced AI capabilities. This infrastructure simplifies and scales the integration of AI into applications.</p><p>Key components of Cloudflare's AI ecosystem include:</p><ul><li><p><strong>Cloudflare Workers AI</strong>: Enables developers to deploy AI models directly on Cloudflare's global network. It allows for inference tasks with pre-trained models, such as natural language processing (NLP) and image recognition.</p></li><li><p><strong>AI Models</strong>: <a href="https://developers.cloudflare.com/workers-ai/models/">Cloudflare offers a catalog</a> of popular models like <strong>Llama-2</strong>, <strong>Whisper</strong>, and <strong>ResNet50</strong>, which developers can integrate into their apps for advanced AI functionalities.</p></li><li><p><strong>Vectorize</strong>: <a href="https://developers.cloudflare.com/vectorize/">A globally distributed vector database</a> for generating and storing embeddings. It&#8217;s ideal for AI tasks like search, recommendations, and anomaly detection.</p></li><li><p><strong><a href="https://developers.cloudflare.com/ai-gateway/">AI Gateway</a></strong>: Provides control over AI applications with features like caching, rate limiting, and analytics, ensuring reliability, scalability, and cost efficiency.</p></li><li><p><strong><a href="https://www.cloudflare.com/developer-platform/products/r2/">R2 Storage</a></strong>: Offers cost-effective, egress-free storage for large datasets, making it perfect for training custom AI models or moving data between cloud environments.</p></li></ul><h1>Create &#8220;Hello World&#8221; Hono App </h1><p>Before we dive into deploying our AI, let&#8217;s first set up a local development environment. To do this, we'll use <strong><a href="https://hono.dev/">Hono</a></strong>, a lightweight, fast, and easy-to-use web framework that is perfect for serverless environments like Cloudflare Workers. Hono is designed to provide developers with a simple way to build APIs and applications that are optimized for the edge, making it a great choice for creating our "Hello World" AI app.</p><p>To get started, open your terminal and run the following command to create a new Cloudflare project:</p><pre><code>npm create cloudflare@latest</code></pre><p>Upon running the command, you'll be prompted with a few questions like:</p><ol><li><p><strong>Directory Setup</strong>: Choose the directory where you want to create the app. For this example, we'll call it <code>ai-demo</code>:</p><pre><code>dir ./ai-demo</code></pre></li><li><p><strong>Framework Selection</strong>: Select <strong>Hono</strong> from the list of frameworks. You will see a list of available frameworks, and Hono is one of the options. It&#8217;s a popular framework for serverless applications due to its speed and simplicity.</p><pre><code>Select from the most popular full-stack web frameworks
Which development framework do you want to use?
&#8594; Hono</code></pre></li></ol><p>Complete the steps and Cloudflare will generate a new directory called <code>ai-demo</code>, where all your project files will reside. The project is now set up with Hono as your framework of choice. You should see this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3ep-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd51dde48-5218-403a-931c-9259cdc51729_2100x822.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3ep-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd51dde48-5218-403a-931c-9259cdc51729_2100x822.png 424w, https://substackcdn.com/image/fetch/$s_!3ep-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd51dde48-5218-403a-931c-9259cdc51729_2100x822.png 848w, https://substackcdn.com/image/fetch/$s_!3ep-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd51dde48-5218-403a-931c-9259cdc51729_2100x822.png 1272w, https://substackcdn.com/image/fetch/$s_!3ep-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd51dde48-5218-403a-931c-9259cdc51729_2100x822.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3ep-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd51dde48-5218-403a-931c-9259cdc51729_2100x822.png" width="1456" height="570" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d51dde48-5218-403a-931c-9259cdc51729_2100x822.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:570,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:768551,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3ep-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd51dde48-5218-403a-931c-9259cdc51729_2100x822.png 424w, https://substackcdn.com/image/fetch/$s_!3ep-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd51dde48-5218-403a-931c-9259cdc51729_2100x822.png 848w, https://substackcdn.com/image/fetch/$s_!3ep-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd51dde48-5218-403a-931c-9259cdc51729_2100x822.png 1272w, https://substackcdn.com/image/fetch/$s_!3ep-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd51dde48-5218-403a-931c-9259cdc51729_2100x822.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>After the setup, navigate to the newly created <strong>ai-demo</strong> directory and open it in your preferred code editor. </p><pre><code># Navigate to the "ai-demo" directory
cd ai-demo

# Open the current directory in Visual Studio Code
code .</code></pre><p>You&#8217;ll notice the <strong>index.ts</strong> file, where the core application logic will live. Here&#8217;s the simple code for our "Hello World" app using the Hono framework:</p><pre><code>import { Hono } from 'hono'

const app = new Hono()

app.get('/', (c) =&gt; c.text('Hello World!'))

export default app</code></pre><p>You can run the local server with the following command:</p><pre><code>npm run dev</code></pre><p>Head over to <code>http://localhost:8787</code> in your browser, and you should see your "Hello World" app running locally. This step demonstrates how easy it is to get started with the Hono framework in Cloudflare Workers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!z5ee!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8737edd-1953-4411-82b7-67ee99427c65_1602x660.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z5ee!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8737edd-1953-4411-82b7-67ee99427c65_1602x660.png 424w, https://substackcdn.com/image/fetch/$s_!z5ee!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8737edd-1953-4411-82b7-67ee99427c65_1602x660.png 848w, https://substackcdn.com/image/fetch/$s_!z5ee!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8737edd-1953-4411-82b7-67ee99427c65_1602x660.png 1272w, https://substackcdn.com/image/fetch/$s_!z5ee!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8737edd-1953-4411-82b7-67ee99427c65_1602x660.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!z5ee!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8737edd-1953-4411-82b7-67ee99427c65_1602x660.png" width="1456" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d8737edd-1953-4411-82b7-67ee99427c65_1602x660.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61630,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!z5ee!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8737edd-1953-4411-82b7-67ee99427c65_1602x660.png 424w, https://substackcdn.com/image/fetch/$s_!z5ee!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8737edd-1953-4411-82b7-67ee99427c65_1602x660.png 848w, https://substackcdn.com/image/fetch/$s_!z5ee!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8737edd-1953-4411-82b7-67ee99427c65_1602x660.png 1272w, https://substackcdn.com/image/fetch/$s_!z5ee!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8737edd-1953-4411-82b7-67ee99427c65_1602x660.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>Integrate AI with Cloudflare</h1><p>Now that we&#8217;ve set up the basic app, it&#8217;s time to add some AI power to it! Cloudflare Workers AI allows us to run inference on models like Llama-3.1-8b-instruct, hosted on Cloudflare&#8217;s global network. You don&#8217;t need to manage the infrastructure&#8212;Cloudflare takes care of it for you. It also provides a generous free tier, making it accessible for developers to experiment and build with minimal cost.</p><p>To enable AI features, you need to configure your project&#8217;s <code>wrangler.toml</code> file. Uncomment the AI section to connect your Worker to Cloudflare&#8217;s AI models:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qq_0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab074b8d-282a-4834-a11d-11f9f685016f_2415x678.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qq_0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab074b8d-282a-4834-a11d-11f9f685016f_2415x678.png 424w, https://substackcdn.com/image/fetch/$s_!qq_0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab074b8d-282a-4834-a11d-11f9f685016f_2415x678.png 848w, https://substackcdn.com/image/fetch/$s_!qq_0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab074b8d-282a-4834-a11d-11f9f685016f_2415x678.png 1272w, https://substackcdn.com/image/fetch/$s_!qq_0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab074b8d-282a-4834-a11d-11f9f685016f_2415x678.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qq_0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab074b8d-282a-4834-a11d-11f9f685016f_2415x678.png" width="1456" height="409" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab074b8d-282a-4834-a11d-11f9f685016f_2415x678.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:409,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:180465,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qq_0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab074b8d-282a-4834-a11d-11f9f685016f_2415x678.png 424w, https://substackcdn.com/image/fetch/$s_!qq_0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab074b8d-282a-4834-a11d-11f9f685016f_2415x678.png 848w, https://substackcdn.com/image/fetch/$s_!qq_0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab074b8d-282a-4834-a11d-11f9f685016f_2415x678.png 1272w, https://substackcdn.com/image/fetch/$s_!qq_0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab074b8d-282a-4834-a11d-11f9f685016f_2415x678.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Next, let&#8217;s add the AI-powered feature to the app. We&#8217;ll create an asynchronous function that interacts with a pre-trained model from Cloudflare&#8217;s AI catalog (e.g., <strong>Llama-3.1</strong>).</p><p>Here&#8217;s how you can add the function in <code>index.ts</code>:</p><pre><code>import { Hono } from 'hono'

const app = new Hono&lt;{ Bindings: CloudflareBindings }&gt;()

app.get('/', (c) =&gt; {
  return c.text('Hello Hono!')
})

app.get('/hello-ai', async(c) =&gt; {
  const result = await c.env.AI.run("@cf/meta/llama-3.1-8b-instruct", {
    messages: [
      { role: 'user', content: 'Say Hello world in five different languages: English, Spanish, French, German, Chinese'}
    ] 
  })
  return c.json(result)
})

export default app</code></pre><p>This code defines two routes: one at <code>/</code> that returns a simple "Hello Hono!" message, and another at <code>/hello-ai</code> that queries the AI model and returns the output in JSON format. The AI model will translate "Hello World" into five different languages based on the input message.</p><p>If you're using <strong>VSCode</strong> and see an error with the <code>c.env.AI.run</code> method, you may need to generate type definitions for Cloudflare bindings. To do this, run the following command in your terminal:</p><pre><code>npm run cf-typegen</code></pre><p>This command will generate the necessary type definitions for your project, which should resolve the error.</p><p>With your application code updated, it's time to deploy the app to Cloudflare Workers. Run the following command to deploy:</p><pre><code>npm run deploy</code></pre><p>If your Cloudflare account isn&#8217;t connected yet, running this command will trigger a web-based authentication process. You will be redirected to log in to Cloudflare, where you will authorize <code>wrangler</code> to access your account. Once the authentication is complete, you will see the message: <strong>"You have granted authorization to Wrangler!"</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uMlJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddbe5fc-2ea7-45b2-bd1e-96a21d1ae01d_1326x832.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uMlJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddbe5fc-2ea7-45b2-bd1e-96a21d1ae01d_1326x832.png 424w, https://substackcdn.com/image/fetch/$s_!uMlJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddbe5fc-2ea7-45b2-bd1e-96a21d1ae01d_1326x832.png 848w, https://substackcdn.com/image/fetch/$s_!uMlJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddbe5fc-2ea7-45b2-bd1e-96a21d1ae01d_1326x832.png 1272w, https://substackcdn.com/image/fetch/$s_!uMlJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddbe5fc-2ea7-45b2-bd1e-96a21d1ae01d_1326x832.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uMlJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddbe5fc-2ea7-45b2-bd1e-96a21d1ae01d_1326x832.png" width="1326" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ddbe5fc-2ea7-45b2-bd1e-96a21d1ae01d_1326x832.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:155704,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uMlJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddbe5fc-2ea7-45b2-bd1e-96a21d1ae01d_1326x832.png 424w, https://substackcdn.com/image/fetch/$s_!uMlJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddbe5fc-2ea7-45b2-bd1e-96a21d1ae01d_1326x832.png 848w, https://substackcdn.com/image/fetch/$s_!uMlJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddbe5fc-2ea7-45b2-bd1e-96a21d1ae01d_1326x832.png 1272w, https://substackcdn.com/image/fetch/$s_!uMlJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ddbe5fc-2ea7-45b2-bd1e-96a21d1ae01d_1326x832.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This confirms that your Cloudflare account is now connected and authorized for deployments.</p><p>After a successful deployment, you will receive a URL for your deployed application. This URL will look something like this:</p><pre><code>https://workers-ai.your-subdomain.workers.dev</code></pre><p>You can visit this URL in your browser to access your "Hello World" app with integrated AI functionality. When you visit <code>/hello-ai</code>, you will get the response generated by the Llama AI model, saying "Hello World" in five different languages.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I9a5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198831c-706c-42ce-a4de-12f84c3704a8_3354x1124.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I9a5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198831c-706c-42ce-a4de-12f84c3704a8_3354x1124.png 424w, https://substackcdn.com/image/fetch/$s_!I9a5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198831c-706c-42ce-a4de-12f84c3704a8_3354x1124.png 848w, https://substackcdn.com/image/fetch/$s_!I9a5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198831c-706c-42ce-a4de-12f84c3704a8_3354x1124.png 1272w, https://substackcdn.com/image/fetch/$s_!I9a5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198831c-706c-42ce-a4de-12f84c3704a8_3354x1124.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I9a5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198831c-706c-42ce-a4de-12f84c3704a8_3354x1124.png" width="1456" height="488" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1198831c-706c-42ce-a4de-12f84c3704a8_3354x1124.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:488,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:326023,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I9a5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198831c-706c-42ce-a4de-12f84c3704a8_3354x1124.png 424w, https://substackcdn.com/image/fetch/$s_!I9a5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198831c-706c-42ce-a4de-12f84c3704a8_3354x1124.png 848w, https://substackcdn.com/image/fetch/$s_!I9a5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198831c-706c-42ce-a4de-12f84c3704a8_3354x1124.png 1272w, https://substackcdn.com/image/fetch/$s_!I9a5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1198831c-706c-42ce-a4de-12f84c3704a8_3354x1124.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Congratulations! You&#8217;ve successfully deployed your AI application.</p><p>With just a few lines of code, Cloudflare Workers AI and the Hono framework allow you to easily integrate powerful AI models into your applications. Whether you are building a simple "Hello World" app or a complex AI-powered solution, Cloudflare&#8217;s infrastructure makes it easy to deploy and scale applications globally.</p><h3>Vectorize: Simplifying AI with a Global Vector Database</h3><p>Cloudflare&#8217;s <strong>Vectorize</strong> is a powerful tool designed to enable developers to build AI applications using vector embeddings&#8212;numerical representations of objects such as text, images, and audio. By integrating <strong>Vectorize</strong> into your AI application, you can perform tasks such as semantic search, recommendation systems, anomaly detection, and more.</p><p>Vector embeddings play a crucial role in AI workflows by allowing models to compare and understand relationships between different pieces of data. For example, you could generate embeddings using <strong>Workers AI</strong> or third-party services like OpenAI, and store them in <strong>Cloudflare's globally distributed vector database</strong>. These embeddings could then be used for sophisticated queries to fetch results, such as retrieving similar documents or recommending items to users.</p><p>The beauty of <strong>Vectorize</strong> lies in its seamless integration with Cloudflare's infrastructure. By storing your embeddings in <strong>Cloudflare R2</strong> storage, <strong>KV</strong>, or <strong>D1</strong>, you can create end-to-end AI applications that leverage powerful search and data management functionalities&#8212;without needing additional infrastructure.</p><h3><strong>R2 Storage: Cost-Effective, Scalable Storage for AI Workflows</strong></h3><p>Cloudflare's <strong>R2 Storage</strong> offers a unique advantage for developers dealing with large amounts of unstructured data, such as AI model training datasets or results from machine learning models. Unlike traditional cloud storage providers, R2 eliminates egress fees, making it a cost-effective solution for AI workloads that require extensive data movement and storage.</p><p>The <strong>S3-compatible API</strong> ensures you have the flexibility to use existing tools, libraries, and extensions, making it easier to integrate into your current infrastructure. For AI models that require access to vast datasets, <strong>R2&#8217;s egress-free policy</strong> is a significant cost-saving feature.</p><p>In addition, <strong>R2</strong> helps optimize the storage and delivery of dynamic content, enhancing AI applications that rely on real-time data. Whether you're building AI for image classification, NLP, or recommendation systems, <strong>R2</strong> provides the storage backbone necessary for seamless, scalable performance.</p><h3><strong>AI Gateway: Empowering AI Apps with Visibility and Control</strong></h3><p>Cloudflare's <strong>AI Gateway</strong> gives developers the tools to observe and control their AI applications, enabling them to optimize performance, reduce costs, and improve scalability. By integrating <strong>AI Gateway</strong> into your AI app, you can gain visibility through <strong>analytics and logging</strong>, helping you understand how users are interacting with your models.</p><p><strong>AI Gateway</strong> also includes features like <strong>caching</strong>, <strong>rate limiting</strong>, and <strong>model fallback</strong> to improve resilience and reduce unnecessary costs. For example, you can cache frequent queries to reduce model usage, control how many requests each user can make, and define fallback models to ensure that your AI app remains available even if one model experiences an issue.</p><p><strong>AI Gateway</strong> also supports a variety of popular AI providers, including <strong>Workers AI</strong>, <strong>OpenAI</strong>, <strong>Azure OpenAI</strong>, and <strong>Hugging Face</strong>, allowing you to easily integrate multiple AI models and manage their scaling with minimal configuration.</p><h3><strong>AI Firewall: Protecting Your AI Apps from Malicious Attacks</strong></h3><p>As AI models become more integrated into applications, security becomes increasingly important. <a href="https://blog.cloudflare.com/firewall-for-ai/">Cloudflare is developing </a><strong><a href="https://blog.cloudflare.com/firewall-for-ai/">Firewall for AI</a></strong>, a specialized layer of protection for <strong>Large Language Models (LLMs)</strong>. This firewall aims to identify and block potential abuses and attacks before they reach your AI models. The growing use of <strong>LLMs</strong> in connected applications exposes new vulnerabilities, such as <strong>prompt injections</strong> and <strong>model denial-of-service attacks</strong>. <strong>Firewall for AI</strong> works by analyzing incoming prompts for harmful content, blocking malicious requests, and preventing unauthorized access to sensitive information stored within models.</p><p>Moreover, <strong>Firewall for AI</strong> can protect against the unintended leakage of sensitive data, a concern when LLMs are used in public-facing applications. Cloudflare&#8217;s ability to offer this protection at the edge of its global network ensures that these security measures are applied quickly and efficiently, reducing the risk of data breaches and misuse.</p><h3><strong>Bringing It All Together: A Scalable and Secure AI Ecosystem</strong></h3><p>Cloudflare's ecosystem of tools &#8212; <strong>Workers AI</strong>, <strong>Vectorize</strong>, <strong>R2 Storage</strong>, <strong>AI Gateway</strong>, and <strong>AI Firewall</strong> &#8212; offers a powerful, integrated solution for building, deploying, and managing AI-powered applications at scale. </p><p>Cloudflare&#8217;s AI tools give developers a reliable, cost-effective, and scalable platform for integrating cutting-edge AI functionality into their applications &#8212; all while maintaining performance, security, and compliance with data privacy standards. With these tools at your disposal, you can quickly and easily build AI-driven apps that are ready for deployment and growth.</p><div><hr></div><p><a href="https://codegiant.io">Codegiant&#8217;s One-Click SaaS Template</a> is a full-stack solution designed to rapidly deploy and scale applications. With integrating Cloudflare AI, serverless hosting, and caching, it optimizes performance and scalability. The centralized monorepo setup simplifies managing front-end, back-end, and resources, while integrated tools for authentication, billing, analytics, and SEO save you time. A ready-to-use Shadcn/UI template with Tailwind CSS lets you focus on growth, not setup.</p><p>Deploy in minutes with one-click, ensuring your app scales as your SaaS grows. Plus, Codegiant is also working on integrating Hono natively, further enhancing the template&#8217;s capabilities. With <a href="https://blog.codegiant.io/p/introducing-genie-ai">Codegiant's GenIE</a>, a coding assistant like Copilot, you can build even faster, streamlining development and accelerating your product's growth.</p>]]></content:encoded></item><item><title><![CDATA[Cloudflare vs. Vercel]]></title><description><![CDATA[Why choose Cloudflare for your infrastructure layer.]]></description><link>https://blog.codegiant.io/p/cloudflare-vs-vercel</link><guid isPermaLink="false">https://blog.codegiant.io/p/cloudflare-vs-vercel</guid><dc:creator><![CDATA[Codegiant]]></dc:creator><pubDate>Mon, 11 Nov 2024 15:54:27 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/60771a43-2439-4968-acd8-d5fa0a9f159b_2400x1256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r8OM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ae62e0d-8285-4494-9823-d2f85631f1a4_2400x560.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r8OM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ae62e0d-8285-4494-9823-d2f85631f1a4_2400x560.png 424w, https://substackcdn.com/image/fetch/$s_!r8OM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ae62e0d-8285-4494-9823-d2f85631f1a4_2400x560.png 848w, https://substackcdn.com/image/fetch/$s_!r8OM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ae62e0d-8285-4494-9823-d2f85631f1a4_2400x560.png 1272w, https://substackcdn.com/image/fetch/$s_!r8OM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ae62e0d-8285-4494-9823-d2f85631f1a4_2400x560.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r8OM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ae62e0d-8285-4494-9823-d2f85631f1a4_2400x560.png" width="1456" height="340" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ae62e0d-8285-4494-9823-d2f85631f1a4_2400x560.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:340,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:64495,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!r8OM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ae62e0d-8285-4494-9823-d2f85631f1a4_2400x560.png 424w, https://substackcdn.com/image/fetch/$s_!r8OM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ae62e0d-8285-4494-9823-d2f85631f1a4_2400x560.png 848w, https://substackcdn.com/image/fetch/$s_!r8OM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ae62e0d-8285-4494-9823-d2f85631f1a4_2400x560.png 1272w, https://substackcdn.com/image/fetch/$s_!r8OM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ae62e0d-8285-4494-9823-d2f85631f1a4_2400x560.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>As web applications and digital products become central to every industry, developers and businesses need infrastructure that can scale, is cost-effective, and doesn&#8217;t come with a huge learning curve. With the competition between platforms like Cloudflare and Vercel, making the right choice can have a significant impact on both your project's performance and its budget. </p><p>Cloudflare and Vercel are two powerful platforms, each with their own approach to web infrastructure, serverless functions, and data storage. But for teams focused on performance, affordability, and ease of use, one option stands out.</p><p>In this article, we&#8217;ll explore why Cloudflare often proves to be the best option, and how Codegiant&#8217;s integration can streamline your development process further. Let&#8217;s break down what each service offers and why Cloudflare stands out, particularly for teams looking to avoid unexpected costs and improve site speed on a global scale.</p><p>Firstly, let&#8217;s take a brief look into the two platform.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!y0KK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa235d287-9cbb-469b-bf5c-4d6897cbd46b_2068x754.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!y0KK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa235d287-9cbb-469b-bf5c-4d6897cbd46b_2068x754.png 424w, https://substackcdn.com/image/fetch/$s_!y0KK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa235d287-9cbb-469b-bf5c-4d6897cbd46b_2068x754.png 848w, https://substackcdn.com/image/fetch/$s_!y0KK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa235d287-9cbb-469b-bf5c-4d6897cbd46b_2068x754.png 1272w, https://substackcdn.com/image/fetch/$s_!y0KK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa235d287-9cbb-469b-bf5c-4d6897cbd46b_2068x754.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!y0KK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa235d287-9cbb-469b-bf5c-4d6897cbd46b_2068x754.png" width="1456" height="531" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a235d287-9cbb-469b-bf5c-4d6897cbd46b_2068x754.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:531,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:137279,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!y0KK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa235d287-9cbb-469b-bf5c-4d6897cbd46b_2068x754.png 424w, https://substackcdn.com/image/fetch/$s_!y0KK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa235d287-9cbb-469b-bf5c-4d6897cbd46b_2068x754.png 848w, https://substackcdn.com/image/fetch/$s_!y0KK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa235d287-9cbb-469b-bf5c-4d6897cbd46b_2068x754.png 1272w, https://substackcdn.com/image/fetch/$s_!y0KK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa235d287-9cbb-469b-bf5c-4d6897cbd46b_2068x754.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>What is Cloudflare?</h2><p><strong>Cloudflare</strong> is a leading web infrastructure and website security company, offering a comprehensive suite of tools that streamline the delivery of high-performance, secure web applications. </p><p>Founded in 2009, Cloudflare has evolved into a global network spanning over 285 data centers, making it one of the largest and most widely distributed CDN (Content Delivery Network) providers in the world.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!f5Q3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b949f97-786d-4ee7-9082-0d68b4c977ef_1440x915.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!f5Q3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b949f97-786d-4ee7-9082-0d68b4c977ef_1440x915.png 424w, https://substackcdn.com/image/fetch/$s_!f5Q3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b949f97-786d-4ee7-9082-0d68b4c977ef_1440x915.png 848w, https://substackcdn.com/image/fetch/$s_!f5Q3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b949f97-786d-4ee7-9082-0d68b4c977ef_1440x915.png 1272w, https://substackcdn.com/image/fetch/$s_!f5Q3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b949f97-786d-4ee7-9082-0d68b4c977ef_1440x915.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!f5Q3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b949f97-786d-4ee7-9082-0d68b4c977ef_1440x915.png" width="1440" height="915" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b949f97-786d-4ee7-9082-0d68b4c977ef_1440x915.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:915,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:80366,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!f5Q3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b949f97-786d-4ee7-9082-0d68b4c977ef_1440x915.png 424w, https://substackcdn.com/image/fetch/$s_!f5Q3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b949f97-786d-4ee7-9082-0d68b4c977ef_1440x915.png 848w, https://substackcdn.com/image/fetch/$s_!f5Q3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b949f97-786d-4ee7-9082-0d68b4c977ef_1440x915.png 1272w, https://substackcdn.com/image/fetch/$s_!f5Q3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b949f97-786d-4ee7-9082-0d68b4c977ef_1440x915.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Some of it key features and services includes;</p><ul><li><p><strong>Global CDN</strong>: Cloudflare&#8217;s vast network allows developers to serve content quickly, regardless of user location, by caching assets at the edge and delivering them from the nearest server.</p></li><li><p><strong>DNS and Load Balancing</strong>: Cloudflare provides a highly performant DNS service with load balancing capabilities, helping ensure applications stay online during traffic spikes.</p></li><li><p><strong>Security and DDoS Protection</strong>: Known for its robust security features, Cloudflare offers DDoS mitigation, web application firewalls (WAF), and bot protection to safeguard sites.</p></li><li><p><strong>Edge Computing with Workers</strong>: Cloudflare Workers is a serverless computing service that lets developers run code on Cloudflare&#8217;s edge, reducing latency and providing fine-grained control over request handling.</p></li></ul><h2>What is Vercel?</h2><p><strong>Vercel</strong> is a cloud platform that specializes in the deployment and management of frontend applications, particularly those built with popular JavaScript frameworks. Established in 2015, Vercel has quickly gained traction among developers for its simplicity, speed, and powerful integration with <strong>Next.js</strong>, a popular React-based framework also developed by Vercel. Vercel is well-regarded for its streamlined workflow, from git-push to global deployment, and its focus on creating a smooth developer experience.</p><p>Some of its key features and services also includes;</p><ul><li><p><strong>Next.js Integration</strong>: Vercel&#8217;s deep integration with Next.js allows it to offer unique features.</p></li><li><p><strong>Serverless Functions and Edge Functions</strong>: Vercel provides serverless and edge functions, enabling developers to run backend code without managing infrastructure. This feature complements Vercel&#8217;s frontend focus, letting developers deploy full-stack apps.</p></li><li><p><strong>Git-based Workflow</strong>: Vercel&#8217;s deployment process is deeply integrated with GitHub, GitLab, and Bitbucket, allowing for continuous deployment and preview environments for every branch.</p></li><li><p><strong>Image Optimization</strong>: Built-in support for image optimization is available, especially beneficial for applications where page load speed is critical.</p></li><li><p><strong>Custom Domains and SSL</strong>: Vercel makes it easy to add custom domains and secure them with automatic SSL certificates.</p></li></ul><p>Now that we know what the two platform stands for, let&#8217;s explore some comparisons between them. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MJD8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc072c82c-efca-4a55-9dbd-cd88d7e32983_2052x1832.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MJD8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc072c82c-efca-4a55-9dbd-cd88d7e32983_2052x1832.png 424w, https://substackcdn.com/image/fetch/$s_!MJD8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc072c82c-efca-4a55-9dbd-cd88d7e32983_2052x1832.png 848w, https://substackcdn.com/image/fetch/$s_!MJD8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc072c82c-efca-4a55-9dbd-cd88d7e32983_2052x1832.png 1272w, https://substackcdn.com/image/fetch/$s_!MJD8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc072c82c-efca-4a55-9dbd-cd88d7e32983_2052x1832.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MJD8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc072c82c-efca-4a55-9dbd-cd88d7e32983_2052x1832.png" width="1456" height="1300" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c072c82c-efca-4a55-9dbd-cd88d7e32983_2052x1832.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1300,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:372964,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MJD8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc072c82c-efca-4a55-9dbd-cd88d7e32983_2052x1832.png 424w, https://substackcdn.com/image/fetch/$s_!MJD8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc072c82c-efca-4a55-9dbd-cd88d7e32983_2052x1832.png 848w, https://substackcdn.com/image/fetch/$s_!MJD8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc072c82c-efca-4a55-9dbd-cd88d7e32983_2052x1832.png 1272w, https://substackcdn.com/image/fetch/$s_!MJD8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc072c82c-efca-4a55-9dbd-cd88d7e32983_2052x1832.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Web Hosting: Cloudflare vs. Vercel</h2><p>Let&#8217;s start with the basics: hosting and content delivery. While Vercel and Cloudflare both offer platforms to host and serve your website&#8217;s content, the differences in their infrastructure can lead to very different outcomes for both performance and cost.</p><p>With Cloudflare Pages, you get the power of the Cloudflare Edge Network, a globally distributed network with data centers in over 300 locations worldwide. This means that your content is served to visitors from the location closest to them, minimizing load times and enhancing the overall user experience. Vercel, while it has its own edge network, can&#8217;t quite match the reach or the level of optimization Cloudflare offers in terms of both speed and affordability.</p><p>In fact, one of the common pitfalls developers face with Vercel is the cost associated with scaling. For instance, a developer, <a href="https://x.com/illyism/status/1773646720372531680">Ilias Ism</a>, shared his experience on social media, explaining how he was billed over $2,000 per month on Vercel for hosting a relatively simple app due to unexpected usage spikes. </p><p>Stories like these highlight why it&#8217;s important to choose a platform that not only scales but does so in a way that remains predictable and cost-effective. With Cloudflare Pages, you don&#8217;t have to worry about surprise bills; the pricing is straightforward and scalable, making it ideal for both small and large projects alike.</p><h3><strong>Serverless Functions</strong></h3><p>In modern times, serverless functions allow developers to handle dynamic operations (like form submissions, APIs, and data processing) without managing backend servers. Both Vercel and Cloudflare offer serverless functions, but once again, Cloudflare&#8217;s approach has some notable advantages.</p><p>Cloudflare Workers is a powerful serverless platform that runs on Cloudflare&#8217;s global edge network, meaning your functions execute at data centers close to users. This proximity reduces latency, making it perfect for performance-critical applications. Vercel Functions, on the other hand, operates from a smaller set of regions, which can create delays for users far from those locations.</p><p>There&#8217;s also the cost factor: Vercel&#8217;s serverless function costs can escalate quickly, especially if your app receives high traffic or faces unexpected spikes. Take the story of <a href="https://x.com/michaelaubry/status/1757539928534315322">Michael Aubury</a>, who was hit with a shocking $23,000 bill when his Vercel deployment was targeted by a DDoS attack. </p><p>With Cloudflare Workers, such a scenario is managed with better cost predictability. Workers also offer generous free tiers and pricing that aligns better with growth, which means more flexibility and fewer surprises.</p><h3><strong>Data Management: Cloudflare KV and D1 vs. Vercel KV and PostgreSQL</strong></h3><p>When it comes to data storage for serverless applications, Cloudflare and Vercel take different paths. Vercel relies on partnerships, such as Redis for KV storage and Neon for PostgreSQL databases. This setup can be helpful but introduces extra costs, limits regional options, and increases dependency on external providers.</p><p>Cloudflare, however, has built its own native solutions for key-value storage and databases, optimized specifically for the edge. Cloudflare KV is a global key-value store that replicates data across Cloudflare&#8217;s global network, ensuring that users always access data from the nearest location. This results in faster load times and lower latency, particularly important for apps with a global user base. </p><p>Similarly, Cloudflare D1, a serverless database based on SQLite, leverages Cloudflare&#8217;s global edge network for performance and scalability, allowing data to be accessible from any region without complex replication settings.</p><h3>Bandwidth Considerations</h3><p>Another key point is Cloudflare&#8217;s unlimited bandwidth on its free tier, which is a huge advantage for projects with high traffic. Vercel&#8217;s free Hobby plan, on the other hand, caps bandwidth at 100GB per month, making Cloudflare more appealing for traffic-intensive applications or websites.</p><h3>Developer Experience</h3><p>Both platforms strive to create a smooth developer experience, let&#8217;s explore their packages for the the dev guys.</p><h4>Cloudflare&#8217;s Developer Tooling</h4><p>Cloudflare Workers and Cloudflare Pages offer flexibility and power for developers looking to build, deploy, and optimize applications globally. Cloudflare Pages integrated with Codegiant, provides automatic builds and deployments for sites. Cloudflare Workers allows developers to code in JavaScript, Rust, C++, and languages that compile to WebAssembly, giving them more choice in tooling and languages.</p><p>Additionally, Cloudflare now support the populare <strong>Nextjs </strong>framework and offers a range of performance analytics, caching controls, and security options through its dashboard. For developers who want fine-grained control over network behavior and a high level of customization, Cloudflare&#8217;s suite of tools is extensive.</p><h4>Vercel&#8217;s Workflow</h4><p>Vercel&#8217;s integration with Git and continuous deployment process makes it exceptionally easy to deploy frontend applications. With every git push, Vercel automatically builds and deploys changes, providing preview URLs for each branch or pull request. </p><p>For developers heavily invested in JavaScript frameworks like Next.js, Vercel&#8217;s ecosystem provides excellent support. However, while its ease of use is a strong point, it may lack the flexibility and advanced controls that Cloudflare offers.</p><h3>Cost Comparison</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cG2n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02125d57-226a-436d-a979-e64c497c86a1_2058x1494.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cG2n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02125d57-226a-436d-a979-e64c497c86a1_2058x1494.png 424w, https://substackcdn.com/image/fetch/$s_!cG2n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02125d57-226a-436d-a979-e64c497c86a1_2058x1494.png 848w, https://substackcdn.com/image/fetch/$s_!cG2n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02125d57-226a-436d-a979-e64c497c86a1_2058x1494.png 1272w, https://substackcdn.com/image/fetch/$s_!cG2n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02125d57-226a-436d-a979-e64c497c86a1_2058x1494.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cG2n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02125d57-226a-436d-a979-e64c497c86a1_2058x1494.png" width="1456" height="1057" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/02125d57-226a-436d-a979-e64c497c86a1_2058x1494.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1057,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:311058,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cG2n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02125d57-226a-436d-a979-e64c497c86a1_2058x1494.png 424w, https://substackcdn.com/image/fetch/$s_!cG2n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02125d57-226a-436d-a979-e64c497c86a1_2058x1494.png 848w, https://substackcdn.com/image/fetch/$s_!cG2n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02125d57-226a-436d-a979-e64c497c86a1_2058x1494.png 1272w, https://substackcdn.com/image/fetch/$s_!cG2n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02125d57-226a-436d-a979-e64c497c86a1_2058x1494.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When considering infrastructue options, cost plays a critical role, particularly for startups and individual developers looking to scale without incurring high expenses.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PvUV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777fb6c6-32e4-45d3-b113-71b9d20fe6e9_2058x532.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PvUV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777fb6c6-32e4-45d3-b113-71b9d20fe6e9_2058x532.png 424w, https://substackcdn.com/image/fetch/$s_!PvUV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777fb6c6-32e4-45d3-b113-71b9d20fe6e9_2058x532.png 848w, https://substackcdn.com/image/fetch/$s_!PvUV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777fb6c6-32e4-45d3-b113-71b9d20fe6e9_2058x532.png 1272w, https://substackcdn.com/image/fetch/$s_!PvUV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777fb6c6-32e4-45d3-b113-71b9d20fe6e9_2058x532.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PvUV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777fb6c6-32e4-45d3-b113-71b9d20fe6e9_2058x532.png" width="1456" height="376" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/777fb6c6-32e4-45d3-b113-71b9d20fe6e9_2058x532.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:376,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:104432,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PvUV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777fb6c6-32e4-45d3-b113-71b9d20fe6e9_2058x532.png 424w, https://substackcdn.com/image/fetch/$s_!PvUV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777fb6c6-32e4-45d3-b113-71b9d20fe6e9_2058x532.png 848w, https://substackcdn.com/image/fetch/$s_!PvUV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777fb6c6-32e4-45d3-b113-71b9d20fe6e9_2058x532.png 1272w, https://substackcdn.com/image/fetch/$s_!PvUV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F777fb6c6-32e4-45d3-b113-71b9d20fe6e9_2058x532.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Cloudflare&#8217;s Free and Affordable Options</h4><p>Cloudflare&#8217;s pricing structure is notably generous. It offers a free tier with unlimited bandwidth on Cloudflare Pages and very competitive pricing for serverless functions through Cloudflare Workers. Additionally, with free DDoS protection, DNS, and various security features included even in the free tier, Cloudflare remains budget-friendly for a wide range of projects.</p><p>For those who need more control or additional services, Cloudflare&#8217;s paid plans remain affordable. For example, Cloudflare Workers offers a pay-as-you-go model, making it cost-effective for smaller applications while still being scalable.</p><h4>Vercel&#8217;s Pricing Tiers</h4><p>Vercel&#8217;s free Hobby plan includes limited bandwidth (100GB/month) and lacks some of the advanced features found in its Pro plan, which costs $20/month for 1TB of bandwidth. While Vercel&#8217;s pricing is fair for smaller projects, it can become costly for applications with high bandwidth or compute needs.</p><p>Cloudflare&#8217;s flexibility and the lack of bandwidth limits give it a clear advantage here, especially for applications expected to scale significantly. While Vercel is well-suited for teams focused on frontend applications with predictable usage, Cloudflare&#8217;s pricing structure offers more freedom for larger-scale, traffic-heavy projects.</p><h3>Security and Reliability</h3><p>For any cloud-based deployment platform, security and reliability are key, especially when hosting sensitive data or handling high volumes of traffic.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oYrw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf0915f-2914-419c-8066-afa30fc9c2a3_2058x1050.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oYrw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf0915f-2914-419c-8066-afa30fc9c2a3_2058x1050.png 424w, https://substackcdn.com/image/fetch/$s_!oYrw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf0915f-2914-419c-8066-afa30fc9c2a3_2058x1050.png 848w, https://substackcdn.com/image/fetch/$s_!oYrw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf0915f-2914-419c-8066-afa30fc9c2a3_2058x1050.png 1272w, https://substackcdn.com/image/fetch/$s_!oYrw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf0915f-2914-419c-8066-afa30fc9c2a3_2058x1050.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oYrw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf0915f-2914-419c-8066-afa30fc9c2a3_2058x1050.png" width="1456" height="743" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8cf0915f-2914-419c-8066-afa30fc9c2a3_2058x1050.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:743,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:210885,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oYrw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf0915f-2914-419c-8066-afa30fc9c2a3_2058x1050.png 424w, https://substackcdn.com/image/fetch/$s_!oYrw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf0915f-2914-419c-8066-afa30fc9c2a3_2058x1050.png 848w, https://substackcdn.com/image/fetch/$s_!oYrw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf0915f-2914-419c-8066-afa30fc9c2a3_2058x1050.png 1272w, https://substackcdn.com/image/fetch/$s_!oYrw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf0915f-2914-419c-8066-afa30fc9c2a3_2058x1050.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Cloudflare&#8217;s Comprehensive Security Suite</h4><p>Cloudflare has made security a cornerstone of its platform. It provides industry-leading DDoS protection, managed DNS, SSL/TLS encryption, Web Application Firewall (WAF), and bot management even on its free tier. Cloudflare&#8217;s dedication to security means it&#8217;s the top choice for projects requiring high reliability and protection from external threats. For organizations where uptime is crucial, Cloudflare&#8217;s vast network of data centers ensures consistent availability and fast failover.</p><h4>Vercel&#8217;s Security Measures</h4><p>While Vercel offers built-in SSL certificates, DDoS protection, and secure environment variables, it does not offer the same comprehensive suite of security features as Cloudflare. For smaller-scale applications or frontend projects with minimal backend requirements, Vercel&#8217;s security measures are typically sufficient. However, teams with high security needs or sensitive data requirements may find Cloudflare&#8217;s advanced options more reassuring.</p><h3>Developer Community and Ecosystem</h3><p>Both Cloudflare and Vercel have active developer communities and a rich set of resources, but they cater to slightly different groups within the developer ecosystem.</p><h4>Cloudflare&#8217;s Growing Developer Ecosystem</h4><p>Cloudflare&#8217;s developer community has grown rapidly, fueled by its extensive documentation, tutorials, and integrations with popular developer tools and CI/CD platforms. With forums and developer resources geared towards a wide range of programming languages, Cloudflare appeals to developers from various technical backgrounds, not just JavaScript. Its ecosystem also supports plugins and extensions that integrate with its services, creating a flexible development environment.</p><h4>Vercel&#8217;s Next.js-Centric Community</h4><p>Vercel&#8217;s ecosystem revolves around Next.js and the wider React community, offering a tightly integrated experience for developers in this ecosystem. Vercel&#8217;s developer-first approach focuses on making deployments as frictionless as possible for frontend developers, fostering a strong community of Next.js enthusiasts. However, this focus might limit the platform&#8217;s appeal for developers looking for broader language support.</p><h2>Final Thoughts: How Codegiant Support Cloudflare</h2><p>For developers who decide Cloudflare is the right choice, Codegiant can make the deployment process even easier. Codegiant&#8217;s one-click deployment to Cloudflare provides a fast and secure way to launch your Next.js applications on a platform optimized for performance and scalability. </p><p>With just a single click, you can deploy a highly secured, cloud-native app that leverages Cloudflare&#8217;s robust global network, which ensures low latency and high availability, no matter where your users are located. Cloudflare&#8217;s security features, such as DDoS protection and SSL encryption, safeguard your application.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qPvm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d00dbda-fa24-4c11-882a-bcb25bf8a8e1_2400x560.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qPvm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d00dbda-fa24-4c11-882a-bcb25bf8a8e1_2400x560.png 424w, https://substackcdn.com/image/fetch/$s_!qPvm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d00dbda-fa24-4c11-882a-bcb25bf8a8e1_2400x560.png 848w, https://substackcdn.com/image/fetch/$s_!qPvm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d00dbda-fa24-4c11-882a-bcb25bf8a8e1_2400x560.png 1272w, https://substackcdn.com/image/fetch/$s_!qPvm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d00dbda-fa24-4c11-882a-bcb25bf8a8e1_2400x560.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qPvm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d00dbda-fa24-4c11-882a-bcb25bf8a8e1_2400x560.png" width="1456" height="340" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d00dbda-fa24-4c11-882a-bcb25bf8a8e1_2400x560.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:340,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31298,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qPvm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d00dbda-fa24-4c11-882a-bcb25bf8a8e1_2400x560.png 424w, https://substackcdn.com/image/fetch/$s_!qPvm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d00dbda-fa24-4c11-882a-bcb25bf8a8e1_2400x560.png 848w, https://substackcdn.com/image/fetch/$s_!qPvm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d00dbda-fa24-4c11-882a-bcb25bf8a8e1_2400x560.png 1272w, https://substackcdn.com/image/fetch/$s_!qPvm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d00dbda-fa24-4c11-882a-bcb25bf8a8e1_2400x560.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The Next.js starter app deployed through Codegiant&#8217;s platform follows industry best practices, ensuring your project is optimized for both performance and maintainability. </p><p>This template comes pre-configured with essential tools for building modern SaaS applications, including authentication, billing systems, analytics, SEO, and a database ORM, saving developers significant setup time. </p><p>It also includes key components like observability tools for monitoring application health and performance, so you can easily identify and address any issues, all while focusing on the core aspects of your application.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0-6Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c4f5e60-7eef-4122-80bf-ef9c01e926cd_3584x2274.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0-6Q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c4f5e60-7eef-4122-80bf-ef9c01e926cd_3584x2274.png 424w, https://substackcdn.com/image/fetch/$s_!0-6Q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c4f5e60-7eef-4122-80bf-ef9c01e926cd_3584x2274.png 848w, https://substackcdn.com/image/fetch/$s_!0-6Q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c4f5e60-7eef-4122-80bf-ef9c01e926cd_3584x2274.png 1272w, https://substackcdn.com/image/fetch/$s_!0-6Q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c4f5e60-7eef-4122-80bf-ef9c01e926cd_3584x2274.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0-6Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c4f5e60-7eef-4122-80bf-ef9c01e926cd_3584x2274.png" width="1456" height="924" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c4f5e60-7eef-4122-80bf-ef9c01e926cd_3584x2274.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:924,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:865517,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0-6Q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c4f5e60-7eef-4122-80bf-ef9c01e926cd_3584x2274.png 424w, https://substackcdn.com/image/fetch/$s_!0-6Q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c4f5e60-7eef-4122-80bf-ef9c01e926cd_3584x2274.png 848w, https://substackcdn.com/image/fetch/$s_!0-6Q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c4f5e60-7eef-4122-80bf-ef9c01e926cd_3584x2274.png 1272w, https://substackcdn.com/image/fetch/$s_!0-6Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c4f5e60-7eef-4122-80bf-ef9c01e926cd_3584x2274.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Affordability and scalability are key advantages when deploying with Codegiant on Cloudflare. Unlike other platforms like Vercel, which can become expensive at scale, Cloudflare&#8217;s edge-based pricing model ensures that you only pay for the resources you use, making it more budget-friendly for startups and growing SaaS businesses. </p><p>The one-click deployment process not only saves time but also simplifies the scaling of applications, as Cloudflare&#8217;s infrastructure can automatically handle spikes in traffic. </p><p>Whether you're launching a small project or scaling a SaaS platform, Codegiant ensures that your app is built with the latest Next.js optimizations, while also providing the necessary tools for development and enhanced performance monitoring.</p><p>If you're ready to scale your project with Cloudflare&#8217;s unbeatable speed and performance, <strong>try <a href="https://codegiant.io">Codegiant&#8217;s one-click deployment</a> now and experience a smoother, faster, and more secure way to launch your web app!</strong></p><h3>Resources</h3><p><a href="https://getdeploying.com/cloudflare-vs-vercel">GetDeploying: Cloudflare Pages vs Vercel </a></p><p><a href="https://bejamas.io/compare/cloudflare-pages-vs-vercel">bejamas: Cloudflare vs Vercel</a> </p><p><a href="https://medium.com/@pedro.diniz.rocha/why-cloudflare-is-the-best-alternative-to-vercel-in-2024-an-in-depth-pricing-comparison-7e1d713f8fde">Pedro Diniz Rocha Why Cloudflare is the Best Alternative to Vercel in 2024</a></p><p><a href="https://www.googleadservices.com/pagead/aclk?sa=L&amp;ai=DChcSEwjvlNzSwNSJAxX6m1AGHTYDEKoYABAAGgJkZw&amp;ae=2&amp;co=1&amp;ase=5&amp;gclid=Cj0KCQiA88a5BhDPARIsAFj595jF227R5--26pJQ8MEl5mLpXCsAzQj1fcKSPAlivGiGS7Zhgs3V-MwaAoQ-EALw_wcB&amp;ohost=www.google.com&amp;cid=CAESVeD2aexUGZ0MJgi-5isqZMOUToKY3chEdFuHm743Uysq251x4bHVpmyOd2nKl8RWqHuc0-QPGiujeOv2J973JZH7FzUpLPvvObpGRvTrV9Xij2Yl04s&amp;sig=AOD64_290tMotB_kmCcuOBkeIzG1Y4b-EA&amp;q&amp;adurl&amp;ved=2ahUKEwjZm9fSwNSJAxVUUEEAHYt6IooQ0Qx6BAgLEAE&amp;nis=7&amp;dct=1&amp;suid=27268651324&amp;ri=26">Cloudflare Images | Store, resize, and optimize</a></p><p></p>]]></content:encoded></item><item><title><![CDATA[How Team Yareta Built Their MVP in Six Weeks with Codegiant]]></title><description><![CDATA[Yareta&#8217;s scalable MVP secured $100K in contract value in just six weeks. A success story of innovation and efficiency in venture capital technology.]]></description><link>https://blog.codegiant.io/p/how-team-yareta-built-their-mvp-in</link><guid isPermaLink="false">https://blog.codegiant.io/p/how-team-yareta-built-their-mvp-in</guid><dc:creator><![CDATA[Codegiant]]></dc:creator><pubDate>Thu, 31 Oct 2024 20:19:28 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/10d1a0ad-c0cd-4860-b315-5ef6af6d9bed_2400x1256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aR4g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4daad686-dbb6-441d-90a9-d8afd2cb49f8_2400x748.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aR4g!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4daad686-dbb6-441d-90a9-d8afd2cb49f8_2400x748.png 424w, https://substackcdn.com/image/fetch/$s_!aR4g!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4daad686-dbb6-441d-90a9-d8afd2cb49f8_2400x748.png 848w, https://substackcdn.com/image/fetch/$s_!aR4g!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4daad686-dbb6-441d-90a9-d8afd2cb49f8_2400x748.png 1272w, https://substackcdn.com/image/fetch/$s_!aR4g!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4daad686-dbb6-441d-90a9-d8afd2cb49f8_2400x748.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aR4g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4daad686-dbb6-441d-90a9-d8afd2cb49f8_2400x748.png" width="1456" height="454" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4daad686-dbb6-441d-90a9-d8afd2cb49f8_2400x748.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:454,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:509394,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aR4g!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4daad686-dbb6-441d-90a9-d8afd2cb49f8_2400x748.png 424w, https://substackcdn.com/image/fetch/$s_!aR4g!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4daad686-dbb6-441d-90a9-d8afd2cb49f8_2400x748.png 848w, https://substackcdn.com/image/fetch/$s_!aR4g!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4daad686-dbb6-441d-90a9-d8afd2cb49f8_2400x748.png 1272w, https://substackcdn.com/image/fetch/$s_!aR4g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4daad686-dbb6-441d-90a9-d8afd2cb49f8_2400x748.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Yareta.co is revolutionizing the identification of exceptional entrepreneurs through science and AI. By disrupting the venture capital landscape, it enhances the due diligence process for investment decision-making.</p><h2>The Initial Hurdle</h2><p>As Team Yareta set out to develop their minimum viable product (MVP), they compiled an extensive list of tools and subscriptions they believed essential for the project. Their focus was on creating a robust tech stack that would ensure scalability, maintainability, and performance. However, the complexity of this setup raised concerns about costs and management.</p><p>Here&#8217;s a glimpse of the initial list of technologies and services they planned to use including documentation and observability they missed:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZTVQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc799c903-ad54-456e-b1dc-d3b4b468d0f9_1428x1060.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZTVQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc799c903-ad54-456e-b1dc-d3b4b468d0f9_1428x1060.png 424w, https://substackcdn.com/image/fetch/$s_!ZTVQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc799c903-ad54-456e-b1dc-d3b4b468d0f9_1428x1060.png 848w, https://substackcdn.com/image/fetch/$s_!ZTVQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc799c903-ad54-456e-b1dc-d3b4b468d0f9_1428x1060.png 1272w, https://substackcdn.com/image/fetch/$s_!ZTVQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc799c903-ad54-456e-b1dc-d3b4b468d0f9_1428x1060.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZTVQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc799c903-ad54-456e-b1dc-d3b4b468d0f9_1428x1060.png" width="1428" height="1060" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c799c903-ad54-456e-b1dc-d3b4b468d0f9_1428x1060.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1060,&quot;width&quot;:1428,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:169936,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZTVQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc799c903-ad54-456e-b1dc-d3b4b468d0f9_1428x1060.png 424w, https://substackcdn.com/image/fetch/$s_!ZTVQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc799c903-ad54-456e-b1dc-d3b4b468d0f9_1428x1060.png 848w, https://substackcdn.com/image/fetch/$s_!ZTVQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc799c903-ad54-456e-b1dc-d3b4b468d0f9_1428x1060.png 1272w, https://substackcdn.com/image/fetch/$s_!ZTVQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc799c903-ad54-456e-b1dc-d3b4b468d0f9_1428x1060.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>While this setup was comprehensive, it required significant configuration and multiple paid services, resulting in overwhelming costs and complexity.</p><h2>Discovering a Better Way</h2><p>Upon consulting with Codegiant, Yareta learned about a more efficient and integrated approach to achieving their goals. Codegiant&#8217;s one-click solution offered a way to streamline their setup process drastically. In just five minutes, they could access all the tools they needed without the burdensome costs and complexities of managing multiple services.</p><p>Codegiant&#8217;s one-click solution deploys six essential development tools, providing both development and production URLs after deployment to Cloudflare. This streamlined setup helps the teams to kickstart their projects quickly and efficiently.</p><ul><li><p><strong>Full Stack Next.js App</strong>: A Git repository with CI/CD integration, set up with best practices and an authentication alternative to GitHub and Superbase.</p></li><li><p><strong>Issue Tracker</strong>: A scrum management tool that serves as an alternative to Jira, facilitating effective project tracking and collaboration.</p></li><li><p><strong>APM Tracing</strong>: Built on Sentry and readily integrated with the application for enhanced performance monitoring and error tracking.</p></li><li><p><strong>Observability</strong>: Monitors live applications with built-in Grafana, allowing teams to visualize data effectively. This serves as an alternative to Datadog, Prometheus, Grafana, and the ELK stack.</p></li><li><p><strong>Uptime Monitoring</strong>: Keeps tabs on critical endpoints and includes a status page to publish availability information to the public.</p></li><li><p><strong>Cloud-Based IDE with GenIE AI</strong>: An integrated development environment that includes GenIE AI for coding assistance, code documentation, debugging, and more.</p></li><li><p><strong>Document Hub</strong>: Automatically generates API documentation and can be utilized for various other documentation needs.</p></li></ul><p>This solution allowed Yareta to optimize their development workflow and reduce costs significantly.</p><h3>Cloudflare&#8217;s Resources</h3><p>Codegiant's integration with Cloudflare further enhanced Yareta's deployment capabilities, offering cost-efficient and scalable resources that included:</p><ul><li><p><strong>Cloudflare R2:</strong> Low-cost object storage with zero egress fees, an excellent alternative to traditional solutions.</p></li><li><p><strong>Durable Objects &amp; Workers KV:</strong> A robust alternative to DynamoDB for scalable data management.</p></li><li><p><strong>Edge Services:</strong> Providing ultra-fast, distributed performance for building applications.</p></li><li><p>and more.</p></li></ul><p>Moreover, with Codegiant&#8217;s templates, API endpoints were auto-generated once a table was created, leveraging Cloudflare's D1 for serverless SQL database capabilities. This feature dramatically simplified the process of integrating databases and managing API requests.</p><h2>The Success Story: $100K in Contract Value Within Six Weeks</h2><p>In a rapid six-week timeline, Team Yareta successfully launched their MVP, showcasing a fully operational application deployed on Cloudflare&#8217;s edge network. The streamlined processes provided by Codegiant enabled the team to focus on refining their product and gathering valuable user feedback, positioning them for future growth and success. </p><p>This strategic, agile launch approach resulted in $100K in contract value from early clients, underscoring strong market demand and the platform&#8217;s high potential. This experience highlights how utilizing Codegiant can empower startups to reduce complexity, save costs, and accelerate their development timelines. For Yareta, this meant more time to innovate and less time managing a multitude of disparate tools.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://codegiant.io&quot;,&quot;text&quot;:&quot;Start building with Codegiant&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://codegiant.io"><span>Start building with Codegiant</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Introducing GenIE AI]]></title><description><![CDATA[Your AI engineer to build faster, debug smarter, and ship confidently on Codegiant.]]></description><link>https://blog.codegiant.io/p/introducing-genie-ai</link><guid isPermaLink="false">https://blog.codegiant.io/p/introducing-genie-ai</guid><dc:creator><![CDATA[Codegiant]]></dc:creator><pubDate>Mon, 28 Oct 2024 22:04:34 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f7106189-6cb3-41df-b73a-2fec58fae4d0_2400x1256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>At Codegiant, we&#8217;re always striving to help developers streamline their workflows and maximize productivity. Today, we&#8217;re excited to introduce <strong>GenIE AI</strong>, our new AI-powered assistant, crafted to take your coding experience to the next level. </p><p>Whether you&#8217;re just getting started or looking for a smarter way to automate, understand, and improve your code, GenIE has you covered.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oQjp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bc1f90-a279-4d42-8845-5b493e347777_1770x1080.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oQjp!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bc1f90-a279-4d42-8845-5b493e347777_1770x1080.gif 424w, https://substackcdn.com/image/fetch/$s_!oQjp!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bc1f90-a279-4d42-8845-5b493e347777_1770x1080.gif 848w, https://substackcdn.com/image/fetch/$s_!oQjp!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bc1f90-a279-4d42-8845-5b493e347777_1770x1080.gif 1272w, https://substackcdn.com/image/fetch/$s_!oQjp!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bc1f90-a279-4d42-8845-5b493e347777_1770x1080.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oQjp!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bc1f90-a279-4d42-8845-5b493e347777_1770x1080.gif" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03bc1f90-a279-4d42-8845-5b493e347777_1770x1080.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:10746986,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oQjp!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bc1f90-a279-4d42-8845-5b493e347777_1770x1080.gif 424w, https://substackcdn.com/image/fetch/$s_!oQjp!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bc1f90-a279-4d42-8845-5b493e347777_1770x1080.gif 848w, https://substackcdn.com/image/fetch/$s_!oQjp!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bc1f90-a279-4d42-8845-5b493e347777_1770x1080.gif 1272w, https://substackcdn.com/image/fetch/$s_!oQjp!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bc1f90-a279-4d42-8845-5b493e347777_1770x1080.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;58af91a8-99d5-464c-9d2e-ce0186a2df83&quot;,&quot;duration&quot;:null}"></div><p>GenIE integrates with Codegiant Codepod and VS Code. It&#8217;s built to handle everything from autocompletion to debugging, documentation, and much more. </p><p>Here&#8217;s how GenIE can transform your development experience:</p><h3>1. Autocomplete, Contextual Assistance, and More</h3><p>GenIE provides advanced autocomplete for single lines or entire functions, backed by Codegiant's large language models. It not only saves time on repetitive tasks but ensures high-quality code suggestions, letting you focus on the bigger picture.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tPHj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6b294a-dbf4-469c-b31e-fffe5cc3d755_1388x496.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tPHj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6b294a-dbf4-469c-b31e-fffe5cc3d755_1388x496.png 424w, https://substackcdn.com/image/fetch/$s_!tPHj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6b294a-dbf4-469c-b31e-fffe5cc3d755_1388x496.png 848w, https://substackcdn.com/image/fetch/$s_!tPHj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6b294a-dbf4-469c-b31e-fffe5cc3d755_1388x496.png 1272w, https://substackcdn.com/image/fetch/$s_!tPHj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6b294a-dbf4-469c-b31e-fffe5cc3d755_1388x496.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tPHj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6b294a-dbf4-469c-b31e-fffe5cc3d755_1388x496.png" width="1388" height="496" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c6b294a-dbf4-469c-b31e-fffe5cc3d755_1388x496.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:496,&quot;width&quot;:1388,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:89584,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tPHj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6b294a-dbf4-469c-b31e-fffe5cc3d755_1388x496.png 424w, https://substackcdn.com/image/fetch/$s_!tPHj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6b294a-dbf4-469c-b31e-fffe5cc3d755_1388x496.png 848w, https://substackcdn.com/image/fetch/$s_!tPHj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6b294a-dbf4-469c-b31e-fffe5cc3d755_1388x496.png 1272w, https://substackcdn.com/image/fetch/$s_!tPHj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c6b294a-dbf4-469c-b31e-fffe5cc3d755_1388x496.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>2. Chat Assistance with Contextual Awareness</strong></h3><p>Get instant answers to technical queries, whether about code structure, syntax, or specific project needs. For example, if you&#8217;re setting up a new API or handling an error message, GenIE&#8217;s contextual awareness can offer specific, actionable advice. </p><p>Just ask questions like:</p><ul><li><p>"Generate a GraphQL resolver for users."</p></li><li><p>"Explain this recursive function."</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qdoi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc8f1b1d-7e9e-49a8-9b07-77762549c889_2654x1766.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qdoi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc8f1b1d-7e9e-49a8-9b07-77762549c889_2654x1766.png 424w, https://substackcdn.com/image/fetch/$s_!Qdoi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc8f1b1d-7e9e-49a8-9b07-77762549c889_2654x1766.png 848w, https://substackcdn.com/image/fetch/$s_!Qdoi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc8f1b1d-7e9e-49a8-9b07-77762549c889_2654x1766.png 1272w, https://substackcdn.com/image/fetch/$s_!Qdoi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc8f1b1d-7e9e-49a8-9b07-77762549c889_2654x1766.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qdoi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc8f1b1d-7e9e-49a8-9b07-77762549c889_2654x1766.png" width="1456" height="969" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bc8f1b1d-7e9e-49a8-9b07-77762549c889_2654x1766.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:969,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:742963,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Qdoi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc8f1b1d-7e9e-49a8-9b07-77762549c889_2654x1766.png 424w, https://substackcdn.com/image/fetch/$s_!Qdoi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc8f1b1d-7e9e-49a8-9b07-77762549c889_2654x1766.png 848w, https://substackcdn.com/image/fetch/$s_!Qdoi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc8f1b1d-7e9e-49a8-9b07-77762549c889_2654x1766.png 1272w, https://substackcdn.com/image/fetch/$s_!Qdoi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc8f1b1d-7e9e-49a8-9b07-77762549c889_2654x1766.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>3. Code Optimization, Editing, and Documentation</h3><p>With GenIE, you can improve readability, optimize performance, and add comments or documentation as you code. These features make it easier to organize and manage your codebase and enhance collaboration within your team.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!M08B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8fcc66-73c4-4bc4-9ea0-ebafd7282ca2_1632x662.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M08B!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8fcc66-73c4-4bc4-9ea0-ebafd7282ca2_1632x662.png 424w, https://substackcdn.com/image/fetch/$s_!M08B!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8fcc66-73c4-4bc4-9ea0-ebafd7282ca2_1632x662.png 848w, https://substackcdn.com/image/fetch/$s_!M08B!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8fcc66-73c4-4bc4-9ea0-ebafd7282ca2_1632x662.png 1272w, https://substackcdn.com/image/fetch/$s_!M08B!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8fcc66-73c4-4bc4-9ea0-ebafd7282ca2_1632x662.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M08B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8fcc66-73c4-4bc4-9ea0-ebafd7282ca2_1632x662.png" width="1456" height="591" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e8fcc66-73c4-4bc4-9ea0-ebafd7282ca2_1632x662.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:591,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:164195,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!M08B!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8fcc66-73c4-4bc4-9ea0-ebafd7282ca2_1632x662.png 424w, https://substackcdn.com/image/fetch/$s_!M08B!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8fcc66-73c4-4bc4-9ea0-ebafd7282ca2_1632x662.png 848w, https://substackcdn.com/image/fetch/$s_!M08B!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8fcc66-73c4-4bc4-9ea0-ebafd7282ca2_1632x662.png 1272w, https://substackcdn.com/image/fetch/$s_!M08B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8fcc66-73c4-4bc4-9ea0-ebafd7282ca2_1632x662.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>4. Custom and Built-In Commands</strong></h3><p>GenIE is designed to adapt to your unique workflow. Use built-in commands for analysis, debugging, and documentation or create custom commands tailored to your team&#8217;s needs, easily shareable across projects for maximum flexibility.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WWBz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc9fc31-337e-4fe9-9f23-c6136a8dd7ff_1494x650.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WWBz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc9fc31-337e-4fe9-9f23-c6136a8dd7ff_1494x650.png 424w, https://substackcdn.com/image/fetch/$s_!WWBz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc9fc31-337e-4fe9-9f23-c6136a8dd7ff_1494x650.png 848w, https://substackcdn.com/image/fetch/$s_!WWBz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc9fc31-337e-4fe9-9f23-c6136a8dd7ff_1494x650.png 1272w, https://substackcdn.com/image/fetch/$s_!WWBz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc9fc31-337e-4fe9-9f23-c6136a8dd7ff_1494x650.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WWBz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc9fc31-337e-4fe9-9f23-c6136a8dd7ff_1494x650.png" width="1456" height="633" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bfc9fc31-337e-4fe9-9f23-c6136a8dd7ff_1494x650.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:633,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:133169,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WWBz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc9fc31-337e-4fe9-9f23-c6136a8dd7ff_1494x650.png 424w, https://substackcdn.com/image/fetch/$s_!WWBz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc9fc31-337e-4fe9-9f23-c6136a8dd7ff_1494x650.png 848w, https://substackcdn.com/image/fetch/$s_!WWBz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc9fc31-337e-4fe9-9f23-c6136a8dd7ff_1494x650.png 1272w, https://substackcdn.com/image/fetch/$s_!WWBz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc9fc31-337e-4fe9-9f23-c6136a8dd7ff_1494x650.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sYb_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5846d7c9-7fb3-4691-b822-7bb39141a7e5_1476x424.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sYb_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5846d7c9-7fb3-4691-b822-7bb39141a7e5_1476x424.webp 424w, https://substackcdn.com/image/fetch/$s_!sYb_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5846d7c9-7fb3-4691-b822-7bb39141a7e5_1476x424.webp 848w, https://substackcdn.com/image/fetch/$s_!sYb_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5846d7c9-7fb3-4691-b822-7bb39141a7e5_1476x424.webp 1272w, https://substackcdn.com/image/fetch/$s_!sYb_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5846d7c9-7fb3-4691-b822-7bb39141a7e5_1476x424.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sYb_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5846d7c9-7fb3-4691-b822-7bb39141a7e5_1476x424.webp" width="1456" height="418" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5846d7c9-7fb3-4691-b822-7bb39141a7e5_1476x424.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:418,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:26154,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sYb_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5846d7c9-7fb3-4691-b822-7bb39141a7e5_1476x424.webp 424w, https://substackcdn.com/image/fetch/$s_!sYb_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5846d7c9-7fb3-4691-b822-7bb39141a7e5_1476x424.webp 848w, https://substackcdn.com/image/fetch/$s_!sYb_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5846d7c9-7fb3-4691-b822-7bb39141a7e5_1476x424.webp 1272w, https://substackcdn.com/image/fetch/$s_!sYb_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5846d7c9-7fb3-4691-b822-7bb39141a7e5_1476x424.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>Getting Started with GenIE</h2><p>Setting up GenIE is simple and intuitive, whether you&#8217;re working in Codegiant Codepod or VS Code:</p><ul><li><p><strong>In Codegiant Codepod</strong>: GenIE is pre-configured and ready for one-click use. Start leveraging GenIE&#8217;s powerful features right from the get-go.</p></li><li><p><strong>In VS Code</strong>: Install GenIE from the <a href="https://marketplace.visualstudio.com/items?itemName=Codegiant.genie-ai">VSCode Marketplace</a>, sign in with your Codegiant account, and gain instant access to GenIE for all your Codegiant repositories.</p></li></ul><blockquote><p><em>To welcome new users, we&#8217;re also offering <strong>free tokens to test-drive GenIE&#8217;s capabilities</strong> and see how it fits into your development workflows.</em></p></blockquote><p>GenIE offers production-ready, context-aware code that goes beyond traditional AI assistants. It will soon supports your entire DevOps workflow on Codegiant, offering insights and assistance from code creation to deployment. </p><p>Our focus on accuracy and integration makes GenIE a natural fit for anyone serious about building quality software.</p><h2>What&#8217;s Next for GenIE?</h2><p>We&#8217;re not stopping here! GenIE&#8217;s roadmap includes expanded AI capabilities to help teams automate even more, from planning to operations. </p><p>As a Codegiant user, you&#8217;ll be the first to try out these new features.</p><h3><strong>Try GenIE Today</strong></h3><p>GenIE AI is live and ready to start accelerating your coding. Don&#8217;t miss the opportunity to experience a coding assistant designed to go beyond the basics. </p><p><a href="https://codegiant.io">Start your free trial</a> and discover the difference GenIE can make in your workflow.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.codegiant.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Codegiant! Subscribe for free to receive new posts and updates.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Introducing the AI-Powered Workflow]]></title><description><![CDATA[We are thrilled to announce the release of AI-Powered Workflow, a groundbreaking feature designed to simplify and accelerate the process of building and deploying applications on Codegiant.]]></description><link>https://blog.codegiant.io/p/introducing-the-ai-powered-workflow</link><guid isPermaLink="false">https://blog.codegiant.io/p/introducing-the-ai-powered-workflow</guid><dc:creator><![CDATA[Codegiant]]></dc:creator><pubDate>Tue, 01 Oct 2024 13:38:16 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1c621f5a-d0e8-4add-974e-ee182260cdc8_1500x785.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FOyH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82b4f9d5-837a-4410-bf7a-0fb9b108d262_1500x785.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FOyH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82b4f9d5-837a-4410-bf7a-0fb9b108d262_1500x785.png 424w, https://substackcdn.com/image/fetch/$s_!FOyH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82b4f9d5-837a-4410-bf7a-0fb9b108d262_1500x785.png 848w, https://substackcdn.com/image/fetch/$s_!FOyH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82b4f9d5-837a-4410-bf7a-0fb9b108d262_1500x785.png 1272w, https://substackcdn.com/image/fetch/$s_!FOyH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82b4f9d5-837a-4410-bf7a-0fb9b108d262_1500x785.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FOyH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82b4f9d5-837a-4410-bf7a-0fb9b108d262_1500x785.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82b4f9d5-837a-4410-bf7a-0fb9b108d262_1500x785.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FOyH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82b4f9d5-837a-4410-bf7a-0fb9b108d262_1500x785.png 424w, https://substackcdn.com/image/fetch/$s_!FOyH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82b4f9d5-837a-4410-bf7a-0fb9b108d262_1500x785.png 848w, https://substackcdn.com/image/fetch/$s_!FOyH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82b4f9d5-837a-4410-bf7a-0fb9b108d262_1500x785.png 1272w, https://substackcdn.com/image/fetch/$s_!FOyH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82b4f9d5-837a-4410-bf7a-0fb9b108d262_1500x785.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>We are thrilled to announce the release of <strong>AI-Powered Workflow</strong>, a groundbreaking feature designed to simplify and accelerate the process of building and deploying applications on Codegiant. AI-Powered Workflow offers a one-click, automated solution to bootstrap projects, configure essential tools, and deploy directly to cloud platforms like Cloudflare&#8212;all while integrating seamlessly with Codegiant's powerful workspace features.</p><h2>What is <strong>AI-Powered Workflow</strong>?</h2><p><strong>AI-Powered Workflow</strong> is a set of pre-configured templates and integrated tools that automate much of the setup and deployment process for developers. If you're working with frameworks like Next.js, It ensures that you can get started quickly and easily. It handles the configuration of your repository, error tracing, observability, documentation, monitoring, and issue tracking automatically.</p><h3>One-Click Deployment with Pre-Configured Templates</h3><p><strong>AI-Powered Workflow</strong> comes with out-of-the-box templates for popular framework like <strong>Next.js</strong>, which allow developers to instantly set up projects. These templates are fully integrated with the necessary development and production toolchains, and you can deploy your app to <strong>Cloudflare</strong> or other cloud platforms (soon to be added) in minutes.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YapO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bcd046-7ff4-434a-aa99-6037078a86d0_2000x1269.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YapO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bcd046-7ff4-434a-aa99-6037078a86d0_2000x1269.png 424w, https://substackcdn.com/image/fetch/$s_!YapO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bcd046-7ff4-434a-aa99-6037078a86d0_2000x1269.png 848w, https://substackcdn.com/image/fetch/$s_!YapO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bcd046-7ff4-434a-aa99-6037078a86d0_2000x1269.png 1272w, https://substackcdn.com/image/fetch/$s_!YapO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bcd046-7ff4-434a-aa99-6037078a86d0_2000x1269.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YapO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bcd046-7ff4-434a-aa99-6037078a86d0_2000x1269.png" width="2000" height="1269" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73bcd046-7ff4-434a-aa99-6037078a86d0_2000x1269.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1269,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!YapO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bcd046-7ff4-434a-aa99-6037078a86d0_2000x1269.png 424w, https://substackcdn.com/image/fetch/$s_!YapO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bcd046-7ff4-434a-aa99-6037078a86d0_2000x1269.png 848w, https://substackcdn.com/image/fetch/$s_!YapO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bcd046-7ff4-434a-aa99-6037078a86d0_2000x1269.png 1272w, https://substackcdn.com/image/fetch/$s_!YapO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bcd046-7ff4-434a-aa99-6037078a86d0_2000x1269.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">First version of your app in few clicks.</figcaption></figure></div><h3>Cloudflare Integration</h3><p>With the new <strong>Cloudflare integration</strong>, you can now deploy directly to Cloudflare Pages from Codegiant. Utilize Cloudflare&#8217;s KV storage, and integrate with D1 databases&#8212;all while managing everything from your Codegiant workspace. You can easily <a href="https://docs.codegiant.io/codegiant/codegiant/help/1-0/18763">configure custom domains</a>. AI-Powered Workflow also adds a seamless deployment flow using Wrangler, so you can preview and deploy your projects effortlessly.</p><h3>Error &amp; APM Tracing (via Sentry SDK)</h3><p>Automatically track errors and monitor application performance with <strong>Error &amp; APM tracing</strong>. This integration helps you identify bottlenecks and errors within your applications while offering performance optimization insights&#8212;all directly in Codegiant.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oKdr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3830266d-019e-4689-b2d3-029a6431fcdb_1950x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oKdr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3830266d-019e-4689-b2d3-029a6431fcdb_1950x1200.png 424w, https://substackcdn.com/image/fetch/$s_!oKdr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3830266d-019e-4689-b2d3-029a6431fcdb_1950x1200.png 848w, https://substackcdn.com/image/fetch/$s_!oKdr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3830266d-019e-4689-b2d3-029a6431fcdb_1950x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!oKdr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3830266d-019e-4689-b2d3-029a6431fcdb_1950x1200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oKdr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3830266d-019e-4689-b2d3-029a6431fcdb_1950x1200.png" width="1950" height="1200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3830266d-019e-4689-b2d3-029a6431fcdb_1950x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1200,&quot;width&quot;:1950,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!oKdr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3830266d-019e-4689-b2d3-029a6431fcdb_1950x1200.png 424w, https://substackcdn.com/image/fetch/$s_!oKdr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3830266d-019e-4689-b2d3-029a6431fcdb_1950x1200.png 848w, https://substackcdn.com/image/fetch/$s_!oKdr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3830266d-019e-4689-b2d3-029a6431fcdb_1950x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!oKdr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3830266d-019e-4689-b2d3-029a6431fcdb_1950x1200.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Observability with Live Tail Logging</h3><p>Real-time <strong>Observability</strong> is auto-configured for your applications, enabling you to tail logs, monitor production, and run queries on logs in an SQL-like format. This helps for faster debugging and a clear view of your app&#8217;s behavior in development and production environments.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HU-j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e8a83d0-ed9e-43ad-b97d-7273ea04980f_1950x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HU-j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e8a83d0-ed9e-43ad-b97d-7273ea04980f_1950x1200.png 424w, https://substackcdn.com/image/fetch/$s_!HU-j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e8a83d0-ed9e-43ad-b97d-7273ea04980f_1950x1200.png 848w, https://substackcdn.com/image/fetch/$s_!HU-j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e8a83d0-ed9e-43ad-b97d-7273ea04980f_1950x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!HU-j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e8a83d0-ed9e-43ad-b97d-7273ea04980f_1950x1200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HU-j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e8a83d0-ed9e-43ad-b97d-7273ea04980f_1950x1200.png" width="1950" height="1200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e8a83d0-ed9e-43ad-b97d-7273ea04980f_1950x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1200,&quot;width&quot;:1950,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!HU-j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e8a83d0-ed9e-43ad-b97d-7273ea04980f_1950x1200.png 424w, https://substackcdn.com/image/fetch/$s_!HU-j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e8a83d0-ed9e-43ad-b97d-7273ea04980f_1950x1200.png 848w, https://substackcdn.com/image/fetch/$s_!HU-j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e8a83d0-ed9e-43ad-b97d-7273ea04980f_1950x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!HU-j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e8a83d0-ed9e-43ad-b97d-7273ea04980f_1950x1200.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Document Hub</h3><p>AI-Powered Workflow generates a <strong>Document Hub</strong> for your application&#8217;s help centers, API documentation, and tutorials. With support for <strong>GraphQL auto-import</strong>, this feature streamlines the process of documenting your APIs and sharing critical information with your team.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!anFS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b04b436-c78a-4732-8c63-c96a404b8eb1_1950x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!anFS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b04b436-c78a-4732-8c63-c96a404b8eb1_1950x1200.png 424w, https://substackcdn.com/image/fetch/$s_!anFS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b04b436-c78a-4732-8c63-c96a404b8eb1_1950x1200.png 848w, https://substackcdn.com/image/fetch/$s_!anFS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b04b436-c78a-4732-8c63-c96a404b8eb1_1950x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!anFS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b04b436-c78a-4732-8c63-c96a404b8eb1_1950x1200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!anFS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b04b436-c78a-4732-8c63-c96a404b8eb1_1950x1200.png" width="1950" height="1200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b04b436-c78a-4732-8c63-c96a404b8eb1_1950x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1200,&quot;width&quot;:1950,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!anFS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b04b436-c78a-4732-8c63-c96a404b8eb1_1950x1200.png 424w, https://substackcdn.com/image/fetch/$s_!anFS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b04b436-c78a-4732-8c63-c96a404b8eb1_1950x1200.png 848w, https://substackcdn.com/image/fetch/$s_!anFS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b04b436-c78a-4732-8c63-c96a404b8eb1_1950x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!anFS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b04b436-c78a-4732-8c63-c96a404b8eb1_1950x1200.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Uptime Monitoring &amp; Alerts</h3><p>Monitor your deployed applications with <strong>Uptime Monitoring</strong>, receiving real-time alerts in case of incidents. Customizable status pages allow you to keep users informed during maintenance or outages, ensuring transparent communication during downtime.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kNGi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9b9cca-ad33-4615-85ea-7179495fe992_1950x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kNGi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9b9cca-ad33-4615-85ea-7179495fe992_1950x1200.png 424w, https://substackcdn.com/image/fetch/$s_!kNGi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9b9cca-ad33-4615-85ea-7179495fe992_1950x1200.png 848w, https://substackcdn.com/image/fetch/$s_!kNGi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9b9cca-ad33-4615-85ea-7179495fe992_1950x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!kNGi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9b9cca-ad33-4615-85ea-7179495fe992_1950x1200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kNGi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9b9cca-ad33-4615-85ea-7179495fe992_1950x1200.png" width="1950" height="1200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a9b9cca-ad33-4615-85ea-7179495fe992_1950x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1200,&quot;width&quot;:1950,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!kNGi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9b9cca-ad33-4615-85ea-7179495fe992_1950x1200.png 424w, https://substackcdn.com/image/fetch/$s_!kNGi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9b9cca-ad33-4615-85ea-7179495fe992_1950x1200.png 848w, https://substackcdn.com/image/fetch/$s_!kNGi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9b9cca-ad33-4615-85ea-7179495fe992_1950x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!kNGi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a9b9cca-ad33-4615-85ea-7179495fe992_1950x1200.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Issue Tracker Integration</h3><p>An integrated <strong>Issue Tracker</strong> allows your team to manage tasks and sprints using agile frameworks, keeping the entire development process organized. Track bugs, feature requests, and tasks efficiently from the same workspace.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!d47G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc342b094-0065-4fbc-b5de-af9e6d6391f1_1950x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d47G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc342b094-0065-4fbc-b5de-af9e6d6391f1_1950x1200.png 424w, https://substackcdn.com/image/fetch/$s_!d47G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc342b094-0065-4fbc-b5de-af9e6d6391f1_1950x1200.png 848w, https://substackcdn.com/image/fetch/$s_!d47G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc342b094-0065-4fbc-b5de-af9e6d6391f1_1950x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!d47G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc342b094-0065-4fbc-b5de-af9e6d6391f1_1950x1200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!d47G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc342b094-0065-4fbc-b5de-af9e6d6391f1_1950x1200.png" width="1950" height="1200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c342b094-0065-4fbc-b5de-af9e6d6391f1_1950x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1200,&quot;width&quot;:1950,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!d47G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc342b094-0065-4fbc-b5de-af9e6d6391f1_1950x1200.png 424w, https://substackcdn.com/image/fetch/$s_!d47G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc342b094-0065-4fbc-b5de-af9e6d6391f1_1950x1200.png 848w, https://substackcdn.com/image/fetch/$s_!d47G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc342b094-0065-4fbc-b5de-af9e6d6391f1_1950x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!d47G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc342b094-0065-4fbc-b5de-af9e6d6391f1_1950x1200.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Custom Domain Support</h3><p>Easily <a href="https://developers.cloudflare.com/workers/configuration/routing/custom-domains/">manage custom domains</a> with Cloudflare, including DNS and SSL certificate management. This feature simplifies the process of connecting your applications to your custom domains without stressful configuration.</p><h2>How to Get Started with <strong>AI-Powered Workflow</strong></h2><ol><li><p>Navigate to the <strong>Templates</strong> section of your Codegiant dashboard.</p></li><li><p>Select a template (e.g., <strong>Next.js</strong>) and provide the necessary cloud credentials.</p></li><li><p>Click <strong>Create</strong> to initiate the setup, which will automatically configure your repository, observability, and other services.</p></li><li><p>Deploy your application to <strong>Cloudflare</strong>, with full integration for live preview and production deployment.</p></li></ol><p>For detailed step-by-step instructions, visit our <a href="https://docs.codegiant.io/codegiant/codegiant/help/1-0/17545">Quickstart Guide</a> in the AI-Powered Workflow section of the documentation.</p><h2>Coming Soon</h2><ul><li><p><strong>Support for more cloud platforms</strong> such as AWS, Google Cloud, and Azure.</p></li><li><p><strong>Enhanced AI Assistant</strong> to streamline development and configuration.</p></li><li><p><strong>Expanded Template Library</strong> for more frameworks and stacks.</p></li></ul><p>We&#8217;re excited to bring the AI-Powered Workflow to Codegiant, and we&#8217;d love to hear your feedback! If you encounter any issues or have questions, please reach out to our support team or visit our community forums.</p><p>We're committed to making your development and deployment process as seamless as possible. With the <strong>AI-Powered Workflow</strong>, building, scaling, and managing applications has never been easier.</p><h3></h3>]]></content:encoded></item><item><title><![CDATA[What is a Monorepo and Why Use One?]]></title><description><![CDATA[In today&#8217;s software development world, how you manage your code can make a big difference.]]></description><link>https://blog.codegiant.io/p/is-monorepo-dead-and-why-should-you-care</link><guid isPermaLink="false">https://blog.codegiant.io/p/is-monorepo-dead-and-why-should-you-care</guid><dc:creator><![CDATA[Codegiant]]></dc:creator><pubDate>Tue, 24 Sep 2024 08:30:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/78180b27-5fe3-4e26-8cfe-cc9050ad9dec_1500x785.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wKZQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5f2dc4-28ca-4a12-aee9-82300415f0f9_1500x785.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wKZQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5f2dc4-28ca-4a12-aee9-82300415f0f9_1500x785.png 424w, https://substackcdn.com/image/fetch/$s_!wKZQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5f2dc4-28ca-4a12-aee9-82300415f0f9_1500x785.png 848w, https://substackcdn.com/image/fetch/$s_!wKZQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5f2dc4-28ca-4a12-aee9-82300415f0f9_1500x785.png 1272w, https://substackcdn.com/image/fetch/$s_!wKZQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5f2dc4-28ca-4a12-aee9-82300415f0f9_1500x785.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wKZQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5f2dc4-28ca-4a12-aee9-82300415f0f9_1500x785.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ba5f2dc4-28ca-4a12-aee9-82300415f0f9_1500x785.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wKZQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5f2dc4-28ca-4a12-aee9-82300415f0f9_1500x785.png 424w, https://substackcdn.com/image/fetch/$s_!wKZQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5f2dc4-28ca-4a12-aee9-82300415f0f9_1500x785.png 848w, https://substackcdn.com/image/fetch/$s_!wKZQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5f2dc4-28ca-4a12-aee9-82300415f0f9_1500x785.png 1272w, https://substackcdn.com/image/fetch/$s_!wKZQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba5f2dc4-28ca-4a12-aee9-82300415f0f9_1500x785.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><figcaption class="image-caption">What is a Monorepo and Why Use One?</figcaption></figure></div><p>In today&#8217;s software development world, how you manage your code can make a big difference. A monorepo is one way to handle code repositories. By understanding what a monorepo is and why some teams prefer it, you can better decide if it's right for your projects. This guide will break down the basics of monorepos, their benefits, and their challenges.</p><h3>What is Monorepo?</h3><p>A <strong>monorepo</strong>, short for "monolithic repository," is a single storage location for all of your code and projects. Instead of having separate repositories for each project, everything is kept together in one place.</p><p>A monorepo is a version control strategy where multiple projects are housed within a single repository. This contrasts with the <strong>multirepo</strong> approach, where each project or module has its own repository. In a monorepo, all related code&#8212;whether it&#8217;s libraries, services, or applications&#8212;is stored together.</p><p>Companies like <a href="https://www.google.com/">Google</a>, <a href="https://www.microsoft.com/">Microsoft</a>, Facebook, and Twitter use monorepos to centralize their codebases, which can reach immense sizes and involve thousands of commits daily. This differs from monolithic architecture, which refers to self-contained applications, not repository structure.</p><h3>Monorepos vs. Multirepos for Microservices</h3><p>With the growing popularity of microservices architecture, many teams opt for multirepos, with each microservice housed in its own repository. This allows teams to work independently using different tools and languages best suited to their specific needs. However, as the number of microservices grows, managing multiple repositories can become cumbersome and complex.</p><p><strong>Multirepos</strong> can introduce risks such as:</p><ul><li><p><strong>Knowledge Silos</strong>: Different teams might end up with isolated knowledge, making it difficult for anyone to have a comprehensive understanding of the entire system.</p></li><li><p><strong>Tooling Conflicts</strong>: Different repositories may use varying tools and configurations, leading to potential conflicts and inefficiencies.</p></li><li><p><strong>Slower Build and Deployment Processes</strong>: As complexity increases, automated builds and deployments can become slower and more error-prone.</p></li></ul><p>On the other hand, a <strong>monorepo</strong> can mitigate many of these issues by providing a unified and automated build and deploy pipeline, ensuring all teams are on the same page and reducing the chances of miscommunication or error.</p><h3>Benefits of Using a Monorepo</h3><p>Monorepos offer several benefits which includes:</p><ul><li><p><strong>Enhanced Visibility</strong>: With all code stored in a single repository, developers can easily navigate and understand how different parts of the system interact. This visibility simplifies debugging and allows for more efficient problem-solving.</p></li><li><p><strong>Improved Code Sharing</strong>: Common libraries, models, and helper functions can be shared across teams, reducing duplication and ensuring consistency in code quality.</p></li><li><p><strong>Better Collaboration</strong>: Monorepos break down silos between teams, encouraging a more collaborative environment where knowledge is shared and teams work together more effectively.</p></li><li><p><strong>Standardization Across Projects</strong>: It becomes easier to enforce coding standards, naming conventions, and other best practices across all projects within the organization.</p></li><li><p><strong>Simplified Discoverability</strong>: Having a single view of the entire codebase allows teams to track changes and understand the project's overall status more effectively.</p></li><li><p><strong>Streamlined Release Management</strong>: A centralized repository retains all information about how to deploy the entire system, making automated build and deploy pipelines more straightforward and less error-prone.</p></li><li><p><strong>Easier Refactoring</strong>: Access to the entire codebase makes refactoring and restructuring simpler, as changes can be made across multiple projects without the need to coordinate between separate repositories.</p></li></ul><h3>Challenges and Considerations</h3><p>Despite their benefits, monorepos come with challenges:</p><ul><li><p><strong>Performance Issues:</strong> As the monorepo grows, version control commands and IDEs can become sluggish.</p></li><li><p><strong>Broken Builds:</strong> A failure in the main branch can impact all projects.</p></li><li><p><strong>Learning Curve:</strong> New developers may struggle with the complexity of a large, unified codebase.</p></li><li><p><strong>Code Reviews:</strong> High volumes of code reviews and notifications can be overwhelming.</p></li></ul><p>Choosing between monorepo and multirepo is as much about organizational culture and communication as it is about technical considerations. Monorepos can help break down silos and foster better collaboration, acting as a central hub for all team members.</p><p>Monorepos have been used successfully by various open-source and commercial projects. Companies like <a href="https://segment.com/blog/goodbye-microservices/">Segment</a>, <a href="https://www.youtube.com/watch?v=sakGeE4xVZs">Airbnb</a>, <a href="https://www.youtube.com/watch?v=lV8-1S28ycM">Uber</a>, and Pinterest have shared their experiences transitioning to and from monorepos.</p><p>These stories highlight the importance of investing in tooling and adapting workflows to manage the complexities of a monorepo effectively.</p><h3>Investing in Tooling</h3><p>To handle the challenges of monorepos, companies invest in specialized tools and build systems like <a href="https://bazel.build/docs">Bazel</a>, <a href="https://buck.build/">Buck</a>, <a href="https://www.pantsbuild.org/">Pants</a>, and <a href="https://rushjs.io/">RushJS</a>. These tools help manage large repositories by supporting differential builds and smart scaling solutions.</p><h3>Managing Monorepos with CI/CD Pipelines</h3><p>To effectively manage a monorepo, automated Continuous Integration and Continuous Deployment (CI/CD) pipelines are essential. These pipelines allow teams to independently build, test, and deploy their microservices without impacting other teams.</p><p>Containerization further supports this process by enabling different development environments for each microservice, reducing the risk of conflicts and ensuring smoother deployments.</p><h3>Is a Monorepo Right for Your Team?</h3><p>Deciding whether to use a monorepo or a multirepo depends on several factors:</p><ul><li><p><strong>Team Culture and Collaboration</strong>: A monorepo can foster collaboration but requires a culture that supports open communication and shared responsibility.</p></li><li><p><strong>Discipline in Code Management</strong>: Teams must be disciplined in maintaining modular code and following best practices to avoid tightly coupled code and other pitfalls.</p></li></ul><p>If your team values collaboration and is committed to maintaining high standards of code management, a monorepo could be a great fit. However, if your team prefers to work independently and uses a wide variety of tools and languages, a multirepo might be more suitable.</p><h3>Best Practices for Managing a Monorepo</h3><p>If you decide to use a monorepo, following best practices can help you manage it more effectively:</p><ul><li><p><strong>Organize Clearly</strong>: Structure the repository in a way that makes it easy to find and work with different projects. Use clear directory names and maintain a consistent layout.</p></li><li><p><strong>Automate Builds and Tests</strong>: Implement automated build and test systems to handle the large volume of code. This ensures that changes are integrated smoothly and errors are caught early.</p></li><li><p><strong>Manage Dependencies</strong>: Use tools to manage dependencies across projects efficiently. Ensure that updates are synchronized to prevent version conflicts.</p></li><li><p><strong>Implement Access Controls</strong>: Use permissions and access controls to manage who can make changes to different parts of the repository, helping maintain security and order.</p></li></ul><p>Monorepos offer significant benefits, such as improved visibility, collaboration, and code sharing, but they are not without their challenges. Carefully assess your team&#8217;s needs, culture, and workflow to determine if a monorepo is the right choice for your organization.</p><p>With the right practices and tools in place, a monorepo can enhance your development processes and lead to more efficient, cohesive, and successful software development.</p><h3>References</h3><ul><li><p><a href="https://www.aviator.co/blog/author/brian/">Brian Neville-O'Neill</a></p></li><li><p><a href="https://circleci.com/blog/author/ron-powell/">Ron Powell</a></p></li><li><p><a href="https://semaphoreci.com/author/tfernandez">Tomas Fernandez</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[The Vital Role of Documentation in Business]]></title><description><![CDATA[Documentation is often perceived as a bureaucratic chore&#8212;a box to check off amidst the myriad tasks of running a business.]]></description><link>https://blog.codegiant.io/p/the-vital-role-of-documentation-in-business</link><guid isPermaLink="false">https://blog.codegiant.io/p/the-vital-role-of-documentation-in-business</guid><dc:creator><![CDATA[Abdullateef Lawal]]></dc:creator><pubDate>Wed, 03 Jul 2024 14:06:23 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3613d3a8-23db-4b7c-9a5f-7d1511a138dc_2400x1256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!o6tw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3a3717-8b68-4c3f-9f7d-4682d023a3ff_2400x1256.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!o6tw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3a3717-8b68-4c3f-9f7d-4682d023a3ff_2400x1256.png 424w, https://substackcdn.com/image/fetch/$s_!o6tw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3a3717-8b68-4c3f-9f7d-4682d023a3ff_2400x1256.png 848w, https://substackcdn.com/image/fetch/$s_!o6tw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3a3717-8b68-4c3f-9f7d-4682d023a3ff_2400x1256.png 1272w, https://substackcdn.com/image/fetch/$s_!o6tw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3a3717-8b68-4c3f-9f7d-4682d023a3ff_2400x1256.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!o6tw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3a3717-8b68-4c3f-9f7d-4682d023a3ff_2400x1256.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a3a3717-8b68-4c3f-9f7d-4682d023a3ff_2400x1256.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!o6tw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3a3717-8b68-4c3f-9f7d-4682d023a3ff_2400x1256.png 424w, https://substackcdn.com/image/fetch/$s_!o6tw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3a3717-8b68-4c3f-9f7d-4682d023a3ff_2400x1256.png 848w, https://substackcdn.com/image/fetch/$s_!o6tw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3a3717-8b68-4c3f-9f7d-4682d023a3ff_2400x1256.png 1272w, https://substackcdn.com/image/fetch/$s_!o6tw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a3a3717-8b68-4c3f-9f7d-4682d023a3ff_2400x1256.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Documentation is often perceived as a bureaucratic chore&#8212;a box to check off amidst the myriad tasks of running a business. However, its significance goes far beyond compliance; it stands as a pillar supporting effective communication, knowledge preservation, and operational efficiency within organizations. In today&#8217;s dynamic and competitive landscape, embracing robust documentation practices can be pivotal for teams striving to innovate and succeed.</p><p>Documentation stands as the cornerstone of effective communication and operational efficiency within any organization. It encompasses the meticulous recording and explanation of processes, procedures, and guidelines that guide the development, deployment, and maintenance of products, systems, or services. From technical specifications and user manuals to project timelines and API documentation, robust documentation practices are essential for fostering clarity, consistency, and collaboration across the organization.</p><h3>The Challenge of Knowledge Management</h3><p>Imagine a scenario where a key employee who managed critical vendor relationships and procurement processes leaves the company unexpectedly. This individual had built extensive knowledge over the years about suppliers, pricing strategies, and negotiation tactics that were crucial to maintaining cost-effective operations. In the absence of detailed documentation capturing these insights, the remaining team struggles to fill the gap. They face difficulties understanding past decisions, leading to suboptimal procurement choices, increased costs, and potential disruptions in supply chain operations. The lack of documentation not only hampers operational efficiency but also puts the company's strategic vendor relationships at risk.</p><p>Despite the clear benefits of robust documentation, a startling statistic from a BPTrends survey reveals that only <a href="https://www.bptrends.com/bpt/wp-content/uploads/2015-bpt-survey-report.pdf">4% of companies consistently document their processes</a>. This statistic highlights a significant missed opportunity for organizations to leverage documentation as a proactive tool for ensuring continuity, optimizing operations, and fostering growth. Comprehensive documentation can bridge knowledge gaps, support informed decision-making, and enhance organizational resilience in the face of employee turnover and other disruptions.</p><h3>Why Documentation Matters</h3><ol><li><p><strong>Knowledge Preservation and Continuity</strong>: Imagine embarking on a project only to realize that crucial insights and strategies from a similar initiative years ago have been lost due to turnover. Detailed documentation serves as a reservoir of institutional knowledge, preserving critical information that empowers current and future teams to build upon past successes and avoid past pitfalls.</p></li><li><p><strong>Operational Efficiency and Risk Mitigation</strong>: Documentation plays a pivotal role in mitigating operational risks associated with employee turnover and organizational change. By documenting processes, workflows, and best practices, organizations ensure that key information remains accessible and actionable, minimizing disruptions and enhancing operational resilience.</p></li><li><p><strong>Facilitating Collaboration and Innovation</strong>: Effective documentation fosters a culture of collaboration and innovation within teams. It enables developers, engineers, and stakeholders to share insights, troubleshoot issues, and iterate on solutions more efficiently. Documentation acts as a catalyst for continuous improvement, empowering teams to innovate iteratively and deliver high-quality results consistently.</p></li><li><p><strong>Enhancing Customer Experience</strong>: External documentation, such as user manuals and API guides, plays a crucial role in enhancing customer experience. Clear and comprehensive documentation empowers users to understand and maximize the value of products or services independently, reducing support overhead and fostering customer satisfaction and loyalty.</p></li><li><p><strong>Compliance and Quality Assurance</strong>: Documentation is indispensable for ensuring compliance with regulatory requirements and industry standards. It provides a transparent record of processes and procedures, facilitating audits, certifications, and quality assurance initiatives.</p></li></ol><h3>Types of Documentation</h3><ol><li><p><strong>Internal Documentation</strong>: Used within an organization to streamline operations, internal documentation includes code documentation, process documentation, and project documentation. It aids in knowledge sharing, team collaboration, and maintaining consistency across projects.</p></li><li><p><strong>External Documentation</strong>: Targeted at external stakeholders such as customers, partners, and end-users, external documentation includes user manuals, technical guides, and API documentation. It serves to educate users, facilitate onboarding, and support effective use of products or services.</p></li></ol><h3>Key Components of Effective Documentation</h3><p>Effective documentation is not just about capturing information&#8212;it&#8217;s about presenting it in a way that is accessible, organized, and actionable. Here are some key components to consider:</p><ul><li><p><strong>Clarity and Structure:</strong> Documents should be well-organized with clear headings, sections, and sub-sections. Use a consistent format and style to enhance readability.</p></li><li><p><strong>Relevance and Timeliness:</strong> Keep documentation up-to-date to ensure its accuracy and relevance. Regularly review and revise documents as processes evolve or new information becomes available.</p></li><li><p><strong>Accessibility:</strong> Ensure that documentation is easily accessible to all team members. Use tools that support collaboration and version control, allowing multiple contributors to update and maintain documents.</p></li><li><p><strong>Visual Aids:</strong> Incorporate diagrams, charts, and screenshots where necessary to illustrate concepts and processes visually. Visual aids can enhance understanding and facilitate learning.</p></li></ul><h3>Introducing Codegiant Document Hub</h3><p><a href="https://codegiant.io/features/document-hub">Codegiant Document Hub</a> offers a robust platform for managing and automating documentation workflows.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4gFa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b86618-c4f5-414c-8005-29f528f15d1f_1832x1160.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4gFa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b86618-c4f5-414c-8005-29f528f15d1f_1832x1160.png 424w, https://substackcdn.com/image/fetch/$s_!4gFa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b86618-c4f5-414c-8005-29f528f15d1f_1832x1160.png 848w, https://substackcdn.com/image/fetch/$s_!4gFa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b86618-c4f5-414c-8005-29f528f15d1f_1832x1160.png 1272w, https://substackcdn.com/image/fetch/$s_!4gFa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b86618-c4f5-414c-8005-29f528f15d1f_1832x1160.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4gFa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b86618-c4f5-414c-8005-29f528f15d1f_1832x1160.png" width="1832" height="1160" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/15b86618-c4f5-414c-8005-29f528f15d1f_1832x1160.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1160,&quot;width&quot;:1832,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!4gFa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b86618-c4f5-414c-8005-29f528f15d1f_1832x1160.png 424w, https://substackcdn.com/image/fetch/$s_!4gFa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b86618-c4f5-414c-8005-29f528f15d1f_1832x1160.png 848w, https://substackcdn.com/image/fetch/$s_!4gFa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b86618-c4f5-414c-8005-29f528f15d1f_1832x1160.png 1272w, https://substackcdn.com/image/fetch/$s_!4gFa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b86618-c4f5-414c-8005-29f528f15d1f_1832x1160.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Codegiant Document Hub</figcaption></figure></div><p>With features designed to streamline documentation creation, maintenance, and accessibility, Document Hub empowers teams to:</p><ul><li><p><strong>Centralized Documentation:</strong> Store all your project documentation in one centralized location, making it easily accessible to all team members.</p></li><li><p><strong>Collaborative Editing:</strong> Enable real-time collaboration on documents, allowing multiple team members to contribute, review, and edit simultaneously.</p></li><li><p><strong>Automate Updates</strong>: Automatically synchronize documentation with code changes, ensuring that documentation remains accurate and aligned with the latest developments.</p></li><li><p><strong>Version Control:</strong> Track changes and revert to previous versions if needed. Version control ensures that you always have access to the most current and accurate information.</p></li><li><p><strong>Integration with Workflows:</strong> Seamlessly integrate document creation and management into your existing workflows, enhancing productivity and efficiency.</p></li><li><p><strong>Security and Access Control:</strong> Maintain control over who can view, edit, and manage documents with customizable access permissions and security settings.</p></li></ul><p>Documentation isn&#8217;t just about recording information; it&#8217;s about empowering teams and clients with the knowledge they need to excel your business. By prioritizing documentation, organizations can unlock numerous benefits&#8212;from operational efficiency and quality assurance to fostering a culture of collaboration and innovation.</p><p>Make documentation a priority in your team&#8217;s toolkit. Explore how <a href="https://codegiant.io/features/document-hub">Codegiant Document Hub</a> can transform your documentation practices and pave the way for sustained success in your projects. Start documenting today and ensure your team&#8217;s knowledge and product documentation isn&#8217;t just preserved, but actively contributes to your growth.</p>]]></content:encoded></item><item><title><![CDATA[How to Collect, Transform, and Ship Logs from OpenTelemetry to Codegiant Observability Using Vector]]></title><description><![CDATA[In modern software development, understanding the behavior of applications and detecting potential issues are paramount.]]></description><link>https://blog.codegiant.io/p/how-to-collect-transform-and-ship-logs-from-opentelemetry-to-codegiant-observability-using-vector</link><guid isPermaLink="false">https://blog.codegiant.io/p/how-to-collect-transform-and-ship-logs-from-opentelemetry-to-codegiant-observability-using-vector</guid><dc:creator><![CDATA[Abdullateef Lawal]]></dc:creator><pubDate>Wed, 03 Jul 2024 10:52:14 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/4e7dc2a1-ddd6-40b4-90e8-dfbee565938b_2400x1256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qQAX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d129ba-bb21-4373-92ac-92af698a6a7c_2400x1256.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qQAX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d129ba-bb21-4373-92ac-92af698a6a7c_2400x1256.png 424w, https://substackcdn.com/image/fetch/$s_!qQAX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d129ba-bb21-4373-92ac-92af698a6a7c_2400x1256.png 848w, https://substackcdn.com/image/fetch/$s_!qQAX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d129ba-bb21-4373-92ac-92af698a6a7c_2400x1256.png 1272w, https://substackcdn.com/image/fetch/$s_!qQAX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d129ba-bb21-4373-92ac-92af698a6a7c_2400x1256.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qQAX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d129ba-bb21-4373-92ac-92af698a6a7c_2400x1256.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c9d129ba-bb21-4373-92ac-92af698a6a7c_2400x1256.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qQAX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d129ba-bb21-4373-92ac-92af698a6a7c_2400x1256.png 424w, https://substackcdn.com/image/fetch/$s_!qQAX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d129ba-bb21-4373-92ac-92af698a6a7c_2400x1256.png 848w, https://substackcdn.com/image/fetch/$s_!qQAX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d129ba-bb21-4373-92ac-92af698a6a7c_2400x1256.png 1272w, https://substackcdn.com/image/fetch/$s_!qQAX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d129ba-bb21-4373-92ac-92af698a6a7c_2400x1256.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>In modern software development, understanding the behavior of applications and detecting potential issues are paramount. This understanding is largely facilitated by effective log management practices. Logs provide valuable insights into the execution of software systems, enabling developers and operations teams to diagnose problems, monitor performance, and enhance overall reliability.</p><p><a href="https://vector.dev/">Vector</a> is an open-source project that offers a comprehensive solution for collecting, transforming, and routing logs efficiently. With its lightweight architecture and versatile capabilities, Vector has become a preferred choice for many organizations seeking to streamline their observability pipelines. While <a href="https://opentelemetry.io/">OpenTelemetry</a> is an observability framework simplifying the collection, processing, and exportation of telemetry data, including logs, from within applications through its software development kits (SDKs). <a href="https://codegiant.io/features/observability">Codegiant Observability</a> on the other hand, is a centralized log management solution designed to collect data from any source, live tail logs, and perform real-time analysis. Unlike traditional log management solutions, Codegiant Observability offers a cost-effective and efficient alternative to tools like the Elastic Stack, Datadog and others.</p><p>In this blog post, we aim to demonstrate the integration between <strong>OpenTelemetry</strong>, <strong>Vector</strong>, and <strong>Codegiant Observability</strong>. We'll illustrate how to leverage these tools to collect, transform, and ship logs effectively, providing a comprehensive solution for monitoring and analyzing application behavior.</p><h3>Prerequisites:</h3><p>Before diving into the implementation, ensure you have the following prerequisites in place:</p><ul><li><p><strong>Codegiant Account</strong>: Sign up for a <a href="https://codegiant.io/users/sign_in">Codegiant account</a> if you don't have one already. Codegiant Observability serves as the destination for our logs, providing advanced analytics and visualization capabilities.</p></li><li><p><strong>Code Editor</strong>: Use your preferred code editor, whether it's a local IDE or a cloud-based solution like <a href="https://codegiant.io/features/codepods">Codegiant Codepods</a>.</p></li><li><p><strong>Vector Installation</strong>: Install Vector on your local machine. The Vector project lives at&nbsp;<a href="https://github.com/vectordotdev/vector">https://github.com/vectordotdev/vector</a>.</p></li></ul><h3>The Vector's Architecture</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NwYO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd47bc0fd-aa13-44e5-85fc-9db2805b04c9_1200x730.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NwYO!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd47bc0fd-aa13-44e5-85fc-9db2805b04c9_1200x730.gif 424w, https://substackcdn.com/image/fetch/$s_!NwYO!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd47bc0fd-aa13-44e5-85fc-9db2805b04c9_1200x730.gif 848w, https://substackcdn.com/image/fetch/$s_!NwYO!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd47bc0fd-aa13-44e5-85fc-9db2805b04c9_1200x730.gif 1272w, https://substackcdn.com/image/fetch/$s_!NwYO!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd47bc0fd-aa13-44e5-85fc-9db2805b04c9_1200x730.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NwYO!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd47bc0fd-aa13-44e5-85fc-9db2805b04c9_1200x730.gif" width="1200" height="730" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d47bc0fd-aa13-44e5-85fc-9db2805b04c9_1200x730.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:730,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!NwYO!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd47bc0fd-aa13-44e5-85fc-9db2805b04c9_1200x730.gif 424w, https://substackcdn.com/image/fetch/$s_!NwYO!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd47bc0fd-aa13-44e5-85fc-9db2805b04c9_1200x730.gif 848w, https://substackcdn.com/image/fetch/$s_!NwYO!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd47bc0fd-aa13-44e5-85fc-9db2805b04c9_1200x730.gif 1272w, https://substackcdn.com/image/fetch/$s_!NwYO!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd47bc0fd-aa13-44e5-85fc-9db2805b04c9_1200x730.gif 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Vector operates on the principle of collecting, transforming, and forwarding telemetry data efficiently, making it a powerful tool in the realm of log management. At its core, Vector collects data from various sources, leveraging its transformation language, the Vector Remap Language (VRL), to manipulate log entries as necessary. Following the transformation stage, Vector processes log messages and forwards them to designated storage or queue systems for further analysis. This architecture provides users with flexibility and scalability in managing logs across diverse environments.</p><p>Now that we have a good understanding of the architecture and prerequisites, let's dive into the implementation of log collection using OpenTelemetry and Vector. To demonstrate the integration, we'll create a simple Flask application that logs messages and generates trace data. But before that, let's get our Vector running.</p><p>Create a configuration file for Vector, named <code>vector.yaml</code>, with the following setup:</p><div class="captioned-image-container"><figure><pre><code>sources:
  codegiant_py-ot:
    type: opentelemetry
    grpc:
      address: "0.0.0.0:4317"
    http:
      address: "0.0.0.0:4318"

sinks:
  my_sink_id:
    type: console
    inputs:
      - "codegiant_py-ot.logs"
    encoding:
      codec: json</code></pre><figcaption class="image-caption">vector.yaml</figcaption></figure></div><p>This configuration initializes an OpenTelemetry source, defining where Vector should listen for incoming logs. In this case, it sets up both gRPC and HTTP endpoints. The output, or "sink," directs the log data to the console. Later, we'll update this configuration to add another sink for sending logs to Codegiant Observability.</p><p>Once you've created the configuration file, start Vector by running the following command, replacing <code>vector.yaml</code> with the path to your actual configuration file:</p><pre><code>$ vector --config vector.toml
</code></pre><p>Now, let's create a Flask application integrated with OpenTelemetry for logging. Follow these steps:</p><ol><li><p><strong>Virtual Environment Setup:</strong> First, set up a virtual environment (venv) to manage dependencies and isolate your project environment. Run the following commands:</p></li></ol><pre><code>$ python3 -m venv .venv
$ source .venv/bin/activate   # On macOS and Linux
$ .venv\Scripts\activate      # On Windows
</code></pre><ol start="2"><li><p><strong>Application Code: </strong>Create a file named <code>app.py</code> to store your Flask application code. Below is a basic example of how you can set up your Flask application for logging:</p></li></ol><div class="captioned-image-container"><figure><pre><code>import logging
from flask import Flask, jsonify

from opentelemetry import trace
from opentelemetry._logs import set_logger_provider
from opentelemetry.exporter.otlp.proto.grpc._log_exporter import OTLPLogExporter
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import (
    BatchSpanProcessor,
    ConsoleSpanExporter,
)

# Initialize Flask app
app = Flask(__name__)


# SET THIS TO YOUR OTLP COLLECTOR ADDRESS AND PORT
OTLP_COLLECTOR = "0.0.0.0:4317"

# Initialize OpenTelemetry components
trace.set_tracer_provider(TracerProvider())
trace.get_tracer_provider().add_span_processor(
    BatchSpanProcessor(ConsoleSpanExporter())
)

logger_provider = LoggerProvider(
    resource=Resource.create(
        {
            "service.name": "otel-python-test",
            "service.instance.id": "instance-01",
        }
    ),
)
set_logger_provider(logger_provider)

exporter = OTLPLogExporter(insecure=True, endpoint=OTLP_COLLECTOR)
logger_provider.add_log_record_processor(BatchLogRecordProcessor(exporter))

# Set the logging level to decide what levels get sent to Vector
handler = LoggingHandler(level=logging.NOTSET, logger_provider=logger_provider)

# Attach OTLP handler to root logger
logging.getLogger().addHandler(handler)


# Define Flask routes
@app.route('/')
def index():
    return "Welcome to the OpenTelemetry Flask API!"


@app.route('/log', methods=['GET'])
def log_message():
    # Log message
    logging.warning("This is a warning log message.")
    logging.error("This is an error log message.")
    return "Log message sent."

@app.route('/trace', methods=['GET'])
def trace_message():
    # Trace message
    tracer = trace.get_tracer(__name__)
    with tracer.start_as_current_span("foo"):
        logging.error("This is an error log message with trace context.")
    return "Trace message sent."

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)</code></pre><figcaption class="image-caption">app.py</figcaption></figure></div><p>To generate the <code>requirements.txt</code> file containing the necessary Python dependencies, run the following command in your terminal:</p><pre><code>$ pip freeze &gt; requirements.txt</code></pre><p>Before adding the Codegiant sink, you can test the Flask application to ensure that logs are visible in the console where the Vector process is running.</p><h3>Adding Codegiant Sink</h3><p>Sign in to your Codegiant account, navigate to the workspace section, and follow these steps:</p><ul><li><p>Click on the plus icon to create a new item, selecting "Observability."</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BC-L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eca96b1-e3b8-4a1a-a0a5-805c1c74f675_1549x1119.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BC-L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eca96b1-e3b8-4a1a-a0a5-805c1c74f675_1549x1119.png 424w, https://substackcdn.com/image/fetch/$s_!BC-L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eca96b1-e3b8-4a1a-a0a5-805c1c74f675_1549x1119.png 848w, https://substackcdn.com/image/fetch/$s_!BC-L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eca96b1-e3b8-4a1a-a0a5-805c1c74f675_1549x1119.png 1272w, https://substackcdn.com/image/fetch/$s_!BC-L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eca96b1-e3b8-4a1a-a0a5-805c1c74f675_1549x1119.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BC-L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eca96b1-e3b8-4a1a-a0a5-805c1c74f675_1549x1119.png" width="1549" height="1119" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4eca96b1-e3b8-4a1a-a0a5-805c1c74f675_1549x1119.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1119,&quot;width&quot;:1549,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!BC-L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eca96b1-e3b8-4a1a-a0a5-805c1c74f675_1549x1119.png 424w, https://substackcdn.com/image/fetch/$s_!BC-L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eca96b1-e3b8-4a1a-a0a5-805c1c74f675_1549x1119.png 848w, https://substackcdn.com/image/fetch/$s_!BC-L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eca96b1-e3b8-4a1a-a0a5-805c1c74f675_1549x1119.png 1272w, https://substackcdn.com/image/fetch/$s_!BC-L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eca96b1-e3b8-4a1a-a0a5-805c1c74f675_1549x1119.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>Provide a title for your observability item and click on "Create Observability."</p></li><li><p>Within the created observability item, click on "Add Source" to add a new source for log collection, choosing Opentelemetry.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!imuN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116636bb-dce2-4e9d-bc34-b8fd3cb5f2a6_1646x638.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!imuN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116636bb-dce2-4e9d-bc34-b8fd3cb5f2a6_1646x638.png 424w, https://substackcdn.com/image/fetch/$s_!imuN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116636bb-dce2-4e9d-bc34-b8fd3cb5f2a6_1646x638.png 848w, https://substackcdn.com/image/fetch/$s_!imuN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116636bb-dce2-4e9d-bc34-b8fd3cb5f2a6_1646x638.png 1272w, https://substackcdn.com/image/fetch/$s_!imuN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116636bb-dce2-4e9d-bc34-b8fd3cb5f2a6_1646x638.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!imuN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116636bb-dce2-4e9d-bc34-b8fd3cb5f2a6_1646x638.png" width="1646" height="638" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/116636bb-dce2-4e9d-bc34-b8fd3cb5f2a6_1646x638.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:638,&quot;width&quot;:1646,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!imuN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116636bb-dce2-4e9d-bc34-b8fd3cb5f2a6_1646x638.png 424w, https://substackcdn.com/image/fetch/$s_!imuN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116636bb-dce2-4e9d-bc34-b8fd3cb5f2a6_1646x638.png 848w, https://substackcdn.com/image/fetch/$s_!imuN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116636bb-dce2-4e9d-bc34-b8fd3cb5f2a6_1646x638.png 1272w, https://substackcdn.com/image/fetch/$s_!imuN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F116636bb-dce2-4e9d-bc34-b8fd3cb5f2a6_1646x638.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>Upon adding the source, you'll receive a unique token required for sending data to Codegiant Observability. Additionally, you'll access a sample Vector configuration in TOML format.</p></li></ul><p>Copy the provided Vector configuration and tailor it to your requirements. Rewrite the configuration in YAML format and integrate it into the existing Vector configuration file. In my case, I have a setup similar to the following:</p><div class="captioned-image-container"><figure><pre><code>...

  codegiant_http_sink_py-ot:
    type: http
    inputs:
      - "codegiant_py-ot.logs"
    uri: "https://log.codegiant.io"
    method: post
    compression: none
    auth:
      strategy: bearer
      token: "&lt;TOKEN&gt;"
    encoding:
      codec: json</code></pre><figcaption class="image-caption">vector.yaml UPDATES</figcaption></figure></div><p>Stop the Vector process and start it again with the updated configuration. Access your Flask application on localhost:5000/logs to generate log messages. Refresh a couple of times to ensure sufficient logs. Then, visit Codegiant to witness the logs streaming in.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CcN7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F086d8974-a7f0-4dd5-bf22-f1069732a717_2000x1229.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CcN7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F086d8974-a7f0-4dd5-bf22-f1069732a717_2000x1229.png 424w, https://substackcdn.com/image/fetch/$s_!CcN7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F086d8974-a7f0-4dd5-bf22-f1069732a717_2000x1229.png 848w, https://substackcdn.com/image/fetch/$s_!CcN7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F086d8974-a7f0-4dd5-bf22-f1069732a717_2000x1229.png 1272w, https://substackcdn.com/image/fetch/$s_!CcN7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F086d8974-a7f0-4dd5-bf22-f1069732a717_2000x1229.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CcN7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F086d8974-a7f0-4dd5-bf22-f1069732a717_2000x1229.png" width="2000" height="1229" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/086d8974-a7f0-4dd5-bf22-f1069732a717_2000x1229.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1229,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!CcN7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F086d8974-a7f0-4dd5-bf22-f1069732a717_2000x1229.png 424w, https://substackcdn.com/image/fetch/$s_!CcN7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F086d8974-a7f0-4dd5-bf22-f1069732a717_2000x1229.png 848w, https://substackcdn.com/image/fetch/$s_!CcN7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F086d8974-a7f0-4dd5-bf22-f1069732a717_2000x1229.png 1272w, https://substackcdn.com/image/fetch/$s_!CcN7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F086d8974-a7f0-4dd5-bf22-f1069732a717_2000x1229.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Conclusion</h3><p>Throughout this tutorial, we've covered how to set up Vector and developed a Flask application integrated with OpenTelemetry for logging. We've also explored how to customize Vector's configuration to include a Codegiant HTTP sink, enabling integration with Codegiant Observability.</p><p>With logs successfully streaming into Codegiant Observability, you've laid a solid foundation for effective log management and analysis. As you explore further, consider customizing dashboards, setting up alerts, and leveraging Codegiant's analytical and visualization tools to derive valuable insights from your log data.</p><h3>Continue reading</h3><ul><li><p><a href="https://blog.codegiant.io/securing-software-in-toto-tekton/">Securing Software with Codegiant Tekton and In-toto Attestation</a></p></li><li><p><a href="https://blog.codegiant.io/deploying-an-app-to-google-kubernetes-engine-with-codegiant/">Deploying an App to Google Kubernetes Engine with Codegiant</a></p></li><li><p><a href="https://blog.codegiant.io/the-next-wave-of-devops-top-trends-for-2024/">The Next Wave of DevOps: Top Trends for 2024</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[How to Collect, Transform, and Ship Logs from AWS S3 to Codegiant Observability Using Vector]]></title><description><![CDATA[It's no longer news that ensuring the reliability and performance of applications is paramount for any organization.]]></description><link>https://blog.codegiant.io/p/how-to-collect-transform-and-ship-logs-from-aws-s3-to-codegiant-observability-using-vector</link><guid isPermaLink="false">https://blog.codegiant.io/p/how-to-collect-transform-and-ship-logs-from-aws-s3-to-codegiant-observability-using-vector</guid><dc:creator><![CDATA[Codegiant]]></dc:creator><pubDate>Tue, 04 Jun 2024 22:25:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/13899c9d-682f-4267-93ae-55530e92b0ad_2400x1256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!g-oV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95e694bd-dcef-4cc6-ac3e-e9ac60d30c7c_2400x1256.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!g-oV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95e694bd-dcef-4cc6-ac3e-e9ac60d30c7c_2400x1256.png 424w, https://substackcdn.com/image/fetch/$s_!g-oV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95e694bd-dcef-4cc6-ac3e-e9ac60d30c7c_2400x1256.png 848w, https://substackcdn.com/image/fetch/$s_!g-oV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95e694bd-dcef-4cc6-ac3e-e9ac60d30c7c_2400x1256.png 1272w, https://substackcdn.com/image/fetch/$s_!g-oV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95e694bd-dcef-4cc6-ac3e-e9ac60d30c7c_2400x1256.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!g-oV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95e694bd-dcef-4cc6-ac3e-e9ac60d30c7c_2400x1256.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/95e694bd-dcef-4cc6-ac3e-e9ac60d30c7c_2400x1256.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!g-oV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95e694bd-dcef-4cc6-ac3e-e9ac60d30c7c_2400x1256.png 424w, https://substackcdn.com/image/fetch/$s_!g-oV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95e694bd-dcef-4cc6-ac3e-e9ac60d30c7c_2400x1256.png 848w, https://substackcdn.com/image/fetch/$s_!g-oV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95e694bd-dcef-4cc6-ac3e-e9ac60d30c7c_2400x1256.png 1272w, https://substackcdn.com/image/fetch/$s_!g-oV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95e694bd-dcef-4cc6-ac3e-e9ac60d30c7c_2400x1256.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>It's no longer news that ensuring the reliability and performance of applications is paramount for any organization. Codegiant, as the leading provider of comprehensive DevSecOps solutions, recognizes the importance of empowering teams with robust monitoring tools to achieve these goals. Central to this effort is observability, a concept that goes beyond traditional monitoring by providing deep insights into the inner workings of applications through metrics, traces, and logs. In this blog post, we will discuss observability, focusing specifically on the collection, transformation, and shipping of logs from AWS S3 to <a href="https://codegiant.io/features/observability">Codegiant Observability</a> using Vector.</p><h3><strong>Codegiant Observability and Vector</strong></h3><p>Codegiant Observability is a centralized log management solution designed to collect data from any source, live tail logs, and perform real-time analysis. Unlike traditional log management solutions, Codegiant Observability offers a cost-effective and efficient alternative to tools like the Elastic Stack, Datadog and others. With its SQL-compatible structured log management capabilities, teams can easily analyze their logs by writing custom SQL queries, unlocking new insights into their applications' performance and behavior.</p><p><a href="https://vector.dev/">Vector</a> is a lightweight and ultra-fast tool for building observability pipelines. As a data pipeline tool, Vector excels at collecting data from various sources, including scraping data or acting as an HTTP server to accumulate ingested data. One of Vector's standout features is its powerful transformation capabilities, which allow users to modify, drop, or aggregate log entries as needed. Built with efficiency in mind, Vector consumes minimal resources while handling substantial amounts of data, making it an ideal choice for organizations looking to streamline their observability workflows. Additionally, Vector's vendor-agnostic nature and compatibility with a wide range of data sources make it a versatile solution for diverse use cases.</p><h3><strong>Vector's Architecture</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xqSP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64b5542a-97b1-4e63-af0b-4b396b9d1681_1200x730.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xqSP!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64b5542a-97b1-4e63-af0b-4b396b9d1681_1200x730.gif 424w, https://substackcdn.com/image/fetch/$s_!xqSP!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64b5542a-97b1-4e63-af0b-4b396b9d1681_1200x730.gif 848w, https://substackcdn.com/image/fetch/$s_!xqSP!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64b5542a-97b1-4e63-af0b-4b396b9d1681_1200x730.gif 1272w, https://substackcdn.com/image/fetch/$s_!xqSP!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64b5542a-97b1-4e63-af0b-4b396b9d1681_1200x730.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xqSP!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64b5542a-97b1-4e63-af0b-4b396b9d1681_1200x730.gif" width="1200" height="730" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/64b5542a-97b1-4e63-af0b-4b396b9d1681_1200x730.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:730,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!xqSP!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64b5542a-97b1-4e63-af0b-4b396b9d1681_1200x730.gif 424w, https://substackcdn.com/image/fetch/$s_!xqSP!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64b5542a-97b1-4e63-af0b-4b396b9d1681_1200x730.gif 848w, https://substackcdn.com/image/fetch/$s_!xqSP!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64b5542a-97b1-4e63-af0b-4b396b9d1681_1200x730.gif 1272w, https://substackcdn.com/image/fetch/$s_!xqSP!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64b5542a-97b1-4e63-af0b-4b396b9d1681_1200x730.gif 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Vector's Architecture</figcaption></figure></div><p>At the core of Vector's architecture lies its ability to collect, transform, and forward telemetry data efficiently. Vector operates by collecting data from various sources, and leverages its powerful transformation language, known as the <a href="https://vector.dev/docs/reference/vrl/">Vector Remap Language (VRL)</a>, to manipulate log entries as needed. Following the transformation stage, Vector processes the log messages and forwards them to a designated storage or queue system.</p><h3><strong>Project Prerequisites</strong></h3><p>Before diving into the implementation process, let's ensure we have all the necessary prerequisites in place:</p><ul><li><p><strong>Codegiant Account:</strong> To use Codegiant Observability, you will need access to a Codegiant account. If you don't have an account already, you can sign up for free on the <a href="https://www.codegiant.io/">Codegiant website</a>.</p></li><li><p><strong>Amazon EKS Cluster:</strong> This tutorial assumes you have an <a href="https://aws.amazon.com/eks/">Amazon EKS cluster</a> running on AWS.</p></li><li><p><strong>AWS CLI, kubectl, and Helm:</strong> Installation and configuration of the <a href="https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html">AWS Command Line Interface (CLI)</a>, <a href="https://kubernetes.io/docs/tasks/tools/">kubectl</a> command-line tool, and <a href="https://helm.sh/docs/intro/install/">Helm package manager</a> are required for interacting with AWS services and managing Kubernetes resources.</p></li><li><p><strong>S3 Bucket and SQS Queue:</strong> You should create a <a href="https://aws.amazon.com/s3/">S3 bucket</a> and <a href="https://aws.amazon.com/sqs/">Amazon SQS queue</a> to store and process log data, respectively.</p></li></ul><p>With these prerequisites in place, we're well-prepared to embark on our journey of setting up the log collection pipeline from AWS S3 to Codegiant Observability.</p><h3><strong>Project Architecture</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lZjc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080dcf99-e16c-4aac-bad9-7bd9eeefb97a_1200x730.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lZjc!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080dcf99-e16c-4aac-bad9-7bd9eeefb97a_1200x730.gif 424w, https://substackcdn.com/image/fetch/$s_!lZjc!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080dcf99-e16c-4aac-bad9-7bd9eeefb97a_1200x730.gif 848w, https://substackcdn.com/image/fetch/$s_!lZjc!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080dcf99-e16c-4aac-bad9-7bd9eeefb97a_1200x730.gif 1272w, https://substackcdn.com/image/fetch/$s_!lZjc!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080dcf99-e16c-4aac-bad9-7bd9eeefb97a_1200x730.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lZjc!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080dcf99-e16c-4aac-bad9-7bd9eeefb97a_1200x730.gif" width="1200" height="730" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/080dcf99-e16c-4aac-bad9-7bd9eeefb97a_1200x730.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:730,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!lZjc!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080dcf99-e16c-4aac-bad9-7bd9eeefb97a_1200x730.gif 424w, https://substackcdn.com/image/fetch/$s_!lZjc!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080dcf99-e16c-4aac-bad9-7bd9eeefb97a_1200x730.gif 848w, https://substackcdn.com/image/fetch/$s_!lZjc!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080dcf99-e16c-4aac-bad9-7bd9eeefb97a_1200x730.gif 1272w, https://substackcdn.com/image/fetch/$s_!lZjc!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080dcf99-e16c-4aac-bad9-7bd9eeefb97a_1200x730.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Logs from AWS S3 to Codegiant Observability Using Vector (Architecture)</figcaption></figure></div><p>To gain a comprehensive understanding of our project's architecture, let's break down the key components involved:</p><ul><li><p><strong>Vector Agent:</strong> Deployed as a DaemonSet, the Vector Agent collects logs from the Kubernetes nodes, including application logs, and sends them to the designated S3 bucket. This process is facilitated by a ServiceAccount and associated IAM Role, ensuring secure access to AWS S3.</p></li><li><p><strong>Vector Aggregator:</strong> Also deployed as a DaemonSet, the Vector Aggregator monitors the SQS queue for incoming log messages, retrieves them from the S3 bucket, trasform, and forwards them to Codegiant Observability.</p></li><li><p><strong>S3 Bucket:</strong> Acts as the storage repository for logs collected from the Kubernetes cluster. It is configured with notifications to trigger events for new log arrivals, which are routed to the SQS queue.</p></li><li><p><strong>SQS Queue:</strong> Serves as the intermediary between the S3 bucket and Vector Aggregator, receiving notifications from the bucket for new log arrivals.</p></li><li><p><strong>IAM Roles:</strong> Two IAM roles, namely VectorAgentRole and VectorAggregatorRole, are created to grant permissions to the AWS resources involved in the log collection and shipping process.</p></li></ul><h3><strong>Configuring Kubernetes Environment</strong></h3><p>Let's use the AWS CLI to update our kubeconfig file to connect to our Amazon EKS cluster. Replace the cluster name and region with your specific details.</p><pre><code>$ aws eks update-kubeconfig --region &lt;region&gt; --name &lt;cluster-name&gt;
</code></pre><p>We should deploy a simple application to the cluster. Create a namespace for the application and deploy an example Nginx app within that namespace to generate logs for demonstration purposes. In my case I used <em>test-ns</em> which you'll see in the vector agent config file later.</p><pre><code>$ kubectl create namespace &lt;namespace-name&gt;
$ kubectl create deployment nginx-deployment --image=nginx -n &lt;namespace-name&gt;
</code></pre><p>You can check to know if the pods are running.</p><h3><strong>Identity and Access Management Configuration</strong></h3><p>In order to facilitate secure access to AWS resources from our Kubernetes cluster, we need to configure Identity and Access Management (IAM) roles for service accounts (IRSA). This involves creating IAM roles for Vector Agent and Vector Aggregator, and associating them with their respective Kubernetes service accounts. The <a href="https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html">IAM roles for service accounts</a> guides will show you how to setup the IRSA. The following is a breakdown of the IAM configurations expected:</p><ul><li><p><strong>VectorAgentPolicy</strong>: This policy grants permissions to the Vector Agent pod to list objects in the S3 bucket and put objects (logs) into the bucket. It should be attached to the VectorAgentRole.</p></li><li><p><strong>VectorAggregatorPolicy: </strong>This policy grants permissions<strong> </strong>to the Vector Aggregator pod to receive and delete messages from the SQS queue, as well as read and write access to the S3 bucket where logs are stored. It should be attached to the VectorAggregatorRole.</p></li><li><p><strong>Trust Entity for the Roles:</strong> This trust policy specifies the conditions under which the Vector Agent or Aggregator pod is allowed to assume its associated IAM role. It ensures that only authenticated requests from the designated service account (agent-vector Or aggregator-vector) within the Kubernetes cluster are accepted.</p></li><li><p><strong>S3 Bucket Policy: </strong>The S3 bucket policy restricts access to the bucket to only the IAM roles associated with the Vector Agent and Vector Aggregator pods.</p></li><li><p><strong>SQS Access Policy: </strong>The SQS policy allows the S3 service to send messages to the SQS queue. This is necessary for the Vector Aggregator pod to receive notifications from S3 when new log files are uploaded.</p></li></ul><p>Once you have configured all IAM permissions, You need to setup a S3 bucket notification for the "ObjectCreated" event, indicating that new objects (log files) have been added to the bucket. These notifications are sent to the SQS queue, where the Vector Aggregator pod can retrieve them and process the corresponding log data.</p><h3><strong>Creating Soure in Codegiant Observability</strong></h3><p>In order to add source to our Observability, we need to create an Observability item that centralize log management and analysis. Here are the steps to achieve that:</p><ol><li><p><strong>Create Observability Item:</strong> Sign in to your <a href="https://codegiant.io/users/sign_in">Codegiant account</a> and in the workspace section, Click on the plus icon to create a new item. Select "Observability", and provide a title for your observability item, then click on "Create Observability."</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fZen!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6661ce-d2a3-4f49-9e98-57aef6fbca5b_1549x1119.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fZen!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6661ce-d2a3-4f49-9e98-57aef6fbca5b_1549x1119.png 424w, https://substackcdn.com/image/fetch/$s_!fZen!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6661ce-d2a3-4f49-9e98-57aef6fbca5b_1549x1119.png 848w, https://substackcdn.com/image/fetch/$s_!fZen!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6661ce-d2a3-4f49-9e98-57aef6fbca5b_1549x1119.png 1272w, https://substackcdn.com/image/fetch/$s_!fZen!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6661ce-d2a3-4f49-9e98-57aef6fbca5b_1549x1119.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fZen!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6661ce-d2a3-4f49-9e98-57aef6fbca5b_1549x1119.png" width="1549" height="1119" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c6661ce-d2a3-4f49-9e98-57aef6fbca5b_1549x1119.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1119,&quot;width&quot;:1549,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!fZen!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6661ce-d2a3-4f49-9e98-57aef6fbca5b_1549x1119.png 424w, https://substackcdn.com/image/fetch/$s_!fZen!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6661ce-d2a3-4f49-9e98-57aef6fbca5b_1549x1119.png 848w, https://substackcdn.com/image/fetch/$s_!fZen!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6661ce-d2a3-4f49-9e98-57aef6fbca5b_1549x1119.png 1272w, https://substackcdn.com/image/fetch/$s_!fZen!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6661ce-d2a3-4f49-9e98-57aef6fbca5b_1549x1119.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="2"><li><p><strong>Add Source</strong>:<strong> </strong>Within the newly created observability item, click on "Add Source" to add a new source for log collection. Choose the appropriate platform, in this case, AWS S3, and give it a title.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UWxn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a3fa70-55f0-440e-8bad-1786b8631141_1646x638.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UWxn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a3fa70-55f0-440e-8bad-1786b8631141_1646x638.png 424w, https://substackcdn.com/image/fetch/$s_!UWxn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a3fa70-55f0-440e-8bad-1786b8631141_1646x638.png 848w, https://substackcdn.com/image/fetch/$s_!UWxn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a3fa70-55f0-440e-8bad-1786b8631141_1646x638.png 1272w, https://substackcdn.com/image/fetch/$s_!UWxn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a3fa70-55f0-440e-8bad-1786b8631141_1646x638.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UWxn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a3fa70-55f0-440e-8bad-1786b8631141_1646x638.png" width="1646" height="638" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/08a3fa70-55f0-440e-8bad-1786b8631141_1646x638.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:638,&quot;width&quot;:1646,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!UWxn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a3fa70-55f0-440e-8bad-1786b8631141_1646x638.png 424w, https://substackcdn.com/image/fetch/$s_!UWxn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a3fa70-55f0-440e-8bad-1786b8631141_1646x638.png 848w, https://substackcdn.com/image/fetch/$s_!UWxn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a3fa70-55f0-440e-8bad-1786b8631141_1646x638.png 1272w, https://substackcdn.com/image/fetch/$s_!UWxn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08a3fa70-55f0-440e-8bad-1786b8631141_1646x638.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="3"><li><p><strong>Retrieve Configuration and Token</strong>: Upon adding the source, you'll receive a unique token required for sending data to Codegiant Observability. Additionally, you'll have access to a sample Vector configuration in <a href="https://toml.io/en/">TOML</a> format, showcasing how to sink data to Codegiant.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GyIo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39a27da-4305-41a2-8a82-9d15159552fa_2000x1274.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GyIo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39a27da-4305-41a2-8a82-9d15159552fa_2000x1274.png 424w, https://substackcdn.com/image/fetch/$s_!GyIo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39a27da-4305-41a2-8a82-9d15159552fa_2000x1274.png 848w, https://substackcdn.com/image/fetch/$s_!GyIo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39a27da-4305-41a2-8a82-9d15159552fa_2000x1274.png 1272w, https://substackcdn.com/image/fetch/$s_!GyIo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39a27da-4305-41a2-8a82-9d15159552fa_2000x1274.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GyIo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39a27da-4305-41a2-8a82-9d15159552fa_2000x1274.png" width="2000" height="1274" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a39a27da-4305-41a2-8a82-9d15159552fa_2000x1274.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1274,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!GyIo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39a27da-4305-41a2-8a82-9d15159552fa_2000x1274.png 424w, https://substackcdn.com/image/fetch/$s_!GyIo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39a27da-4305-41a2-8a82-9d15159552fa_2000x1274.png 848w, https://substackcdn.com/image/fetch/$s_!GyIo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39a27da-4305-41a2-8a82-9d15159552fa_2000x1274.png 1272w, https://substackcdn.com/image/fetch/$s_!GyIo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39a27da-4305-41a2-8a82-9d15159552fa_2000x1274.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="4"><li><p><strong>Access Configuration (Optional): </strong>To access the configuration again after you closed the above modal, go to the settings section and navigate to the added source. Select the source to retrieve the configuration or token. If needed, you can regenerate the token for security purposes.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2cRD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c6a3686-70a5-4db8-b82b-519594e5eb24_2000x1237.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2cRD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c6a3686-70a5-4db8-b82b-519594e5eb24_2000x1237.png 424w, https://substackcdn.com/image/fetch/$s_!2cRD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c6a3686-70a5-4db8-b82b-519594e5eb24_2000x1237.png 848w, https://substackcdn.com/image/fetch/$s_!2cRD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c6a3686-70a5-4db8-b82b-519594e5eb24_2000x1237.png 1272w, https://substackcdn.com/image/fetch/$s_!2cRD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c6a3686-70a5-4db8-b82b-519594e5eb24_2000x1237.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2cRD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c6a3686-70a5-4db8-b82b-519594e5eb24_2000x1237.png" width="2000" height="1237" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1c6a3686-70a5-4db8-b82b-519594e5eb24_2000x1237.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1237,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!2cRD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c6a3686-70a5-4db8-b82b-519594e5eb24_2000x1237.png 424w, https://substackcdn.com/image/fetch/$s_!2cRD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c6a3686-70a5-4db8-b82b-519594e5eb24_2000x1237.png 848w, https://substackcdn.com/image/fetch/$s_!2cRD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c6a3686-70a5-4db8-b82b-519594e5eb24_2000x1237.png 1272w, https://substackcdn.com/image/fetch/$s_!2cRD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c6a3686-70a5-4db8-b82b-519594e5eb24_2000x1237.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>With Codegiant Observability set up and configured to receive data from AWS S3 via Vector, you're ready to deploy Vector on your Kubernetes cluster and start streaming logs to Codegiant for comprehensive analysis and visualization. Copy the provided Vector configuration and customize it as needed. We will rewrite the configuration in YAML format for the Vector custom config below.</p><h3><strong>Installing Vector on Kubernetes Cluster</strong></h3><p>With Codegiant Observability configured to receive data from AWS S3 via Vector, let's proceed to deploy Vector on your Kubernetes cluster.</p><ol><li><p><strong>Prepare Custom Configuration Files:</strong> Before deploying Vector, prepare custom configuration files (<code>agent-config.yaml</code> and <code>aggregator-config.yaml</code>) for the Vector Agent and Vector Aggregator, respectively. These configuration files will specify how Vector collects, transforms, and forwards logs from Kubernetes pods to AWS S3 and then to Codegiant Observability.</p></li></ol><div class="captioned-image-container"><figure><pre><code># Vector Agent Configuration
# This configuration file defines settings for the Vector Agent,
# responsible for collecting logs from Kubernetes pods and forwarding them to AWS S3.

# Role and Service Account Annotations
role: Agent
serviceAccount:
  annotations:
    eks.amazonaws.com/role-arn: "arn:aws:iam::ACCOUNT_ID:role/VectorAgentRole"

# Custom Configuration
customConfig:
  # Data Directory
  data_dir: /vector-data-dir

  # API Configuration
  api:
    enabled: true
    address: 127.0.0.1:8686
    playground: false

  # Sources Configuration
  sources:
    # Kubernetes Logs Source
    kubernetes_logs:
      type: "kubernetes_logs"
      timezone: "local"
      auto_partial_merge: true
      extra_namespace_label_selector: "kubernetes.io/metadata.name in (test-ns)"

  # Sinks Configuration
  sinks:
    # AWS S3 Sink
    s3:
      inputs:
        - kubernetes_logs
      type: aws_s3
      region: "&lt;region&gt;"
      bucket: "&lt;bucket-name&gt;"
      key_prefix: date=%Y-%m-%d/
      encoding:
        codec: json

# Avoid Fargate nodes, we can't deploy DaemonSets there and remember to replace the region and bucket name.
</code></pre><figcaption class="image-caption">agent-config.yaml</figcaption></figure></div><p><strong>Explanation:</strong></p><ul><li><p><strong>Role and Service Account Annotations:</strong> Specifies the role and annotations for the Kubernetes service account associated with the Vector Agent. The provided IAM role (VectorAgentRole) ARN grants necessary permissions to interact with AWS services which in this case the S3 bucket.</p></li><li><p><strong>Custom Configuration:</strong></p><ul><li><p><strong>Data Directory:</strong> Defines the directory where Vector will store its data.</p></li><li><p><strong>API Configuration:</strong> Enables the API server and specifies its address. Playground mode is disabled.</p></li></ul></li><li><p><strong>Sources Configuration:</strong></p><ul><li><p><strong>Kubernetes Logs Source:</strong> Configures Vector to collect logs from Kubernetes pods. It specifies the timezone, enables auto partial merge, and filters logs from the <code>test-ns</code> namespace.</p></li></ul></li><li><p><strong>Sinks Configuration:</strong></p><ul><li><p><strong>AWS S3 Sink:</strong> Configures Vector to forward logs to AWS S3. It specifies the region, bucket name, key prefix with date-based partitioning, and JSON encoding codec for log messages. Logs collected from the Kubernetes logs source are sent to this sink.</p></li></ul></li></ul><div class="captioned-image-container"><figure><pre><code># Vector Aggregator Configuration
# This configuration file defines settings for the Vector Aggregator,
# responsible for collecting logs from AWS S3 via SQS and forwarding them to Codegiant Observability.

# Role and Service Account Annotations
role: "Agent"
serviceAccount:
  annotations:
    "eks.amazonaws.com/role-arn": "arn:aws:iam::ACCOUNT_ID:role/VectorAggregatorRole"

# Custom Configuration
customConfig:
  # Data Directory
  data_dir: /vector-data-dir

  # API Configuration
  api:
    enabled: true
    address: 127.0.0.1:8686
    playground: false

  # Sources Configuration
  sources:
    codegiant_mem-s3:
      type: aws_s3
      compression: gzip
      region: "&lt;region&gt;"
      strategy: sqs

      # SQS Configuration
      sqs:
        delete_message: true
        delete_failed_message: true
        poll_secs: 15
        queue_url: "https://sqs.us-east-1.amazonaws.com/ACCOUNT_ID/&lt;sqs_name&gt;"
        visibility_timeout_secs: 300

  # Transforms Configuration
  transforms:
    initial_transform:
      type: remap
      inputs:
        - codegiant_mem-s3
      source: |
        .message = encode_base64!(.message)
        .message = decode_base64!(.message)
        . = parse_json!(.message)

  # Sinks Configuration
  sinks:
    codegiant_http_sink_mem-s3:
      type: http
      inputs: 
        - initial_transform
      uri: "https://log.codegiant.io"
      method: "post"
      compression: "none"
      auth:
        strategy: "bearer"
        token: "&lt;TOKEN&gt;"
      encoding:
        codec: "json"
      acknowledgements:
        enabled: true
</code></pre><figcaption class="image-caption">aggregator-config.yaml</figcaption></figure></div><p><strong>Explanation:</strong></p><ul><li><p><strong>Sources Configuration:</strong></p><ul><li><p><strong>Codegiant Mem-S3 Source:</strong> Configures Vector to collect logs from AWS S3 via SQS. It specifies compression, region, and SQS strategy, along with SQS configuration details such as message deletion, polling interval, queue URL, and visibility timeout.</p></li></ul></li><li><p><strong>Transforms Configuration:</strong></p><ul><li><p><strong>Initial Transform:</strong> Defines a transformation step to decode and parse log messages received from the Codegiant Mem-S3 source. It uses the <code>remap</code> transformation type to modify the log message structure. You might wonder why we encode and decode the message, well, that's because S3 adds <code>.gz</code> extension to every log file or simply gzipped it and codegiant compression must be set <code>none</code>.</p></li></ul></li><li><p><strong>Sinks Configuration:</strong></p><ul><li><p><strong>Codegiant HTTP Sink for Mem-S3:</strong> Configures Vector to forward transformed logs to Codegiant Observability via HTTP POST requests. It specifies the destination URI, HTTP method, compression, authentication strategy and token, encoding codec, and acknowledgements. The transformed logs from the initial transform step are sent to this sink.</p></li></ul></li></ul><ol start="2"><li><p><strong>Deploy Vector using Helm:</strong> We will utilise Helm to deploy the Vector Agent and Aggregator on your Kubernetes cluster. Use the custom values files created earlier to provide configuration settings for each component. This command will install the Agent and Aggregator as a DaemonSet, and ensuring that it runs on all nodes in the cluster.</p></li></ol><pre><code>$ helm upgrade --install agent vector/vector --namespace vector --create-namespace --values agent-config.yaml

$ helm upgrade --install aggregator vector/vector --namespace vector --create-namespace --values aggregator-config.yaml
</code></pre><p>After deploying Vector, verify the status of the Vector pods to ensure they are running successfully on your Kubernetes cluster.</p><pre><code>$ kubectl get pods -n vector
</code></pre><p>Additionally, you can inspect the logs of the Vector pods to troubleshoot any issues or errors encountered during deployment.</p><pre><code>kubectl logs &lt;pod-name&gt; -n vector
</code></pre><p>With Vector successfully deployed on your Kubernetes cluster, it will start collecting, transforming, and forwarding logs from Kubernetes pods to AWS S3 and then to Codegiant Observability. You can now monitor and analyze your application logs in real-time using Codegiant's powerful log management and visualization features.</p><ul><li><p><strong>Checking Logs in S3</strong>: Confirm that logs are being collected and stored in the designated S3 bucket. You can navigate to the S3 console to view the log files and verify that new logs are being added as expected.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0c4h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b77c227-54b0-452b-91ff-076256e26b33_2000x1285.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0c4h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b77c227-54b0-452b-91ff-076256e26b33_2000x1285.png 424w, https://substackcdn.com/image/fetch/$s_!0c4h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b77c227-54b0-452b-91ff-076256e26b33_2000x1285.png 848w, https://substackcdn.com/image/fetch/$s_!0c4h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b77c227-54b0-452b-91ff-076256e26b33_2000x1285.png 1272w, https://substackcdn.com/image/fetch/$s_!0c4h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b77c227-54b0-452b-91ff-076256e26b33_2000x1285.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0c4h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b77c227-54b0-452b-91ff-076256e26b33_2000x1285.png" width="2000" height="1285" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1b77c227-54b0-452b-91ff-076256e26b33_2000x1285.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1285,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!0c4h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b77c227-54b0-452b-91ff-076256e26b33_2000x1285.png 424w, https://substackcdn.com/image/fetch/$s_!0c4h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b77c227-54b0-452b-91ff-076256e26b33_2000x1285.png 848w, https://substackcdn.com/image/fetch/$s_!0c4h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b77c227-54b0-452b-91ff-076256e26b33_2000x1285.png 1272w, https://substackcdn.com/image/fetch/$s_!0c4h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b77c227-54b0-452b-91ff-076256e26b33_2000x1285.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong>Checking Codegiant Observability</strong>: Access your Codegiant account and navigate to your Observability item. You should see incoming log data from the configured AWS S3 source. Verify that logs are being received in real-time and explore the available features for log analysis and visualization.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HJIe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be1f66b-27a9-4076-9b12-db69cebd7e88_2000x1257.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HJIe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be1f66b-27a9-4076-9b12-db69cebd7e88_2000x1257.png 424w, https://substackcdn.com/image/fetch/$s_!HJIe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be1f66b-27a9-4076-9b12-db69cebd7e88_2000x1257.png 848w, https://substackcdn.com/image/fetch/$s_!HJIe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be1f66b-27a9-4076-9b12-db69cebd7e88_2000x1257.png 1272w, https://substackcdn.com/image/fetch/$s_!HJIe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be1f66b-27a9-4076-9b12-db69cebd7e88_2000x1257.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HJIe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be1f66b-27a9-4076-9b12-db69cebd7e88_2000x1257.png" width="2000" height="1257" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2be1f66b-27a9-4076-9b12-db69cebd7e88_2000x1257.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1257,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!HJIe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be1f66b-27a9-4076-9b12-db69cebd7e88_2000x1257.png 424w, https://substackcdn.com/image/fetch/$s_!HJIe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be1f66b-27a9-4076-9b12-db69cebd7e88_2000x1257.png 848w, https://substackcdn.com/image/fetch/$s_!HJIe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be1f66b-27a9-4076-9b12-db69cebd7e88_2000x1257.png 1272w, https://substackcdn.com/image/fetch/$s_!HJIe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2be1f66b-27a9-4076-9b12-db69cebd7e88_2000x1257.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>Conclusion</strong></h3><p>In conclusion, this blog has provided a comprehensive guide to setting up a robust log collection pipeline from AWS S3 to Codegiant Observability using Vector. We explored the Codegiant Observability, Vector as an efficient data pipeline, steps of configuring IAM roles, setting up AWS S3 buckets and SQS queues for log storage and message queue respectively, deploying Vector components on Kubernetes clusters, and monitoring log flow in Codegiant Observability.</p><p>By leveraging the efficiency of Vector and the observability capabilities of Codegiant, teams can gain invaluable insights into their application performance and enhance their DevOps workflows. However, it's worth noting that while this architecture offers flexibility and control, sending data directly to Codegiant with the Vector Agent can provide a more cost-effective solution. It's essential to consider the specific needs of your organization when designing your log management infrastructure. Credit for the initial project architecture goes to <a href="https://opsworks.co/">opsworks</a>. Please feel free to leave any comments or questions below, and we'll be happy to assist you further.</p><h3>Continue reading</h3><ul><li><p><a href="https://blog.codegiant.io/securing-software-in-toto-tekton/">Securing Software with Codegiant Tekton and In-toto Attestation</a></p></li><li><p><a href="https://blog.codegiant.io/deploying-an-app-to-google-kubernetes-engine-with-codegiant/">Deploying an App to Google Kubernetes Engine with Codegiant</a></p></li><li><p><a href="https://blog.codegiant.io/the-next-wave-of-devops-top-trends-for-2024/">The Next Wave of DevOps: Top Trends for 2024</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[Kubernetes Tutorial for Beginners: Introduction to K8s]]></title><description><![CDATA[This blog is intended to discuss the basic concepts of Kubernetes for beginners or software engineers who wants to learn about container orchestration with the most popular orchestrator tool also known as k8s.]]></description><link>https://blog.codegiant.io/p/kubernetes-tutorial-for-beginners-introduction-to-k8s</link><guid isPermaLink="false">https://blog.codegiant.io/p/kubernetes-tutorial-for-beginners-introduction-to-k8s</guid><dc:creator><![CDATA[Abdullateef Lawal]]></dc:creator><pubDate>Tue, 04 Jun 2024 22:22:51 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c6246250-61b4-4d0e-9665-2c49ca9f0ff1_2400x1256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!38lU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbf0fd7b-0f6f-441e-bc2d-451b41b40c64_2400x1256.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!38lU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbf0fd7b-0f6f-441e-bc2d-451b41b40c64_2400x1256.png 424w, https://substackcdn.com/image/fetch/$s_!38lU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbf0fd7b-0f6f-441e-bc2d-451b41b40c64_2400x1256.png 848w, https://substackcdn.com/image/fetch/$s_!38lU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbf0fd7b-0f6f-441e-bc2d-451b41b40c64_2400x1256.png 1272w, https://substackcdn.com/image/fetch/$s_!38lU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbf0fd7b-0f6f-441e-bc2d-451b41b40c64_2400x1256.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!38lU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbf0fd7b-0f6f-441e-bc2d-451b41b40c64_2400x1256.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cbf0fd7b-0f6f-441e-bc2d-451b41b40c64_2400x1256.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Introduction to Kubernetes&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Introduction to Kubernetes" title="Introduction to Kubernetes" srcset="https://substackcdn.com/image/fetch/$s_!38lU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbf0fd7b-0f6f-441e-bc2d-451b41b40c64_2400x1256.png 424w, https://substackcdn.com/image/fetch/$s_!38lU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbf0fd7b-0f6f-441e-bc2d-451b41b40c64_2400x1256.png 848w, https://substackcdn.com/image/fetch/$s_!38lU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbf0fd7b-0f6f-441e-bc2d-451b41b40c64_2400x1256.png 1272w, https://substackcdn.com/image/fetch/$s_!38lU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbf0fd7b-0f6f-441e-bc2d-451b41b40c64_2400x1256.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>This blog is intended to discuss the basic concepts of <a href="https://kubernetes.io/">Kubernetes</a> for beginners or software engineers who wants to learn about container orchestration with the most popular orchestrator tool also known as k8s. By the end of this tutorial, you will have gained a foundational understanding of Kubernetes, enabling you to interact confidently with Kubernetes clusters. Additionally, you'll have hands-on experience with essential commands and practical scenarios.</p><p>Before delving into the fundamental concepts of Kubernetes, let's take a moment to preview some of the key ideas that will be covered in this discussion.</p><ol><li><p>What is Containerization?</p></li><li><p>What is Kubernetes?</p></li><li><p>Kubernetes Architecture</p></li><li><p>Kubernetes Key Features</p></li><li><p>Setting up Kubernetes Cluster</p></li><li><p>Common Kubernetes Objects</p></li><li><p>Hands-on Experience with Kubernetes</p></li></ol><h3>What is Containerization?</h3><p>As a beginner, think of Containerization as a way of packaging the source code, libraries, and dependencies of your application in a container, providing a self-contained and consistent environment for your application to run across various computing environments. <a href="https://www.docker.com/">Docker</a> is the most popular containerization platform, allowing developers to create, deploy, and run applications in isolated containers.</p><h3>What is Kubernetes?</h3><p>Kubernetes, often abbreviated as K8s, is a powerful open-source container orchestration platform designed to automate the deployment, scaling, and management of containerized applications.</p><p>Kubernetes provides a robust framework for efficiently managing containerized workloads and services across a cluster of machines. It was originally developed by Google and now maintained by the <a href="https://www.cncf.io/">Cloud Native Computing Foundation (CNCF)</a>.</p><p>While Docker excels as a platform for building and packaging containerized applications, It focuses on the development and runtime aspects of containers, making it an ideal choice for individual developers and smaller-scale deployments. On the other hand, Kubernetes specializes in container orchestration, providing robust features for automating deployment, scaling, and management of containerized applications in large-scale environments.</p><h3>The Kubernetes Architecture</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gSGd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc15c56-8fc4-4e07-8298-2f20f21aa43d_1200x730.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gSGd!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc15c56-8fc4-4e07-8298-2f20f21aa43d_1200x730.gif 424w, https://substackcdn.com/image/fetch/$s_!gSGd!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc15c56-8fc4-4e07-8298-2f20f21aa43d_1200x730.gif 848w, https://substackcdn.com/image/fetch/$s_!gSGd!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc15c56-8fc4-4e07-8298-2f20f21aa43d_1200x730.gif 1272w, https://substackcdn.com/image/fetch/$s_!gSGd!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc15c56-8fc4-4e07-8298-2f20f21aa43d_1200x730.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gSGd!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc15c56-8fc4-4e07-8298-2f20f21aa43d_1200x730.gif" width="1200" height="730" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2fc15c56-8fc4-4e07-8298-2f20f21aa43d_1200x730.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:730,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!gSGd!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc15c56-8fc4-4e07-8298-2f20f21aa43d_1200x730.gif 424w, https://substackcdn.com/image/fetch/$s_!gSGd!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc15c56-8fc4-4e07-8298-2f20f21aa43d_1200x730.gif 848w, https://substackcdn.com/image/fetch/$s_!gSGd!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc15c56-8fc4-4e07-8298-2f20f21aa43d_1200x730.gif 1272w, https://substackcdn.com/image/fetch/$s_!gSGd!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fc15c56-8fc4-4e07-8298-2f20f21aa43d_1200x730.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The Kubernetes Architecture</figcaption></figure></div><p>Kubernetes follows a distributed and modular architecture designed for scalability, extensibility, and resilience. The key components of Kubernetes architecture include:</p><ol><li><p><strong>Node:</strong> A "Node" refers to a single machine, whether it's a physical server or a virtual machine, that is part of the Kubernetes cluster.</p></li><li><p><strong>Master Node (Control Plane):</strong>The Master Node, also known as the Control Plane, is responsible for managing the overall state and configuration of the Kubernetes cluster. Its components includes:</p></li></ol><ul><li><p><strong>API Server:</strong> Acts as the entry point for all administrative tasks and serves as the frontend for the Kubernetes control plane.</p></li><li><p><strong>Controller Manager:</strong> Ensures the desired state of the cluster, handling node and workload-related tasks.</p></li><li><p><strong>Scheduler:</strong> Assigns nodes to newly created pods based on resource requirements and constraints.</p></li><li><p><strong>etcd:</strong> A distributed key-value store used for storing the cluster's configuration data, ensuring high availability and consistency.</p></li></ul><ol start="3"><li><p><strong>Worker Node (Data Plane): </strong>Worker Nodes are the machines where containers are deployed and run. They host the applications and workloads. Its components includes:</p></li></ol><ul><li><p><strong>Kubelet:</strong> Ensures that containers are running in a Pod on the node. It communicates with the master node.</p></li><li><p><strong>Kube Proxy:</strong> Maintains network rules on nodes, facilitating communication between Pods and external traffic.</p></li><li><p><strong>Container Runtime:</strong> Executes containers (e.g., Docker, <a href="https://containerd.io/">containerd</a>) and manages their lifecycle</p></li><li><p><strong>Pod:</strong> The smallest deployable unit in Kubernetes, representing one or more containers sharing the same network namespace and storage.</p></li></ul><h3><strong>Kubernetes Key Features</strong></h3><p>Kubernetes is the leading container orchestration platform with key features that make it indispensable for modern application deployment:</p><ol><li><p><strong>Container Orchestration:</strong> Kubernetes automates deployment, scaling, and management of containerized applications.</p></li><li><p><strong>Automated Scaling:</strong> It adjusts the number of running instances based on resource usage or custom metrics.</p></li><li><p><strong>Self-Healing:</strong> Also Kubernetes ensures high availability by automatically restarting failed containers.</p></li><li><p><strong>Service Discovery and Load Balancing:</strong> Kubernetes facilitates seamless communication between containers and distributes traffic for optimal performance.</p></li><li><p><strong>Rolling Updates and Rollbacks:</strong> Kubernetes enables smooth deployment of new versions and quick rollbacks in case of issues.</p></li><li><p><strong>Multi-Cloud and Hybrid Cloud Support:</strong> Kubernetes is cloud-agnostic, supporting deployment across various cloud providers or on-premises.</p></li><li><p><strong>Declarative Configuration:</strong> It uses a declarative approach for defining the desired state of the system.</p></li><li><p><strong>Extensibility and Ecosystem:</strong> Kubernetes is highly extensible with a rich ecosystem, supporting custom resources and operators.</p></li><li><p><strong>Role-Based Access Control (RBAC):</strong> Kubernetes offers fine-grained access control through roles and permissions.</p></li></ol><p>Kubernetes offers so many features, making it a a powerful and versatile container orchestration platform, streamlining the deployment, scaling, and management of containerized applications.</p><h3>Setting up Kubernetes Cluster</h3><p>Creating a Kubernetes cluster from scratch is a non-trivial task, and there are various options and tools available, each with its considerations. In this blog, we will install Kubernetes locally using <a href="https://k3s.io/">K3s</a>, a lightweight distribution designed for ease of use. K3s is particularly suitable for local development and testing scenarios. You can explore other alternative tools like <a href="https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/">Kubeadm</a>, <a href="https://minikube.sigs.k8s.io/docs/">Minikube</a>, and <a href="https://kind.sigs.k8s.io/">KinD</a>.</p><p>To install K3s, you can use a convenient script provided by <a href="https://www.rancher.com/">Rancher</a>, the organization behind K3s. Open a terminal and run the following command:</p><pre><code>$ curl -sfL https://get.k3s.io | sh -
...
[INFO]  Starting k3s</code></pre><p>This output indicates that K3s has been successfully installed, you can now configure <code>kubectl</code> to use the K3s cluster by copying the auto-generated Kubeconfig file. Copy the command below and run it in your terminal:</p><pre><code>$ mkdir -p ~/.kube
$ sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
$ sudo chown $USER:$USER ~/.kube/config
</code></pre><p>Set the <code>KUBECONFIG</code> environment variable to point to the copied config file:</p><pre><code>$ export KUBECONFIG=~/.kube/config
</code></pre><p>You can add the export command to your shell profile (e.g., <code>~/.bashrc</code> or <code>~/.zshrc</code>) to make this configuration persistent across sessions.</p><p>Now you can use <code>kubectl</code> to interact with your local K3s cluster. Let's cofirm with the below command:</p><pre><code>$ kubectl get nodes
NAME             STATUS   ROLES                  AGE   VERSION
k3s-server       Ready    control-plane,master   5m    v1.28.7+k3s1
</code></pre><p>If the installation was successful, you should see a single node listed with the hostname of your machine. The node status should be "Ready" indicating that your Kubernetes cluster is now set up and ready for use!</p><h3>Common Kubernetes Objects</h3><p>Good job &#128077;, You've done pretty well to get to this stage, but before we get our hands dirty with some practical works, Let's understand a bit more about some important Kubernetes objects.</p><p><strong>Pod:</strong></p><p>A Pod is the smallest deployable unit in Kubernetes, representing a single instance of a running process.</p><p>Pods are the basic units that run applications in Kubernetes. They can contain one or more containers that share the same network namespace, storage, and have the capability to communicate with each other using localhost. Pods are often used to deploy tightly coupled application components.</p><p><strong>Service:</strong></p><p>A <a href="https://kubernetes.io/docs/concepts/services-networking/service/">Service</a> is an abstraction that defines a logical set of Pods and a policy to access them, providing a stable endpoint for communication. Kubernetes supports different Service types, such as ClusterIP, NodePort, LoadBalancer and Headless Services.</p><p>Kubernetes Services enable networking within a Kubernetes cluster. By abstracting away the underlying Pods, Services facilitate load balancing, scaling, and service discovery.</p><p><strong>Namespace:</strong></p><p>Namespace provides a way to divide cluster resources into virtual clusters, helping manage and isolate multiple projects or teams within the same Kubernetes cluster. Resources like Pods, Services, and ConfigMaps can exist in different namespaces, ensuring better isolation and resource management.</p><p><strong>Deployment:</strong></p><p><a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/">Deployments</a> are a higher-level abstraction that allows you to describe the desired state of your application. They manage the creation and scaling of replica sets, ensuring that the specified number of Pods are running and handling updates or rollbacks with minimal downtime. A Deployment provides declarative updates to applications, managing the deployment and scaling of replica sets.</p><p><strong>Volume:</strong></p><p><a href="https://kubernetes.io/docs/concepts/storage/volumes/">Volume</a> is a directory containing data that can be shared among containers in a Pod, providing persistent storage beyond the Pod&#8217;s lifecycle.</p><p>Kubernetes Volumes allow data to persist across the lifecycle of a Pod. They can be used to share files between containers, store configuration data, or provide durable storage for applications. Kubernetes supports various types of volumes, including <code>emptyDir</code>, <code>hostPath</code>, <code>ConfigMap</code> and <code>PersistentVolume</code> storage solutions.</p><p><strong>StatefulSet:</strong></p><p><a href="https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/">StatefulSets</a> are used for applications that require stable network identities and persistent storage. They ensure that each Pod gets a unique and predictable hostname, allowing stateful applications like databases to maintain their state and identity even during scaling or rescheduling.</p><p><strong>NetworkPolicy:</strong></p><p><a href="https://kubernetes.io/docs/concepts/services-networking/network-policies/">NetworkPolicy</a> is a Kubernetes resource that defines how Pods are allowed to communicate with each other and other network endpoints. It allows fine-grained control over communication between Pods. It specifies rules to permit or deny traffic based on factors like <code>podSelector</code>, <code>namespaceSelector</code>, and specific <code>ports</code>.</p><p><strong>Ingress:</strong></p><p><a href="https://kubernetes.io/docs/concepts/services-networking/ingress/">Ingress</a> is an API object that manages external access to services within a cluster, handling HTTP and HTTPS traffic routing. It provides a way to expose services to the external world. It acts as a traffic manager, directing incoming requests based on defined rules. This allows for features like domain-based routing, SSL termination, and load balancing at the application layer.</p><h3>Hands-on Experience with Kubernetes</h3><p>Now, let's dive into the practical aspect of Kubernetes using <code>kubectl</code>, the official command-line tool for interacting with Kubernetes clusters.</p><p><strong>Deploying our First Pod</strong>:</p><p>Let's start by listing all pods in the default namespace:</p><pre><code>$ kubectl get pods
No resources found in default namespace.</code></pre><p>As expected, there are currently no pods in the default namespace. Let's create one:</p><pre><code>$ kubectl run nginx-pod --image=nginx --port=80
pod/nginx-pod created
</code></pre><p>Check again to see if the pod is running:</p><pre><code>$ kubectl get pods
NAME        READY   STATUS    RESTARTS   AGE
nginx-pod   1/1     Running   0          7s</code></pre><p>Now, let's access the pod:</p><pre><code>$ kubectl port-forward nginx-pod 8080:80
Forwarding from 127.0.0.1:8080 -&gt; 80
Forwarding from [::1]:8080 -&gt; 80</code></pre><p>Visit <code>http://localhost:8080</code> in a web browser to see the result.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NBE1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf54b3e7-7396-492f-8b63-28e23e526f8e_1289x474.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NBE1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf54b3e7-7396-492f-8b63-28e23e526f8e_1289x474.png 424w, https://substackcdn.com/image/fetch/$s_!NBE1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf54b3e7-7396-492f-8b63-28e23e526f8e_1289x474.png 848w, https://substackcdn.com/image/fetch/$s_!NBE1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf54b3e7-7396-492f-8b63-28e23e526f8e_1289x474.png 1272w, https://substackcdn.com/image/fetch/$s_!NBE1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf54b3e7-7396-492f-8b63-28e23e526f8e_1289x474.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NBE1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf54b3e7-7396-492f-8b63-28e23e526f8e_1289x474.png" width="1289" height="474" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df54b3e7-7396-492f-8b63-28e23e526f8e_1289x474.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:474,&quot;width&quot;:1289,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!NBE1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf54b3e7-7396-492f-8b63-28e23e526f8e_1289x474.png 424w, https://substackcdn.com/image/fetch/$s_!NBE1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf54b3e7-7396-492f-8b63-28e23e526f8e_1289x474.png 848w, https://substackcdn.com/image/fetch/$s_!NBE1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf54b3e7-7396-492f-8b63-28e23e526f8e_1289x474.png 1272w, https://substackcdn.com/image/fetch/$s_!NBE1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf54b3e7-7396-492f-8b63-28e23e526f8e_1289x474.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Managing Replicas with Deployments</strong>:<br>Moving forward, Let's create a deployment imperatively:</p><pre><code>$ kubectl create deployment nginx-deployment --image=nginx
deployment.apps/nginx-deployment created</code></pre><p>Run the below command to scale the deployment that creates additional replicas of the pod:</p><pre><code>$ kubectl scale deployment nginx-deployment --replicas=3
deployment.apps/nginx-deployment scaled</code></pre><p><strong>Exploring Services</strong></p><p>After that, we will expose the deployment with a service.</p><pre><code>$ kubectl expose deployment nginx-deployment --type=ClusterIP --name=nginx-service --port=80
service/nginx-service exposed</code></pre><p>Now, Retrieve information about all resources in the current (default) namespace.</p><pre><code>$ kubectl get all --namespace default
NAME                                    READY   STATUS    RESTARTS   AGE
pod/nginx-deployment-6d6565499c-94brn   1/1     Running   0          43s
pod/nginx-deployment-6d6565499c-g7f6r   1/1     Running   0          35s
pod/nginx-deployment-6d6565499c-mg4hf   1/1     Running   0          35s
pod/nginx-pod                           1/1     Running   0          54s

NAME                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
service/kubernetes      ClusterIP   10.96.0.1       &lt;none&gt;        443/TCP   2d23h
service/nginx-service   ClusterIP   10.96.207.216   &lt;none&gt;        80/TCP    5s

NAME                               READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx-deployment   3/3     3            3           43s

NAME                                          DESIRED   CURRENT   READY   AGE
replicaset.apps/nginx-deployment-6d6565499c   3         3         3       43s</code></pre><p>As seen, we have three running pods as part of the nginx-deployment, an additional standalone pod (nginx-pod), the newly created service (nginx-service), the deployment, and replicaset.</p><p>Map the local port 8081 to the service's port 80. This means that any traffic directed to <code>localhost:8081</code> on your machine will be forwarded to the <code>nginx-service</code> on port <code>80</code> in the Kubernetes cluster:</p><pre><code>$ kubectl port-forward service/nginx-service 8081:80
Forwarding from 127.0.0.1:8081 -&gt; 80
Forwarding from [::1]:8081 -&gt; 80</code></pre><p>Visit <code>http://localhost:8081</code> in a web browser to confirm.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6NtQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ade7036-d923-4b3f-8c35-92e7f0a3f99a_1335x396.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6NtQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ade7036-d923-4b3f-8c35-92e7f0a3f99a_1335x396.png 424w, https://substackcdn.com/image/fetch/$s_!6NtQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ade7036-d923-4b3f-8c35-92e7f0a3f99a_1335x396.png 848w, https://substackcdn.com/image/fetch/$s_!6NtQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ade7036-d923-4b3f-8c35-92e7f0a3f99a_1335x396.png 1272w, https://substackcdn.com/image/fetch/$s_!6NtQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ade7036-d923-4b3f-8c35-92e7f0a3f99a_1335x396.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6NtQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ade7036-d923-4b3f-8c35-92e7f0a3f99a_1335x396.png" width="1335" height="396" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0ade7036-d923-4b3f-8c35-92e7f0a3f99a_1335x396.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:396,&quot;width&quot;:1335,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!6NtQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ade7036-d923-4b3f-8c35-92e7f0a3f99a_1335x396.png 424w, https://substackcdn.com/image/fetch/$s_!6NtQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ade7036-d923-4b3f-8c35-92e7f0a3f99a_1335x396.png 848w, https://substackcdn.com/image/fetch/$s_!6NtQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ade7036-d923-4b3f-8c35-92e7f0a3f99a_1335x396.png 1272w, https://substackcdn.com/image/fetch/$s_!6NtQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ade7036-d923-4b3f-8c35-92e7f0a3f99a_1335x396.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Congratulations! you have been able to deploy and access the deployment of an application on a Kubernetes cluster. Before we call it a day, Let's take a look at a simple Declarative approach for creating a resource in Kubernetes.</p><p>Create a YAML file (e.g., <code>nginx-pod.yaml</code>) with the following content:</p><pre><code>apiVersion: v1
kind: Pod
metadata:
  name: nginx-declarative
spec:
  containers:
  - name: nginx-container
    image: nginx
</code></pre><p>Apply the YAML file to create the pod:</p><pre><code>$ kubectl apply -f nginx-pod.yaml
pod/nginx-declarative created</code></pre><p>Verify the creation of the declarative Pod:</p><pre><code>$ kubectl get pods
NAME                                READY   STATUS    RESTARTS   AGE
nginx-declarative                   1/1     Running   0          93s
nginx-deployment-6d6565499c-94brn   1/1     Running   0          27m
nginx-deployment-6d6565499c-g7f6r   1/1     Running   0          27m
nginx-deployment-6d6565499c-mg4hf   1/1     Running   0          27m
nginx-pod                           1/1     Running   0          67m</code></pre><p>Anytime you modify the configuration file, re-run the apply command to update your Kubernetes cluster.</p><p><strong>Deleting Resources</strong></p><p>To clean up the resources created during the tutorial, use <code>kubectl get all</code> to identify the provisioned resources. Deleting a resource in Kubernetes involves using the <code>kubectl delete</code> command with the resource type and name. The basic syntax is as follows:</p><pre><code>$ kubectl delete &lt;resource_type&gt; &lt;resource_name&gt;</code></pre><p>For example, to delete the Pod with the name <code>nginx-pod</code>, you would run:</p><pre><code>$ kubectl delete pod nginx-pod
pod "nginx-pod" deleted</code></pre><p>To delete multiple resources based on a label selector, use the <code>--selector</code> flag. For instance, to delete all Pods with the label <code>app=nginx</code>, run:</p><pre><code>$ kubectl delete pod --selector=app=nginx</code></pre><p>Exercise caution with <code>kubectl delete</code> as it irreversibly removes resources. Double-check the resource type and name before executing the command.</p><p><strong>More <code>kubectl</code> Commands</strong></p><p>Other useful <code>kubectl</code> commands, includes:</p><ul><li><p><strong>Describe:</strong> Display detailed information about a specific resource.</p></li></ul><pre><code>$ kubectl describe &lt;resource_type&gt; &lt;resource_name&gt;
</code></pre><ul><li><p><strong>Contexts:</strong> Switch between different Kubernetes clusters and namespaces.</p></li></ul><pre><code>$ kubectl config get-contexts
$ kubectl config use-context &lt;context_name&gt;
</code></pre><ul><li><p><strong>Logs:</strong> View logs from a running pod.</p></li></ul><pre><code>$ kubectl logs &lt;pod_name&gt;
</code></pre><ul><li><p><strong>Exec:</strong> Run commands in a running pod.</p></li></ul><pre><code>$ kubectl exec -it &lt;pod_name&gt; -- /bin/bash
</code></pre><ul><li><p><strong>Events:</strong> View cluster events for troubleshooting.</p></li></ul><pre><code>$ kubectl get events
</code></pre><p><a href="https://kubernetes.io/docs/reference/kubectl/">kubectl</a> provides a comprehensive set of commands for managing the entire lifecycle of Kubernetes resources.</p><p>With this hands-on experience using <code>kubectl</code>, you should now have a foundational understanding of interacting with Kubernetes.</p><p><a href="https://codegiant.io/eniolaamiola/eniolaamiola/inbox">Codegiant's</a> CI/CD platform is entirely Kubernetes-native, simplifying the process of building, testing, and deploying across various cloud providers or on-premises systems. With built-in support for GitOps, Blue/Green deploys, Canary releases, and Rolling deploys, Codegiant offers a comprehensive set of features out of the box. Codegiant also offers a <a href="https://codegiant.io/features/ci-cd#visualizer">Visual pipeline builder</a>, allowing you to spend less time navigating through lines of YAML and more time building. Positioned as the No. 1 true DevSecOps platform, Codegiant equips you with all the tools you need for faster development that leads to increased revenue. From <a href="https://codegiant.io/features/issue-tracker">Issue Tracker</a> and <a href="https://codegiant.io/features/repositories">Git Repositories</a> to <a href="https://codegiant.io/features/ci-cd">CI/CD</a>, <a href="https://codegiant.io/features/codepods">Codepods</a>, <a href="https://codegiant.io/features/error-apm-tracing">Error &amp; APM Tracing</a>, <a href="https://codegiant.io/features/observability">Observability</a>, <a href="https://codegiant.io/features/chaos-engineering">Chaos Engineering</a>, <a href="https://codegiant.io/features/uptime-monitoring">Uptime Monitoring</a>, <a href="https://codegiant.io/features/status-pages">Status Pages</a>, to <a href="https://codegiant.io/features/document-hub">Document Hub</a> &#8211; Codegiant has you covered. Sign up for a free account at <a href="https://codegiant.io/users/sign_up">Codegiant</a> to experience the true essence of a complete DevSecOps platform.</p><p><strong>Key Takeaways</strong></p><p>The tutorial provides foundational insights into containerization, Kubernetes architecture, key features, and hands-on experience using kubectl. Explore additional insightful tutorials and guides on navigating Codegiant effectively through our <a href="https://blog.codegiant.io/">blog</a>.</p>]]></content:encoded></item><item><title><![CDATA[Securing Software with Codegiant: Tekton and In-toto Attestation]]></title><description><![CDATA[For developers and companies, the right CI/CD tools can make a huge difference in delivering quality software quickly and securely.]]></description><link>https://blog.codegiant.io/p/securing-software-in-toto-tekton</link><guid isPermaLink="false">https://blog.codegiant.io/p/securing-software-in-toto-tekton</guid><dc:creator><![CDATA[Codegiant]]></dc:creator><pubDate>Mon, 29 Jan 2024 14:43:25 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c55a1f1a-f20b-4b2a-ac6d-c76b54878fd6_1200x628.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XwhZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885ed2d0-2180-411d-ac14-00b623f09929_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XwhZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885ed2d0-2180-411d-ac14-00b623f09929_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XwhZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885ed2d0-2180-411d-ac14-00b623f09929_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XwhZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885ed2d0-2180-411d-ac14-00b623f09929_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XwhZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885ed2d0-2180-411d-ac14-00b623f09929_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XwhZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885ed2d0-2180-411d-ac14-00b623f09929_1200x628.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/885ed2d0-2180-411d-ac14-00b623f09929_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XwhZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885ed2d0-2180-411d-ac14-00b623f09929_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XwhZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885ed2d0-2180-411d-ac14-00b623f09929_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XwhZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885ed2d0-2180-411d-ac14-00b623f09929_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XwhZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885ed2d0-2180-411d-ac14-00b623f09929_1200x628.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>For developers and companies, the right CI/CD tools can make a huge difference in delivering quality software quickly and securely. In this article, we'll learn how Codegiant integrates Tekton &#8211;&#8211; a leading open-source CI/CD framework &#8211;&#8211; with in-toto attestations. This integration enhances both security and trust in the software development process.</p><p>We'll look closely at how these technologies work together in Codegiant, making it a top choice for developers who need to keep their software development safe and efficient in the face of growing security challenges.</p><p>Let's start by exploring the specifics of these technologies and their significance in the CI/CD process.</p><h2><strong>Understanding Tekton</strong></h2><p>Tekton is an open-source framework designed for creating CI/CD systems, built to run on Kubernetes. It allows developers to define pipelines that automate the processes of building, testing, and deploying applications.</p><p><strong>Key Components of Tekton in CI/CD:</strong></p><ul><li><p><strong>Tasks</strong>: The most fundamental units in Tekton, representing individual operations within a pipeline, like building a Docker image or running tests.</p></li><li><p><strong>Pipelines</strong>: A set of tasks arranged in a specific order of execution. They define the end-to-end flow from source code to deployment.</p></li><li><p><strong>PipelineRuns</strong>: Instances of pipelines that are executed with specific parameters and resources.</p></li></ul><p><strong>Example of a Simple Tekton Task:</strong></p><pre><code>apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
&nbsp;&nbsp;name: hello-world
spec:
&nbsp;&nbsp;steps:
&nbsp;&nbsp;&nbsp;&nbsp;- name: echo
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image: ubuntu
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script: |
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#!/bin/bash
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo "Hello, World!"</code></pre><p>This Task uses an Ubuntu image to run a simple script that prints "Hello, World!" It's a basic illustration of how a task is defined in Tekton.</p><h2><strong>In-toto Attestation for Supply Chain Security</strong></h2><p>In-toto is a framework that secures the software supply chain by ensuring the integrity of the software from development to deployment. It does this by generating metadata at each step of the software supply chain, which can later be verified to ensure that each step was carried out as intended, by the intended party, and wasn't tampered with.</p><p><strong>Key Concepts:</strong></p><ul><li><p><strong>Layout</strong>: Specifies the steps in the software supply chain and the requirements for each step.</p></li><li><p><strong>Link Metadata</strong>: Generated by each step in the supply chain, recording the materials used and products produced, along with other relevant information.</p></li></ul><h3><strong>Integration in Codegiant: Tekton Chains for Signed Provenance</strong></h3><p>Codegiant integrates Tekton along with Tekton Chains, enabling signed software supply chain provenance. Tekton Chains is instrumental in this process, capturing information about each step in a Tekton pipeline and signing it to create a verifiable record of the entire CI/CD process.&nbsp;</p><p>This approach is crucial for security, as it ensures every artifact produced in the pipeline can be traced back to its source with confirmed integrity, which is essential for preventing supply chain attacks involving malicious alterations. Additionally, for industries with stringent regulatory requirements, having a verifiable chain of custody for every aspect of the software build and deployment process is paramount for compliance.</p><h3><strong>Conclusion</strong></h3><p>The integration of Tekton for CI/CD and in-toto attestation in Codegiant provides a robust framework for secure software development and deployment. By ensuring the integrity of every step in the CI/CD pipeline and providing verifiable records of the software supply chain, Codegiant offers developers and organizations a secure, compliant, and efficient tool for modern software development needs.</p><p>If you enjoyed this article or have any questions, please don't hesitate to reach out in the comments. As always, we value your feedback!</p>]]></content:encoded></item><item><title><![CDATA[Monitoring vs Visibility vs Full-stack Observability: Understanding Codegiant's Comprehensive Approach]]></title><description><![CDATA[In software development, it's important to effectively manage and understand system performance.]]></description><link>https://blog.codegiant.io/p/monitoring-vs-visibility-vs-full-stack-observability-understanding-codegiants-comprehensive-approach</link><guid isPermaLink="false">https://blog.codegiant.io/p/monitoring-vs-visibility-vs-full-stack-observability-understanding-codegiants-comprehensive-approach</guid><dc:creator><![CDATA[Codegiant]]></dc:creator><pubDate>Fri, 19 Jan 2024 14:56:28 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1a068e24-42d0-4953-bcd5-871a3f371b3f_1200x628.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!v_QV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059289b3-e7a4-4d41-a882-4300008ddada_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!v_QV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059289b3-e7a4-4d41-a882-4300008ddada_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!v_QV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059289b3-e7a4-4d41-a882-4300008ddada_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!v_QV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059289b3-e7a4-4d41-a882-4300008ddada_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!v_QV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059289b3-e7a4-4d41-a882-4300008ddada_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!v_QV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059289b3-e7a4-4d41-a882-4300008ddada_1200x628.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/059289b3-e7a4-4d41-a882-4300008ddada_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!v_QV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059289b3-e7a4-4d41-a882-4300008ddada_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!v_QV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059289b3-e7a4-4d41-a882-4300008ddada_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!v_QV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059289b3-e7a4-4d41-a882-4300008ddada_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!v_QV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059289b3-e7a4-4d41-a882-4300008ddada_1200x628.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>In software development, it's important to effectively manage and understand system performance. Three key concepts in this context are monitoring, visibility, and Full-stack Observability.</p><p><strong>Monitoring</strong> is the continuous process of collecting and analyzing data to ensure that applications and infrastructure are functioning correctly. <strong>Visibility</strong> goes deeper, providing insights into the root causes and interactions within the system, beyond surface-level metrics.</p><p><strong>Full-stack Observability</strong>, on the other hand, represents a comprehensive approach, integrating monitoring and visibility across the entire technology stack. This approach facilitates a deeper understanding and proactive management of systems.</p><p>Codegiant stands out for its application of Full-stack Observability. Combining monitoring and visibility with advanced data analysis, we offer <strong>a comprehensive view of your system's health and performance</strong>.</p><p>In this article, we'll explore the differences between monitoring, visibility, and Full-stack Observability, and how Codegiant's approach can help you build better software.</p><h2><strong>Monitoring</strong></h2><p>As we've mentioned, monitoring is the process of continuously observing a system's operation to ensure it functions as expected. It primarily focuses on aspects like system performance, resource usage (CPU, memory, disk space), network traffic, and error rates. The data collected through monitoring is used for alerting and performance evaluation, helping teams respond to issues promptly.</p><h3><strong>Limitations of Monitoring Alone</strong></h3><p><strong>Lack of Contextual Information:</strong> Traditional monitoring often focuses on technical metrics without providing the broader context. For instance, it might alert you to a spike in CPU usage but not explain why this spike occurred. Without context, diagnosing and resolving issues becomes more challenging.</p><p><strong>Reactive Nature:</strong> Monitoring systems are typically reactive. They alert you when something has already gone wrong, rather than providing proactive insights that could prevent issues from happening in the first place.</p><p><strong>Limited Visibility in Complex Systems:</strong> As systems grow in complexity, traditional monitoring tools may not provide sufficient visibility into all aspects of the system. They might be good at tracking individual components but fall short in understanding the interactions and dependencies between different parts of the system.</p><p><strong>Inability to Handle Distributed Environments:</strong> Traditional monitoring tools are often not equipped to effectively monitor distributed environments like cloud infrastructure or microservices, where components are constantly changing.</p><p><strong>Silos of Information:</strong> Monitoring tools can create silos of information, particularly when different tools are used for different aspects of the system. This lack of integration can lead to gaps in understanding and inefficiencies in responding to issues.</p><p>While monitoring is essential for maintaining the health and performance of systems, its limitations become apparent, especially in complex, dynamic environments. These limitations have led to the development of more comprehensive approaches like observability and visibility, which aim to provide deeper insights into system behavior and performance.</p><h2><strong>Visibility</strong></h2><p>Visibility extends beyond traditional monitoring by providing deeper insights into the workings of an application and its infrastructure. While monitoring focuses on the operational aspects of a system, visibility encompasses understanding the "why" behind the system's behavior.</p><h3><strong>How Visibility Extends Beyond Monitoring</strong></h3><p>Visibility takes the concept of monitoring a step further by providing insights into the underlying causes of issues. It goes beyond surface-level metrics to understand the interactions between different components and processes within the system.</p><p>This comprehension is key to not just fixing problems but also preventing future occurrences, enabling a shift from reactive to proactive problem-solving.</p><p>With an understanding of monitoring and visibility, we can now explore Full-stack Observability.</p><h2><strong>Full-stack Observability</strong></h2><p>Full-stack Observability is a comprehensive approach to monitoring and visibility. It involves collecting and analyzing data across the entire technology stack, from the application layer to the infrastructure layer. This approach provides a holistic view of the system, enabling teams to understand how different components interact and affect each other.</p><h3><strong>Key Components of Full-stack Observability</strong></h3><p><strong>Integration Across the Entire Tech Stack:</strong> Full-stack Observability requires seamless integration of monitoring tools and practices across all layers of the technology stack. This integration allows for a unified view of the system, highlighting how changes or issues in one layer affect others.</p><p><strong>Comprehensive Data Analysis and Actionable Insights:</strong> Full-stack Observability involves deep analysis of data gathered from every part of the system. This analysis helps generate actionable insights, guiding teams on where to focus their efforts for optimization and improvement.</p><p><strong>Traceability and Interdependency Understanding:</strong> A key aspect of Full-stack Observability is the ability to trace transactions and workflows across the entire stack, understanding how different components and processes interact. This traceability is crucial for identifying dependencies and potential bottlenecks.</p><h2><strong>How Codegiant Helps You Achieve Full-stack Observability</strong></h2><p>Codegiant's approach to Full-stack Observability is based on integrating various elements into a unified platform. Here's a detailed look at how we achieve this:</p><h3><strong>Unified Platform</strong></h3><p>Codegiant provides a unified platform for monitoring and visibility across the entire technology stack. This integration is essential for several reasons:</p><ul><li><p><strong>Centralized Data Management:</strong> By consolidating various functionalities like issue tracking, CI/CD, and observability into a single platform, Codegiant ensures that all data related to software development and deployment is centralized. This centralization facilitates easier access and analysis of data, leading to more efficient problem-solving and decision-making.</p></li><li><p><strong>Streamlined Workflows:</strong> A unified platform reduces the need for context switching between different tools, thereby streamlining workflows. Developers can track issues, commit code, and monitor their applications' performance all in one place, significantly improving productivity and reducing the time to detect and resolve issues.</p></li><li><p><strong>Consistent User Experience:</strong> Having a single platform for various tasks means a consistent user interface and user experience. This consistency can reduce the learning curve for new team members and improve overall efficiency.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lh7-us.googleusercontent.com/lP_Aw_6VjOOYG5AKB1xSvJzZFceQZ777TKCil99fkKZAt_Y3Cjv-nTuQZ7W-1Slx4qVA0x0qWJqOCIBKyAPd5hF1VdgZR5ZOHIZQDrTuhQiDNizrFgB2Sbb9-hsjuwaSayLKRvbQ5QaGuBkpifeHG0s" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://lh7-us.googleusercontent.com/lP_Aw_6VjOOYG5AKB1xSvJzZFceQZ777TKCil99fkKZAt_Y3Cjv-nTuQZ7W-1Slx4qVA0x0qWJqOCIBKyAPd5hF1VdgZR5ZOHIZQDrTuhQiDNizrFgB2Sbb9-hsjuwaSayLKRvbQ5QaGuBkpifeHG0s 424w, https://lh7-us.googleusercontent.com/lP_Aw_6VjOOYG5AKB1xSvJzZFceQZ777TKCil99fkKZAt_Y3Cjv-nTuQZ7W-1Slx4qVA0x0qWJqOCIBKyAPd5hF1VdgZR5ZOHIZQDrTuhQiDNizrFgB2Sbb9-hsjuwaSayLKRvbQ5QaGuBkpifeHG0s 848w, https://lh7-us.googleusercontent.com/lP_Aw_6VjOOYG5AKB1xSvJzZFceQZ777TKCil99fkKZAt_Y3Cjv-nTuQZ7W-1Slx4qVA0x0qWJqOCIBKyAPd5hF1VdgZR5ZOHIZQDrTuhQiDNizrFgB2Sbb9-hsjuwaSayLKRvbQ5QaGuBkpifeHG0s 1272w, https://lh7-us.googleusercontent.com/lP_Aw_6VjOOYG5AKB1xSvJzZFceQZ777TKCil99fkKZAt_Y3Cjv-nTuQZ7W-1Slx4qVA0x0qWJqOCIBKyAPd5hF1VdgZR5ZOHIZQDrTuhQiDNizrFgB2Sbb9-hsjuwaSayLKRvbQ5QaGuBkpifeHG0s 1456w" sizes="100vw"><img src="https://lh7-us.googleusercontent.com/lP_Aw_6VjOOYG5AKB1xSvJzZFceQZ777TKCil99fkKZAt_Y3Cjv-nTuQZ7W-1Slx4qVA0x0qWJqOCIBKyAPd5hF1VdgZR5ZOHIZQDrTuhQiDNizrFgB2Sbb9-hsjuwaSayLKRvbQ5QaGuBkpifeHG0s" width="2048" height="1084" data-attrs="{&quot;src&quot;:&quot;https://lh7-us.googleusercontent.com/lP_Aw_6VjOOYG5AKB1xSvJzZFceQZ777TKCil99fkKZAt_Y3Cjv-nTuQZ7W-1Slx4qVA0x0qWJqOCIBKyAPd5hF1VdgZR5ZOHIZQDrTuhQiDNizrFgB2Sbb9-hsjuwaSayLKRvbQ5QaGuBkpifeHG0s&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1084,&quot;width&quot;:2048,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://lh7-us.googleusercontent.com/lP_Aw_6VjOOYG5AKB1xSvJzZFceQZ777TKCil99fkKZAt_Y3Cjv-nTuQZ7W-1Slx4qVA0x0qWJqOCIBKyAPd5hF1VdgZR5ZOHIZQDrTuhQiDNizrFgB2Sbb9-hsjuwaSayLKRvbQ5QaGuBkpifeHG0s 424w, https://lh7-us.googleusercontent.com/lP_Aw_6VjOOYG5AKB1xSvJzZFceQZ777TKCil99fkKZAt_Y3Cjv-nTuQZ7W-1Slx4qVA0x0qWJqOCIBKyAPd5hF1VdgZR5ZOHIZQDrTuhQiDNizrFgB2Sbb9-hsjuwaSayLKRvbQ5QaGuBkpifeHG0s 848w, https://lh7-us.googleusercontent.com/lP_Aw_6VjOOYG5AKB1xSvJzZFceQZ777TKCil99fkKZAt_Y3Cjv-nTuQZ7W-1Slx4qVA0x0qWJqOCIBKyAPd5hF1VdgZR5ZOHIZQDrTuhQiDNizrFgB2Sbb9-hsjuwaSayLKRvbQ5QaGuBkpifeHG0s 1272w, https://lh7-us.googleusercontent.com/lP_Aw_6VjOOYG5AKB1xSvJzZFceQZ777TKCil99fkKZAt_Y3Cjv-nTuQZ7W-1Slx4qVA0x0qWJqOCIBKyAPd5hF1VdgZR5ZOHIZQDrTuhQiDNizrFgB2Sbb9-hsjuwaSayLKRvbQ5QaGuBkpifeHG0s 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>Integration with Grafana and ClickHouse</strong></h3><p>These integrations are crucial for full-stack observability in several ways:</p><ul><li><p><strong>Advanced Data Visualization (Grafana):</strong> Grafana allows for the creation of dynamic, interactive dashboards that visualize complex datasets. This visualization capability makes it easier to monitor system performance, understand trends, and detect anomalies. In Codegiant, Grafana can be used to visualize metrics from various stages of the software development lifecycle, from code commits to deployment.</p></li><li><p><strong>Efficient Data Processing and Storage (ClickHouse):</strong> ClickHouse enhances Codegiant&#8217;s data analytics and storage capabilities, particularly for large-scale and high-velocity data. Its column-oriented DBMS architecture enables faster query processing and efficient storage, which is crucial for real-time data analysis and observability. This efficiency supports more responsive monitoring and quicker insights into system performance.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lh7-us.googleusercontent.com/Z6mG8ndfPunOZYWMItcDKAFbGaHyViqOxb-nBRCIH_KTAaQhqB2SuCUR-xbLn4QlkD2Rr4IGvakvcKF-pgUya6gcuGWXae_Se1MsKf5cz0TcEWeS0GIHKKD5n5YvtVTnDSZvtbyh2YOOT4YH4T39sjk" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://lh7-us.googleusercontent.com/Z6mG8ndfPunOZYWMItcDKAFbGaHyViqOxb-nBRCIH_KTAaQhqB2SuCUR-xbLn4QlkD2Rr4IGvakvcKF-pgUya6gcuGWXae_Se1MsKf5cz0TcEWeS0GIHKKD5n5YvtVTnDSZvtbyh2YOOT4YH4T39sjk 424w, https://lh7-us.googleusercontent.com/Z6mG8ndfPunOZYWMItcDKAFbGaHyViqOxb-nBRCIH_KTAaQhqB2SuCUR-xbLn4QlkD2Rr4IGvakvcKF-pgUya6gcuGWXae_Se1MsKf5cz0TcEWeS0GIHKKD5n5YvtVTnDSZvtbyh2YOOT4YH4T39sjk 848w, https://lh7-us.googleusercontent.com/Z6mG8ndfPunOZYWMItcDKAFbGaHyViqOxb-nBRCIH_KTAaQhqB2SuCUR-xbLn4QlkD2Rr4IGvakvcKF-pgUya6gcuGWXae_Se1MsKf5cz0TcEWeS0GIHKKD5n5YvtVTnDSZvtbyh2YOOT4YH4T39sjk 1272w, https://lh7-us.googleusercontent.com/Z6mG8ndfPunOZYWMItcDKAFbGaHyViqOxb-nBRCIH_KTAaQhqB2SuCUR-xbLn4QlkD2Rr4IGvakvcKF-pgUya6gcuGWXae_Se1MsKf5cz0TcEWeS0GIHKKD5n5YvtVTnDSZvtbyh2YOOT4YH4T39sjk 1456w" sizes="100vw"><img src="https://lh7-us.googleusercontent.com/Z6mG8ndfPunOZYWMItcDKAFbGaHyViqOxb-nBRCIH_KTAaQhqB2SuCUR-xbLn4QlkD2Rr4IGvakvcKF-pgUya6gcuGWXae_Se1MsKf5cz0TcEWeS0GIHKKD5n5YvtVTnDSZvtbyh2YOOT4YH4T39sjk" width="2048" height="1205" data-attrs="{&quot;src&quot;:&quot;https://lh7-us.googleusercontent.com/Z6mG8ndfPunOZYWMItcDKAFbGaHyViqOxb-nBRCIH_KTAaQhqB2SuCUR-xbLn4QlkD2Rr4IGvakvcKF-pgUya6gcuGWXae_Se1MsKf5cz0TcEWeS0GIHKKD5n5YvtVTnDSZvtbyh2YOOT4YH4T39sjk&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1205,&quot;width&quot;:2048,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://lh7-us.googleusercontent.com/Z6mG8ndfPunOZYWMItcDKAFbGaHyViqOxb-nBRCIH_KTAaQhqB2SuCUR-xbLn4QlkD2Rr4IGvakvcKF-pgUya6gcuGWXae_Se1MsKf5cz0TcEWeS0GIHKKD5n5YvtVTnDSZvtbyh2YOOT4YH4T39sjk 424w, https://lh7-us.googleusercontent.com/Z6mG8ndfPunOZYWMItcDKAFbGaHyViqOxb-nBRCIH_KTAaQhqB2SuCUR-xbLn4QlkD2Rr4IGvakvcKF-pgUya6gcuGWXae_Se1MsKf5cz0TcEWeS0GIHKKD5n5YvtVTnDSZvtbyh2YOOT4YH4T39sjk 848w, https://lh7-us.googleusercontent.com/Z6mG8ndfPunOZYWMItcDKAFbGaHyViqOxb-nBRCIH_KTAaQhqB2SuCUR-xbLn4QlkD2Rr4IGvakvcKF-pgUya6gcuGWXae_Se1MsKf5cz0TcEWeS0GIHKKD5n5YvtVTnDSZvtbyh2YOOT4YH4T39sjk 1272w, https://lh7-us.googleusercontent.com/Z6mG8ndfPunOZYWMItcDKAFbGaHyViqOxb-nBRCIH_KTAaQhqB2SuCUR-xbLn4QlkD2Rr4IGvakvcKF-pgUya6gcuGWXae_Se1MsKf5cz0TcEWeS0GIHKKD5n5YvtVTnDSZvtbyh2YOOT4YH4T39sjk 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>Holistic View of the Software Lifecycle</strong></h3><p>Codegiant's full-stack observability extends beyond traditional application performance monitoring to include insights into various aspects of the software development process. This holistic approach is beneficial for several reasons:</p><ul><li><p><strong>Comprehensive Monitoring:</strong> By covering all aspects of the software development lifecycle, Codegiant provides a more comprehensive view of both the application's health and the overall efficiency of the development process. This includes tracking issues, monitoring CI/CD pipelines, and observing application performance in production.</p></li><li><p><strong>Proactive Problem Solving:</strong> With a complete view, teams can proactively identify and address issues before they escalate. This ability to foresee potential problems based on trends and anomalies across the entire stack is a key advantage of full-stack observability.</p></li><li><p><strong>Better Collaboration and Communication:</strong> Having visibility into all aspects of the development process fosters better collaboration between team members. Developers, QA, and operations teams can work together more effectively when they have access to the same data and insights.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lh7-us.googleusercontent.com/3oToF5s1jCYlQGYLzhtJI_7e3Ox7HS_tOxCilJ6QQBlKszAqcG5s6w9sYzAYzJxAX1wioaSE5nWPpTqEVIt8l0NXDGuKkYAZE2PrwfV1iGky9pNX7UOknsDp61m7l_ocZ6ERMGG4euqXjQJoDI0CZ3o" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://lh7-us.googleusercontent.com/3oToF5s1jCYlQGYLzhtJI_7e3Ox7HS_tOxCilJ6QQBlKszAqcG5s6w9sYzAYzJxAX1wioaSE5nWPpTqEVIt8l0NXDGuKkYAZE2PrwfV1iGky9pNX7UOknsDp61m7l_ocZ6ERMGG4euqXjQJoDI0CZ3o 424w, https://lh7-us.googleusercontent.com/3oToF5s1jCYlQGYLzhtJI_7e3Ox7HS_tOxCilJ6QQBlKszAqcG5s6w9sYzAYzJxAX1wioaSE5nWPpTqEVIt8l0NXDGuKkYAZE2PrwfV1iGky9pNX7UOknsDp61m7l_ocZ6ERMGG4euqXjQJoDI0CZ3o 848w, https://lh7-us.googleusercontent.com/3oToF5s1jCYlQGYLzhtJI_7e3Ox7HS_tOxCilJ6QQBlKszAqcG5s6w9sYzAYzJxAX1wioaSE5nWPpTqEVIt8l0NXDGuKkYAZE2PrwfV1iGky9pNX7UOknsDp61m7l_ocZ6ERMGG4euqXjQJoDI0CZ3o 1272w, https://lh7-us.googleusercontent.com/3oToF5s1jCYlQGYLzhtJI_7e3Ox7HS_tOxCilJ6QQBlKszAqcG5s6w9sYzAYzJxAX1wioaSE5nWPpTqEVIt8l0NXDGuKkYAZE2PrwfV1iGky9pNX7UOknsDp61m7l_ocZ6ERMGG4euqXjQJoDI0CZ3o 1456w" sizes="100vw"><img src="https://lh7-us.googleusercontent.com/3oToF5s1jCYlQGYLzhtJI_7e3Ox7HS_tOxCilJ6QQBlKszAqcG5s6w9sYzAYzJxAX1wioaSE5nWPpTqEVIt8l0NXDGuKkYAZE2PrwfV1iGky9pNX7UOknsDp61m7l_ocZ6ERMGG4euqXjQJoDI0CZ3o" width="2048" height="1304" data-attrs="{&quot;src&quot;:&quot;https://lh7-us.googleusercontent.com/3oToF5s1jCYlQGYLzhtJI_7e3Ox7HS_tOxCilJ6QQBlKszAqcG5s6w9sYzAYzJxAX1wioaSE5nWPpTqEVIt8l0NXDGuKkYAZE2PrwfV1iGky9pNX7UOknsDp61m7l_ocZ6ERMGG4euqXjQJoDI0CZ3o&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1304,&quot;width&quot;:2048,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://lh7-us.googleusercontent.com/3oToF5s1jCYlQGYLzhtJI_7e3Ox7HS_tOxCilJ6QQBlKszAqcG5s6w9sYzAYzJxAX1wioaSE5nWPpTqEVIt8l0NXDGuKkYAZE2PrwfV1iGky9pNX7UOknsDp61m7l_ocZ6ERMGG4euqXjQJoDI0CZ3o 424w, https://lh7-us.googleusercontent.com/3oToF5s1jCYlQGYLzhtJI_7e3Ox7HS_tOxCilJ6QQBlKszAqcG5s6w9sYzAYzJxAX1wioaSE5nWPpTqEVIt8l0NXDGuKkYAZE2PrwfV1iGky9pNX7UOknsDp61m7l_ocZ6ERMGG4euqXjQJoDI0CZ3o 848w, https://lh7-us.googleusercontent.com/3oToF5s1jCYlQGYLzhtJI_7e3Ox7HS_tOxCilJ6QQBlKszAqcG5s6w9sYzAYzJxAX1wioaSE5nWPpTqEVIt8l0NXDGuKkYAZE2PrwfV1iGky9pNX7UOknsDp61m7l_ocZ6ERMGG4euqXjQJoDI0CZ3o 1272w, https://lh7-us.googleusercontent.com/3oToF5s1jCYlQGYLzhtJI_7e3Ox7HS_tOxCilJ6QQBlKszAqcG5s6w9sYzAYzJxAX1wioaSE5nWPpTqEVIt8l0NXDGuKkYAZE2PrwfV1iGky9pNX7UOknsDp61m7l_ocZ6ERMGG4euqXjQJoDI0CZ3o 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>Customizable and Scalable Solutions</strong></h3><p>Codegiant allows customization of observability tools to meet specific project or organizational needs. This flexibility is crucial for several reasons:</p><ul><li><p><strong>Adaptability to Different Project Requirements:</strong> Different projects may have unique monitoring and analysis needs. Customizable dashboards and analytics tools allow teams to tailor their observability solutions to specific requirements, ensuring that the most relevant metrics and data are monitored and analyzed.</p></li><li><p><strong>Scalability for Growth:</strong> As organizations grow and their technology stacks become more complex, their observability needs will also evolve. Codegiant&#8217;s scalable solutions can accommodate increasing data volumes and more complex monitoring requirements, ensuring sustained efficiency and performance.</p></li><li><p><strong>Personalized User Experience:</strong> Teams can create a user experience that resonates with their workflow and preferences. This personalization can lead to higher engagement and more effective use of the observability tools.</p></li></ul><h2><strong>Conclusion</strong></h2><p>Codegiant's approach to full-stack observability combines a unified platform and powerful integrations with tools like Grafana and ClickHouse to provide centralized log management, real-time monitoring, and customizable solutions.</p><p>By having observability integrated into the same platform where development and deployment occur, teams can easily transition between coding, testing, and monitoring phases.</p><p>To start using Codegiant's observability tools, sign up for free via this <a href="https://codegiant.io/users/sign_up">link</a>.</p><p>If you liked this article, or have any questions, feel free to leave a comment below. We'd love to hear from you!</p>]]></content:encoded></item><item><title><![CDATA[Codegiant Launches Built-in Grafana Integration]]></title><description><![CDATA[We are excited to announce the launch of our built-in Grafana integration for advanced data visualization and monitoring in Codegiant!]]></description><link>https://blog.codegiant.io/p/codegiant-launches-built-in-grafana-integration</link><guid isPermaLink="false">https://blog.codegiant.io/p/codegiant-launches-built-in-grafana-integration</guid><dc:creator><![CDATA[Codegiant]]></dc:creator><pubDate>Thu, 11 Jan 2024 15:09:03 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/14faa978-6588-4e7c-8db3-36f948a9bcfd_1200x628.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Y5o8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c3594b-23b2-4ced-a265-2c3f03c19827_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y5o8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c3594b-23b2-4ced-a265-2c3f03c19827_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Y5o8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c3594b-23b2-4ced-a265-2c3f03c19827_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Y5o8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c3594b-23b2-4ced-a265-2c3f03c19827_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Y5o8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c3594b-23b2-4ced-a265-2c3f03c19827_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y5o8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c3594b-23b2-4ced-a265-2c3f03c19827_1200x628.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/67c3594b-23b2-4ced-a265-2c3f03c19827_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Y5o8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c3594b-23b2-4ced-a265-2c3f03c19827_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Y5o8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c3594b-23b2-4ced-a265-2c3f03c19827_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Y5o8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c3594b-23b2-4ced-a265-2c3f03c19827_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Y5o8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c3594b-23b2-4ced-a265-2c3f03c19827_1200x628.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>We are excited to announce the launch of our built-in Grafana integration for advanced data visualization and monitoring in Codegiant!</p><h2><strong>Why Grafana?</strong></h2><p>Grafana is a leading open-source platform for monitoring and observability. With its robust data visualization capabilities, Grafana helps turn your data into interactive dashboards. This integration means you can now visualize and track every aspect of your software development lifecycle directly within Codegiant.</p><h2><strong>What This Means for You</strong></h2><p><strong>Enhanced Monitoring &amp; Visualization:</strong> Create dynamic dashboards to monitor your development processes, including CI/CD pipelines, issue resolution, and application performance.</p><p><strong>Informed Decision-Making:</strong> Leverage real-time data for quicker and more informed decisions, helping you streamline your development workflow.</p><p><strong>Customizable Dashboards:</strong> Tailor Grafana dashboards to your team's specific needs, focusing on the metrics that matter the most to your projects.</p><p><strong>Enhanced Collaboration:</strong> Foster better communication and collaboration among team members with a shared view of project metrics and progress.</p><h2><strong>Getting Started</strong></h2><p>To start using Grafana dashboards in Codegiant, log in to your Codegiant account and navigate to any of your existing Observability, Chaos Engineering, or Error and APM Tracing workspaces. You can also create a new workspace if you don't have one already.</p><p>When you open your workspace, you&#8217;ll see a new icon labeled &#8220;Dashboards&#8221;. Here&#8217;s what it looks like from an Error and APM Tracing workspace:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lh7-us.googleusercontent.com/AGJgMZuXIlQo97l-JZUGe0U91R-RP7ecPp74DFs0MpbxN6QXLKy8jTEr9LnTxJYEfZgcQrIFAmn2PXjJrwLKm7QcM1Ltd3tSNG2jIXTLymgtoG0BM9HgteJig0lePPfzQjn6cHgn8bNKiB2BqYSagiM" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://lh7-us.googleusercontent.com/AGJgMZuXIlQo97l-JZUGe0U91R-RP7ecPp74DFs0MpbxN6QXLKy8jTEr9LnTxJYEfZgcQrIFAmn2PXjJrwLKm7QcM1Ltd3tSNG2jIXTLymgtoG0BM9HgteJig0lePPfzQjn6cHgn8bNKiB2BqYSagiM 424w, https://lh7-us.googleusercontent.com/AGJgMZuXIlQo97l-JZUGe0U91R-RP7ecPp74DFs0MpbxN6QXLKy8jTEr9LnTxJYEfZgcQrIFAmn2PXjJrwLKm7QcM1Ltd3tSNG2jIXTLymgtoG0BM9HgteJig0lePPfzQjn6cHgn8bNKiB2BqYSagiM 848w, https://lh7-us.googleusercontent.com/AGJgMZuXIlQo97l-JZUGe0U91R-RP7ecPp74DFs0MpbxN6QXLKy8jTEr9LnTxJYEfZgcQrIFAmn2PXjJrwLKm7QcM1Ltd3tSNG2jIXTLymgtoG0BM9HgteJig0lePPfzQjn6cHgn8bNKiB2BqYSagiM 1272w, https://lh7-us.googleusercontent.com/AGJgMZuXIlQo97l-JZUGe0U91R-RP7ecPp74DFs0MpbxN6QXLKy8jTEr9LnTxJYEfZgcQrIFAmn2PXjJrwLKm7QcM1Ltd3tSNG2jIXTLymgtoG0BM9HgteJig0lePPfzQjn6cHgn8bNKiB2BqYSagiM 1456w" sizes="100vw"><img src="https://lh7-us.googleusercontent.com/AGJgMZuXIlQo97l-JZUGe0U91R-RP7ecPp74DFs0MpbxN6QXLKy8jTEr9LnTxJYEfZgcQrIFAmn2PXjJrwLKm7QcM1Ltd3tSNG2jIXTLymgtoG0BM9HgteJig0lePPfzQjn6cHgn8bNKiB2BqYSagiM" width="1033" height="521" data-attrs="{&quot;src&quot;:&quot;https://lh7-us.googleusercontent.com/AGJgMZuXIlQo97l-JZUGe0U91R-RP7ecPp74DFs0MpbxN6QXLKy8jTEr9LnTxJYEfZgcQrIFAmn2PXjJrwLKm7QcM1Ltd3tSNG2jIXTLymgtoG0BM9HgteJig0lePPfzQjn6cHgn8bNKiB2BqYSagiM&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:521,&quot;width&quot;:1033,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://lh7-us.googleusercontent.com/AGJgMZuXIlQo97l-JZUGe0U91R-RP7ecPp74DFs0MpbxN6QXLKy8jTEr9LnTxJYEfZgcQrIFAmn2PXjJrwLKm7QcM1Ltd3tSNG2jIXTLymgtoG0BM9HgteJig0lePPfzQjn6cHgn8bNKiB2BqYSagiM 424w, https://lh7-us.googleusercontent.com/AGJgMZuXIlQo97l-JZUGe0U91R-RP7ecPp74DFs0MpbxN6QXLKy8jTEr9LnTxJYEfZgcQrIFAmn2PXjJrwLKm7QcM1Ltd3tSNG2jIXTLymgtoG0BM9HgteJig0lePPfzQjn6cHgn8bNKiB2BqYSagiM 848w, https://lh7-us.googleusercontent.com/AGJgMZuXIlQo97l-JZUGe0U91R-RP7ecPp74DFs0MpbxN6QXLKy8jTEr9LnTxJYEfZgcQrIFAmn2PXjJrwLKm7QcM1Ltd3tSNG2jIXTLymgtoG0BM9HgteJig0lePPfzQjn6cHgn8bNKiB2BqYSagiM 1272w, https://lh7-us.googleusercontent.com/AGJgMZuXIlQo97l-JZUGe0U91R-RP7ecPp74DFs0MpbxN6QXLKy8jTEr9LnTxJYEfZgcQrIFAmn2PXjJrwLKm7QcM1Ltd3tSNG2jIXTLymgtoG0BM9HgteJig0lePPfzQjn6cHgn8bNKiB2BqYSagiM 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Clicking the &#8220;Dashboards&#8221; icon will open the dashboards view. Its left sidebar contains the options; &#8220;Playlists&#8221;, &#8220;Snapshots&#8221;, &#8220;Library panels&#8221;, and &#8220;Public dashboards&#8221;.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lh7-us.googleusercontent.com/K-7JigiNvCT8atDxP6ZkQ6g4JIJvkNTHoCGYrfOqIA2dJzGSb29bcPgZrKxIY_Fq81ThC2wJtwLGyeK845JXtnB4Jr_2cn0MzMTPUP-7AJb09uHTCJDHLb8qjoShaLk1KK8IpfNnwdlZCNJGH1ZGFmA" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://lh7-us.googleusercontent.com/K-7JigiNvCT8atDxP6ZkQ6g4JIJvkNTHoCGYrfOqIA2dJzGSb29bcPgZrKxIY_Fq81ThC2wJtwLGyeK845JXtnB4Jr_2cn0MzMTPUP-7AJb09uHTCJDHLb8qjoShaLk1KK8IpfNnwdlZCNJGH1ZGFmA 424w, https://lh7-us.googleusercontent.com/K-7JigiNvCT8atDxP6ZkQ6g4JIJvkNTHoCGYrfOqIA2dJzGSb29bcPgZrKxIY_Fq81ThC2wJtwLGyeK845JXtnB4Jr_2cn0MzMTPUP-7AJb09uHTCJDHLb8qjoShaLk1KK8IpfNnwdlZCNJGH1ZGFmA 848w, https://lh7-us.googleusercontent.com/K-7JigiNvCT8atDxP6ZkQ6g4JIJvkNTHoCGYrfOqIA2dJzGSb29bcPgZrKxIY_Fq81ThC2wJtwLGyeK845JXtnB4Jr_2cn0MzMTPUP-7AJb09uHTCJDHLb8qjoShaLk1KK8IpfNnwdlZCNJGH1ZGFmA 1272w, https://lh7-us.googleusercontent.com/K-7JigiNvCT8atDxP6ZkQ6g4JIJvkNTHoCGYrfOqIA2dJzGSb29bcPgZrKxIY_Fq81ThC2wJtwLGyeK845JXtnB4Jr_2cn0MzMTPUP-7AJb09uHTCJDHLb8qjoShaLk1KK8IpfNnwdlZCNJGH1ZGFmA 1456w" sizes="100vw"><img src="https://lh7-us.googleusercontent.com/K-7JigiNvCT8atDxP6ZkQ6g4JIJvkNTHoCGYrfOqIA2dJzGSb29bcPgZrKxIY_Fq81ThC2wJtwLGyeK845JXtnB4Jr_2cn0MzMTPUP-7AJb09uHTCJDHLb8qjoShaLk1KK8IpfNnwdlZCNJGH1ZGFmA" width="1538" height="837" data-attrs="{&quot;src&quot;:&quot;https://lh7-us.googleusercontent.com/K-7JigiNvCT8atDxP6ZkQ6g4JIJvkNTHoCGYrfOqIA2dJzGSb29bcPgZrKxIY_Fq81ThC2wJtwLGyeK845JXtnB4Jr_2cn0MzMTPUP-7AJb09uHTCJDHLb8qjoShaLk1KK8IpfNnwdlZCNJGH1ZGFmA&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:837,&quot;width&quot;:1538,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://lh7-us.googleusercontent.com/K-7JigiNvCT8atDxP6ZkQ6g4JIJvkNTHoCGYrfOqIA2dJzGSb29bcPgZrKxIY_Fq81ThC2wJtwLGyeK845JXtnB4Jr_2cn0MzMTPUP-7AJb09uHTCJDHLb8qjoShaLk1KK8IpfNnwdlZCNJGH1ZGFmA 424w, https://lh7-us.googleusercontent.com/K-7JigiNvCT8atDxP6ZkQ6g4JIJvkNTHoCGYrfOqIA2dJzGSb29bcPgZrKxIY_Fq81ThC2wJtwLGyeK845JXtnB4Jr_2cn0MzMTPUP-7AJb09uHTCJDHLb8qjoShaLk1KK8IpfNnwdlZCNJGH1ZGFmA 848w, https://lh7-us.googleusercontent.com/K-7JigiNvCT8atDxP6ZkQ6g4JIJvkNTHoCGYrfOqIA2dJzGSb29bcPgZrKxIY_Fq81ThC2wJtwLGyeK845JXtnB4Jr_2cn0MzMTPUP-7AJb09uHTCJDHLb8qjoShaLk1KK8IpfNnwdlZCNJGH1ZGFmA 1272w, https://lh7-us.googleusercontent.com/K-7JigiNvCT8atDxP6ZkQ6g4JIJvkNTHoCGYrfOqIA2dJzGSb29bcPgZrKxIY_Fq81ThC2wJtwLGyeK845JXtnB4Jr_2cn0MzMTPUP-7AJb09uHTCJDHLb8qjoShaLk1KK8IpfNnwdlZCNJGH1ZGFmA 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Playlists:</strong> This feature allows you to create a rotation of dashboards. It's useful for displaying a sequence of dashboards on a big screen.</p><p><strong>Snapshots:</strong> Snapshots are shareable versions of a dashboard at a specific point in time. These are useful for sharing data with users who don't have access to your Codegiant workspace.</p><p><strong>Library Panels:</strong> These are reusable dashboard elements. They allow you to create and maintain panels that can be shared across multiple dashboards.</p><p><strong>Public Dashboards:</strong> This refers to dashboards that have been made publicly accessible, meaning they can be viewed without requiring authentication. This is also useful for sharing information with users who don&#8217;t have access to your Codegiant workspace.</p><h2><strong>Creating A New Grafana Dashboard</strong></h2><p>To create a new Grafana dashboard, click the &#8220;New&#8221; button on the top right of the &#8220;Dashboards&#8221; view, then select &#8220;New dashboard&#8221;. You should see a new view that looks like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lh7-us.googleusercontent.com/ifXSBGZl7kDStfB6I29SWc9hB0mf-GpeG7qufJdd0UrSXb0BdrDB421_KXqgrPWxdCcEZOhGQA4Xo1h0IKkUlH7SIU3CZkyXq2n_TsoIlcTmHagdRJI5sWdu_Y4mh0E2iV6RluQp8iR-OWE37ILFPEU" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://lh7-us.googleusercontent.com/ifXSBGZl7kDStfB6I29SWc9hB0mf-GpeG7qufJdd0UrSXb0BdrDB421_KXqgrPWxdCcEZOhGQA4Xo1h0IKkUlH7SIU3CZkyXq2n_TsoIlcTmHagdRJI5sWdu_Y4mh0E2iV6RluQp8iR-OWE37ILFPEU 424w, https://lh7-us.googleusercontent.com/ifXSBGZl7kDStfB6I29SWc9hB0mf-GpeG7qufJdd0UrSXb0BdrDB421_KXqgrPWxdCcEZOhGQA4Xo1h0IKkUlH7SIU3CZkyXq2n_TsoIlcTmHagdRJI5sWdu_Y4mh0E2iV6RluQp8iR-OWE37ILFPEU 848w, https://lh7-us.googleusercontent.com/ifXSBGZl7kDStfB6I29SWc9hB0mf-GpeG7qufJdd0UrSXb0BdrDB421_KXqgrPWxdCcEZOhGQA4Xo1h0IKkUlH7SIU3CZkyXq2n_TsoIlcTmHagdRJI5sWdu_Y4mh0E2iV6RluQp8iR-OWE37ILFPEU 1272w, https://lh7-us.googleusercontent.com/ifXSBGZl7kDStfB6I29SWc9hB0mf-GpeG7qufJdd0UrSXb0BdrDB421_KXqgrPWxdCcEZOhGQA4Xo1h0IKkUlH7SIU3CZkyXq2n_TsoIlcTmHagdRJI5sWdu_Y4mh0E2iV6RluQp8iR-OWE37ILFPEU 1456w" sizes="100vw"><img src="https://lh7-us.googleusercontent.com/ifXSBGZl7kDStfB6I29SWc9hB0mf-GpeG7qufJdd0UrSXb0BdrDB421_KXqgrPWxdCcEZOhGQA4Xo1h0IKkUlH7SIU3CZkyXq2n_TsoIlcTmHagdRJI5sWdu_Y4mh0E2iV6RluQp8iR-OWE37ILFPEU" width="1157" height="659" data-attrs="{&quot;src&quot;:&quot;https://lh7-us.googleusercontent.com/ifXSBGZl7kDStfB6I29SWc9hB0mf-GpeG7qufJdd0UrSXb0BdrDB421_KXqgrPWxdCcEZOhGQA4Xo1h0IKkUlH7SIU3CZkyXq2n_TsoIlcTmHagdRJI5sWdu_Y4mh0E2iV6RluQp8iR-OWE37ILFPEU&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:659,&quot;width&quot;:1157,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://lh7-us.googleusercontent.com/ifXSBGZl7kDStfB6I29SWc9hB0mf-GpeG7qufJdd0UrSXb0BdrDB421_KXqgrPWxdCcEZOhGQA4Xo1h0IKkUlH7SIU3CZkyXq2n_TsoIlcTmHagdRJI5sWdu_Y4mh0E2iV6RluQp8iR-OWE37ILFPEU 424w, https://lh7-us.googleusercontent.com/ifXSBGZl7kDStfB6I29SWc9hB0mf-GpeG7qufJdd0UrSXb0BdrDB421_KXqgrPWxdCcEZOhGQA4Xo1h0IKkUlH7SIU3CZkyXq2n_TsoIlcTmHagdRJI5sWdu_Y4mh0E2iV6RluQp8iR-OWE37ILFPEU 848w, https://lh7-us.googleusercontent.com/ifXSBGZl7kDStfB6I29SWc9hB0mf-GpeG7qufJdd0UrSXb0BdrDB421_KXqgrPWxdCcEZOhGQA4Xo1h0IKkUlH7SIU3CZkyXq2n_TsoIlcTmHagdRJI5sWdu_Y4mh0E2iV6RluQp8iR-OWE37ILFPEU 1272w, https://lh7-us.googleusercontent.com/ifXSBGZl7kDStfB6I29SWc9hB0mf-GpeG7qufJdd0UrSXb0BdrDB421_KXqgrPWxdCcEZOhGQA4Xo1h0IKkUlH7SIU3CZkyXq2n_TsoIlcTmHagdRJI5sWdu_Y4mh0E2iV6RluQp8iR-OWE37ILFPEU 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You have the option of importing a dashboard from file or grafana.com, adding a library panel or adding a new visualization.</p><h2><strong>Adding A Visualization</strong></h2><p>To add a new visualization, click the &#8220;Add visualization&#8221; button, select data source; &#8220;Clickhouse&#8221;, for example.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lh7-us.googleusercontent.com/zlcjBoVt8lFlIVSdd7sRIMWGMrVkZ8zHGBEnBqCJkd1B5yy9mc4wOGX3EuDz6lqaBJzENeo0XzshLpiIZgyZKAlqPfrSpPjxhC7GD6hSuP-5zxslYMxR0W-zTabaz8v-a2rbuX-Lv5HLA6q4gol6Orw" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://lh7-us.googleusercontent.com/zlcjBoVt8lFlIVSdd7sRIMWGMrVkZ8zHGBEnBqCJkd1B5yy9mc4wOGX3EuDz6lqaBJzENeo0XzshLpiIZgyZKAlqPfrSpPjxhC7GD6hSuP-5zxslYMxR0W-zTabaz8v-a2rbuX-Lv5HLA6q4gol6Orw 424w, https://lh7-us.googleusercontent.com/zlcjBoVt8lFlIVSdd7sRIMWGMrVkZ8zHGBEnBqCJkd1B5yy9mc4wOGX3EuDz6lqaBJzENeo0XzshLpiIZgyZKAlqPfrSpPjxhC7GD6hSuP-5zxslYMxR0W-zTabaz8v-a2rbuX-Lv5HLA6q4gol6Orw 848w, https://lh7-us.googleusercontent.com/zlcjBoVt8lFlIVSdd7sRIMWGMrVkZ8zHGBEnBqCJkd1B5yy9mc4wOGX3EuDz6lqaBJzENeo0XzshLpiIZgyZKAlqPfrSpPjxhC7GD6hSuP-5zxslYMxR0W-zTabaz8v-a2rbuX-Lv5HLA6q4gol6Orw 1272w, https://lh7-us.googleusercontent.com/zlcjBoVt8lFlIVSdd7sRIMWGMrVkZ8zHGBEnBqCJkd1B5yy9mc4wOGX3EuDz6lqaBJzENeo0XzshLpiIZgyZKAlqPfrSpPjxhC7GD6hSuP-5zxslYMxR0W-zTabaz8v-a2rbuX-Lv5HLA6q4gol6Orw 1456w" sizes="100vw"><img src="https://lh7-us.googleusercontent.com/zlcjBoVt8lFlIVSdd7sRIMWGMrVkZ8zHGBEnBqCJkd1B5yy9mc4wOGX3EuDz6lqaBJzENeo0XzshLpiIZgyZKAlqPfrSpPjxhC7GD6hSuP-5zxslYMxR0W-zTabaz8v-a2rbuX-Lv5HLA6q4gol6Orw" width="1224" height="754" data-attrs="{&quot;src&quot;:&quot;https://lh7-us.googleusercontent.com/zlcjBoVt8lFlIVSdd7sRIMWGMrVkZ8zHGBEnBqCJkd1B5yy9mc4wOGX3EuDz6lqaBJzENeo0XzshLpiIZgyZKAlqPfrSpPjxhC7GD6hSuP-5zxslYMxR0W-zTabaz8v-a2rbuX-Lv5HLA6q4gol6Orw&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:754,&quot;width&quot;:1224,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://lh7-us.googleusercontent.com/zlcjBoVt8lFlIVSdd7sRIMWGMrVkZ8zHGBEnBqCJkd1B5yy9mc4wOGX3EuDz6lqaBJzENeo0XzshLpiIZgyZKAlqPfrSpPjxhC7GD6hSuP-5zxslYMxR0W-zTabaz8v-a2rbuX-Lv5HLA6q4gol6Orw 424w, https://lh7-us.googleusercontent.com/zlcjBoVt8lFlIVSdd7sRIMWGMrVkZ8zHGBEnBqCJkd1B5yy9mc4wOGX3EuDz6lqaBJzENeo0XzshLpiIZgyZKAlqPfrSpPjxhC7GD6hSuP-5zxslYMxR0W-zTabaz8v-a2rbuX-Lv5HLA6q4gol6Orw 848w, https://lh7-us.googleusercontent.com/zlcjBoVt8lFlIVSdd7sRIMWGMrVkZ8zHGBEnBqCJkd1B5yy9mc4wOGX3EuDz6lqaBJzENeo0XzshLpiIZgyZKAlqPfrSpPjxhC7GD6hSuP-5zxslYMxR0W-zTabaz8v-a2rbuX-Lv5HLA6q4gol6Orw 1272w, https://lh7-us.googleusercontent.com/zlcjBoVt8lFlIVSdd7sRIMWGMrVkZ8zHGBEnBqCJkd1B5yy9mc4wOGX3EuDz6lqaBJzENeo0XzshLpiIZgyZKAlqPfrSpPjxhC7GD6hSuP-5zxslYMxR0W-zTabaz8v-a2rbuX-Lv5HLA6q4gol6Orw 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You should then see a page that looks like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lh7-us.googleusercontent.com/RzSskU99UxS0H-ZO9WbPnx6u-9ZHhlEK187batUZ7zFHEPGQFloHQw3j0gfY46FCndazHjaMKDhpU6KqJ5g4hrE_u_zOqOap8_3BHm7sTAEp_y5JtGoIUHIRrq-VddnlYdNydfNe_Mflub5IhbGygg0" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://lh7-us.googleusercontent.com/RzSskU99UxS0H-ZO9WbPnx6u-9ZHhlEK187batUZ7zFHEPGQFloHQw3j0gfY46FCndazHjaMKDhpU6KqJ5g4hrE_u_zOqOap8_3BHm7sTAEp_y5JtGoIUHIRrq-VddnlYdNydfNe_Mflub5IhbGygg0 424w, https://lh7-us.googleusercontent.com/RzSskU99UxS0H-ZO9WbPnx6u-9ZHhlEK187batUZ7zFHEPGQFloHQw3j0gfY46FCndazHjaMKDhpU6KqJ5g4hrE_u_zOqOap8_3BHm7sTAEp_y5JtGoIUHIRrq-VddnlYdNydfNe_Mflub5IhbGygg0 848w, https://lh7-us.googleusercontent.com/RzSskU99UxS0H-ZO9WbPnx6u-9ZHhlEK187batUZ7zFHEPGQFloHQw3j0gfY46FCndazHjaMKDhpU6KqJ5g4hrE_u_zOqOap8_3BHm7sTAEp_y5JtGoIUHIRrq-VddnlYdNydfNe_Mflub5IhbGygg0 1272w, https://lh7-us.googleusercontent.com/RzSskU99UxS0H-ZO9WbPnx6u-9ZHhlEK187batUZ7zFHEPGQFloHQw3j0gfY46FCndazHjaMKDhpU6KqJ5g4hrE_u_zOqOap8_3BHm7sTAEp_y5JtGoIUHIRrq-VddnlYdNydfNe_Mflub5IhbGygg0 1456w" sizes="100vw"><img src="https://lh7-us.googleusercontent.com/RzSskU99UxS0H-ZO9WbPnx6u-9ZHhlEK187batUZ7zFHEPGQFloHQw3j0gfY46FCndazHjaMKDhpU6KqJ5g4hrE_u_zOqOap8_3BHm7sTAEp_y5JtGoIUHIRrq-VddnlYdNydfNe_Mflub5IhbGygg0" width="1543" height="965" data-attrs="{&quot;src&quot;:&quot;https://lh7-us.googleusercontent.com/RzSskU99UxS0H-ZO9WbPnx6u-9ZHhlEK187batUZ7zFHEPGQFloHQw3j0gfY46FCndazHjaMKDhpU6KqJ5g4hrE_u_zOqOap8_3BHm7sTAEp_y5JtGoIUHIRrq-VddnlYdNydfNe_Mflub5IhbGygg0&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:965,&quot;width&quot;:1543,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://lh7-us.googleusercontent.com/RzSskU99UxS0H-ZO9WbPnx6u-9ZHhlEK187batUZ7zFHEPGQFloHQw3j0gfY46FCndazHjaMKDhpU6KqJ5g4hrE_u_zOqOap8_3BHm7sTAEp_y5JtGoIUHIRrq-VddnlYdNydfNe_Mflub5IhbGygg0 424w, https://lh7-us.googleusercontent.com/RzSskU99UxS0H-ZO9WbPnx6u-9ZHhlEK187batUZ7zFHEPGQFloHQw3j0gfY46FCndazHjaMKDhpU6KqJ5g4hrE_u_zOqOap8_3BHm7sTAEp_y5JtGoIUHIRrq-VddnlYdNydfNe_Mflub5IhbGygg0 848w, https://lh7-us.googleusercontent.com/RzSskU99UxS0H-ZO9WbPnx6u-9ZHhlEK187batUZ7zFHEPGQFloHQw3j0gfY46FCndazHjaMKDhpU6KqJ5g4hrE_u_zOqOap8_3BHm7sTAEp_y5JtGoIUHIRrq-VddnlYdNydfNe_Mflub5IhbGygg0 1272w, https://lh7-us.googleusercontent.com/RzSskU99UxS0H-ZO9WbPnx6u-9ZHhlEK187batUZ7zFHEPGQFloHQw3j0gfY46FCndazHjaMKDhpU6KqJ5g4hrE_u_zOqOap8_3BHm7sTAEp_y5JtGoIUHIRrq-VddnlYdNydfNe_Mflub5IhbGygg0 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is where you can customize your visualization and add custom queries using either the SQL Editor or Query Builder. You can also choose the type of visualization you want by clicking the &#8220;Change visualization&#8221; option on the right. &#8220;Table&#8221; is selected by default.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lh7-us.googleusercontent.com/t8H2jmDxem6bU5gfOLjW4NkwkLCyC_y0jmTzP4Rjq7lriPjZ9fmWQvNaSA5kdDWg1TUbmB3VKY2IgP3ikUK8jfplWoZRf7g_-1G3D0rIco8ltLmgcNKuCjVdNMQCAap5n79cKoxbWobKYhrtk1ecod4" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://lh7-us.googleusercontent.com/t8H2jmDxem6bU5gfOLjW4NkwkLCyC_y0jmTzP4Rjq7lriPjZ9fmWQvNaSA5kdDWg1TUbmB3VKY2IgP3ikUK8jfplWoZRf7g_-1G3D0rIco8ltLmgcNKuCjVdNMQCAap5n79cKoxbWobKYhrtk1ecod4 424w, https://lh7-us.googleusercontent.com/t8H2jmDxem6bU5gfOLjW4NkwkLCyC_y0jmTzP4Rjq7lriPjZ9fmWQvNaSA5kdDWg1TUbmB3VKY2IgP3ikUK8jfplWoZRf7g_-1G3D0rIco8ltLmgcNKuCjVdNMQCAap5n79cKoxbWobKYhrtk1ecod4 848w, https://lh7-us.googleusercontent.com/t8H2jmDxem6bU5gfOLjW4NkwkLCyC_y0jmTzP4Rjq7lriPjZ9fmWQvNaSA5kdDWg1TUbmB3VKY2IgP3ikUK8jfplWoZRf7g_-1G3D0rIco8ltLmgcNKuCjVdNMQCAap5n79cKoxbWobKYhrtk1ecod4 1272w, https://lh7-us.googleusercontent.com/t8H2jmDxem6bU5gfOLjW4NkwkLCyC_y0jmTzP4Rjq7lriPjZ9fmWQvNaSA5kdDWg1TUbmB3VKY2IgP3ikUK8jfplWoZRf7g_-1G3D0rIco8ltLmgcNKuCjVdNMQCAap5n79cKoxbWobKYhrtk1ecod4 1456w" sizes="100vw"><img src="https://lh7-us.googleusercontent.com/t8H2jmDxem6bU5gfOLjW4NkwkLCyC_y0jmTzP4Rjq7lriPjZ9fmWQvNaSA5kdDWg1TUbmB3VKY2IgP3ikUK8jfplWoZRf7g_-1G3D0rIco8ltLmgcNKuCjVdNMQCAap5n79cKoxbWobKYhrtk1ecod4" width="1087" height="642" data-attrs="{&quot;src&quot;:&quot;https://lh7-us.googleusercontent.com/t8H2jmDxem6bU5gfOLjW4NkwkLCyC_y0jmTzP4Rjq7lriPjZ9fmWQvNaSA5kdDWg1TUbmB3VKY2IgP3ikUK8jfplWoZRf7g_-1G3D0rIco8ltLmgcNKuCjVdNMQCAap5n79cKoxbWobKYhrtk1ecod4&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:642,&quot;width&quot;:1087,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://lh7-us.googleusercontent.com/t8H2jmDxem6bU5gfOLjW4NkwkLCyC_y0jmTzP4Rjq7lriPjZ9fmWQvNaSA5kdDWg1TUbmB3VKY2IgP3ikUK8jfplWoZRf7g_-1G3D0rIco8ltLmgcNKuCjVdNMQCAap5n79cKoxbWobKYhrtk1ecod4 424w, https://lh7-us.googleusercontent.com/t8H2jmDxem6bU5gfOLjW4NkwkLCyC_y0jmTzP4Rjq7lriPjZ9fmWQvNaSA5kdDWg1TUbmB3VKY2IgP3ikUK8jfplWoZRf7g_-1G3D0rIco8ltLmgcNKuCjVdNMQCAap5n79cKoxbWobKYhrtk1ecod4 848w, https://lh7-us.googleusercontent.com/t8H2jmDxem6bU5gfOLjW4NkwkLCyC_y0jmTzP4Rjq7lriPjZ9fmWQvNaSA5kdDWg1TUbmB3VKY2IgP3ikUK8jfplWoZRf7g_-1G3D0rIco8ltLmgcNKuCjVdNMQCAap5n79cKoxbWobKYhrtk1ecod4 1272w, https://lh7-us.googleusercontent.com/t8H2jmDxem6bU5gfOLjW4NkwkLCyC_y0jmTzP4Rjq7lriPjZ9fmWQvNaSA5kdDWg1TUbmB3VKY2IgP3ikUK8jfplWoZRf7g_-1G3D0rIco8ltLmgcNKuCjVdNMQCAap5n79cKoxbWobKYhrtk1ecod4 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>With this, you can create custom dashboards for monitoring various metrics and logs within your development environment. For example, here&#8217;s a dashboard that shows a pie chart detailing the proportion of errors across different devices, a bar chart showing the total count of errors by IP address, and a visualization listing specific errors with a color-coded severity level:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lh7-us.googleusercontent.com/BX1whVOqxdXDFw4UhyrE9m3u8lLOhyX1zpezKkxOjan_Wgiu9DoVYnY5gvuUvSHI3pvDuNLv9yMDqorbqmZPM11JlDYwCquuk-EfQKxtyfIj3my-BlL-3hrQUb6WawCNvYdz6gMuUdL777C1zwc9efg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://lh7-us.googleusercontent.com/BX1whVOqxdXDFw4UhyrE9m3u8lLOhyX1zpezKkxOjan_Wgiu9DoVYnY5gvuUvSHI3pvDuNLv9yMDqorbqmZPM11JlDYwCquuk-EfQKxtyfIj3my-BlL-3hrQUb6WawCNvYdz6gMuUdL777C1zwc9efg 424w, https://lh7-us.googleusercontent.com/BX1whVOqxdXDFw4UhyrE9m3u8lLOhyX1zpezKkxOjan_Wgiu9DoVYnY5gvuUvSHI3pvDuNLv9yMDqorbqmZPM11JlDYwCquuk-EfQKxtyfIj3my-BlL-3hrQUb6WawCNvYdz6gMuUdL777C1zwc9efg 848w, https://lh7-us.googleusercontent.com/BX1whVOqxdXDFw4UhyrE9m3u8lLOhyX1zpezKkxOjan_Wgiu9DoVYnY5gvuUvSHI3pvDuNLv9yMDqorbqmZPM11JlDYwCquuk-EfQKxtyfIj3my-BlL-3hrQUb6WawCNvYdz6gMuUdL777C1zwc9efg 1272w, https://lh7-us.googleusercontent.com/BX1whVOqxdXDFw4UhyrE9m3u8lLOhyX1zpezKkxOjan_Wgiu9DoVYnY5gvuUvSHI3pvDuNLv9yMDqorbqmZPM11JlDYwCquuk-EfQKxtyfIj3my-BlL-3hrQUb6WawCNvYdz6gMuUdL777C1zwc9efg 1456w" sizes="100vw"><img src="https://lh7-us.googleusercontent.com/BX1whVOqxdXDFw4UhyrE9m3u8lLOhyX1zpezKkxOjan_Wgiu9DoVYnY5gvuUvSHI3pvDuNLv9yMDqorbqmZPM11JlDYwCquuk-EfQKxtyfIj3my-BlL-3hrQUb6WawCNvYdz6gMuUdL777C1zwc9efg" width="1516" height="872" data-attrs="{&quot;src&quot;:&quot;https://lh7-us.googleusercontent.com/BX1whVOqxdXDFw4UhyrE9m3u8lLOhyX1zpezKkxOjan_Wgiu9DoVYnY5gvuUvSHI3pvDuNLv9yMDqorbqmZPM11JlDYwCquuk-EfQKxtyfIj3my-BlL-3hrQUb6WawCNvYdz6gMuUdL777C1zwc9efg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:872,&quot;width&quot;:1516,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://lh7-us.googleusercontent.com/BX1whVOqxdXDFw4UhyrE9m3u8lLOhyX1zpezKkxOjan_Wgiu9DoVYnY5gvuUvSHI3pvDuNLv9yMDqorbqmZPM11JlDYwCquuk-EfQKxtyfIj3my-BlL-3hrQUb6WawCNvYdz6gMuUdL777C1zwc9efg 424w, https://lh7-us.googleusercontent.com/BX1whVOqxdXDFw4UhyrE9m3u8lLOhyX1zpezKkxOjan_Wgiu9DoVYnY5gvuUvSHI3pvDuNLv9yMDqorbqmZPM11JlDYwCquuk-EfQKxtyfIj3my-BlL-3hrQUb6WawCNvYdz6gMuUdL777C1zwc9efg 848w, https://lh7-us.googleusercontent.com/BX1whVOqxdXDFw4UhyrE9m3u8lLOhyX1zpezKkxOjan_Wgiu9DoVYnY5gvuUvSHI3pvDuNLv9yMDqorbqmZPM11JlDYwCquuk-EfQKxtyfIj3my-BlL-3hrQUb6WawCNvYdz6gMuUdL777C1zwc9efg 1272w, https://lh7-us.googleusercontent.com/BX1whVOqxdXDFw4UhyrE9m3u8lLOhyX1zpezKkxOjan_Wgiu9DoVYnY5gvuUvSHI3pvDuNLv9yMDqorbqmZPM11JlDYwCquuk-EfQKxtyfIj3my-BlL-3hrQUb6WawCNvYdz6gMuUdL777C1zwc9efg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Conclusion</strong></h2><p>Our new Grafana integration equips you with the tools to transform data into actionable insights directly within Codegiant. For a detailed guide on how to fully utilize our dashboards feature, check out the <a href="https://docs.codegiant.io/codegiant/codegiant/help/1-0/10703">Reports and Dashboards</a> section of the Error &amp; APM Tracing help center, as well as <a href="https://docs.codegiant.io/codegiant/codegiant/help/1-0/10704">Chaos Engineering</a>, and <a href="https://docs.codegiant.io/codegiant/codegiant/help/1-0/10670">Observability</a>.</p><p>This feature is available in the Codegiant freemium plan, so you can get started right away by clicking this <a href="https://codegiant.io/users/sign_up">link</a>. As always, we look forward to hearing your feedback, and seeing how you utilize this new feature in your projects. Please leave a comment below. Cheers!</p>]]></content:encoded></item><item><title><![CDATA[Deploying an App to Google Kubernetes Engine with Codegiant]]></title><description><![CDATA[In this article, we'll learn how to use Codegiant to set up and manage CI/CD pipelines for applications deployed on Google Kubernetes Engine (GKE). We'll explore how to create a Kubernetes cluster, dockerize our application, and automate its build and dep]]></description><link>https://blog.codegiant.io/p/deploying-an-app-to-google-kubernetes-engine-with-codegiant</link><guid isPermaLink="false">https://blog.codegiant.io/p/deploying-an-app-to-google-kubernetes-engine-with-codegiant</guid><dc:creator><![CDATA[Codegiant]]></dc:creator><pubDate>Mon, 08 Jan 2024 13:52:46 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/cf32c816-6e24-43d0-a703-6e4b069c1df2_1200x628.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8Hvc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be80f85-1a43-43ce-96db-b5bb0949fd39_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8Hvc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be80f85-1a43-43ce-96db-b5bb0949fd39_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8Hvc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be80f85-1a43-43ce-96db-b5bb0949fd39_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8Hvc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be80f85-1a43-43ce-96db-b5bb0949fd39_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8Hvc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be80f85-1a43-43ce-96db-b5bb0949fd39_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8Hvc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be80f85-1a43-43ce-96db-b5bb0949fd39_1200x628.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6be80f85-1a43-43ce-96db-b5bb0949fd39_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8Hvc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be80f85-1a43-43ce-96db-b5bb0949fd39_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8Hvc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be80f85-1a43-43ce-96db-b5bb0949fd39_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8Hvc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be80f85-1a43-43ce-96db-b5bb0949fd39_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8Hvc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6be80f85-1a43-43ce-96db-b5bb0949fd39_1200x628.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Continuous Integration and Continuous Deployment (CI/CD) are key practices in managing and automating workflows in Kubernetes environments.</p><p>In this article, we'll learn how to use Codegiant to set up and manage CI/CD pipelines for applications deployed on Google Kubernetes Engine (GKE). We'll explore how to create a Kubernetes cluster, dockerize our application, and automate its build and deployment process to GKE.</p><h2><strong>Prerequisites</strong></h2><p>To successfully deploy an application to Google Kubernetes Engine (GKE) using Codegiant, the following prerequisites are required:</p><ol><li><p><strong>Google Cloud Platform (GCP) Account</strong>: A GCP account is necessary as GKE is a part of Google Cloud's services. Create an account at <a href="https://cloud.google.com/">cloud.google.com</a> if you don't already have one.</p></li><li><p><strong>Codegiant Account</strong>: You will need a Codegiant account for managing CI/CD pipelines and source code. Sign up at <a href="https://codegiant.io/">codegiant.io</a> if you haven&#8217;t done so.</p></li><li><p><strong>Docker Account</strong>: A Docker account is required for containerizing the application. Sign up at <a href="https://hub.docker.com/">Docker Hub</a> if you don't have an account. This will be used for storing and managing Docker images.</p></li><li><p><strong>Local Development Environment Setup for Docker</strong>: Install Docker Desktop or a similar tool on your system. Confirm the installation by running docker --version in your command line.</p></li><li><p><strong>Basic Knowledge of Kubernetes and Docker</strong>: A fundamental understanding of Docker and Kubernetes is beneficial. This includes knowledge of Dockerfiles, the concept of containerization, and basic Kubernetes constructs like pods and services.</p></li></ol><p>With these prerequisites in place, you are ready to begin the process of deploying your application on GKE using Codegiant&#8217;s CI/CD pipeline.</p><h2><strong>Dockerizing our Application</strong></h2><p>To deploy our application to GKE, we first need to containerize it using Docker. This is achieved by creating a Dockerfile, which provides instructions for building the Docker image. Here&#8217;s an example of what a Dockerfile might look like for a Node.js application:</p><div class="captioned-image-container"><figure><pre><code>FROM node:14-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]</code></pre><figcaption class="image-caption">Dockerfile</figcaption></figure></div><p>This Dockerfile (named Dockerfile without any extension) outlines the steps to build your Node.js application's Docker image:</p><ol><li><p><strong>Base Image</strong>: Starts with <code>node:14-alpine</code>, a lightweight Node.js runtime.</p></li><li><p><strong>Working Directory</strong>: Sets <code>/app</code> as the working directory inside the container.</p></li><li><p><strong>Copying Files</strong>: Transfers <code>package.json</code> and <code>package-lock.json</code> to the container, followed by the rest of your project files.</p></li><li><p><strong>Installing Dependencies</strong>: Runs <code>npm install</code> to install necessary dependencies.</p></li><li><p><strong>Building the App</strong>: If it's a React app, <code>npm run build</code> compiles the application.</p></li><li><p><strong>Exposing Port</strong>: <code>EXPOSE 3000</code> makes the application accessible on port 3000.</p></li><li><p><strong>Starting the App</strong>: <code>CMD ["npm", "start"]</code> defines the command to start the application when the container is initiated.</p></li></ol><p>With this Dockerfile, you can build a Docker image of your application by running <code>docker build -t yourappname .</code> in the command line. After building, you should test the Docker image locally with <code>docker run -p 3000:3000 yourappname</code> to ensure it runs correctly. Finally, push the image to Docker Hub using <code>docker tag</code> and <code>docker push</code> commands.</p><p>When setting up the CI/CD pipeline in Codegiant, we'll automate this process of building and pushing the Docker image to Docker Hub. So all you need to worry about is creating the Dockerfile and testing the image locally.</p><h2><strong>Configuring Kubernetes Deployment and Service Files</strong></h2><p>Once the <code>Dockerfile</code> is ready, the next step is to create Kubernetes deployment and service configuration files. These files are written in YAML and define how the application should be deployed and managed in the Google Kubernetes Engine (GKE) environment.</p><p><strong>Kubernetes Deployment File:&nbsp;</strong></p><p>This file describes the desired state of your application's deployment, including the Docker image to use, the number of replicas, and other specifications. Create a file named <code>deployment.yaml</code> and include the following basic structure:</p><div class="captioned-image-container"><figure><pre><code>apiVersion: apps/v1
kind: Deployment
metadata:
  name: yourapp-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: yourapp
  template:
    metadata:
      labels:
        app: yourapp
    spec:
      containers:
        - name: yourapp
          image: yourdockerhubusername/yourappname:tag
          ports:
            - containerPort: 3000
          resources:
            requests:
              cpu: '0.1'
              memory: '256Mi'
            limits:
              cpu: '0.5'
              memory: '512Mi'</code></pre><figcaption class="image-caption">./deployment.yaml</figcaption></figure></div><p>Replace <code>yourapp</code>, <code>yourdockerhubusername/yourappname:tag</code>, and <code>containerPort</code> with your application's name, Docker image, and port number, respectively. The <code>replicas</code> field defines the number of instances of your application that you want running, while the <code>resources</code> field specifies the CPU and memory limits for each instance.</p><p><strong>Kubernetes Service File:&nbsp;</strong></p><p>This file creates a service that exposes your application to the internet or internal network. The service uses a selector to connect to the deployment via the matching label. Create a file named <code>service.yaml</code> with the following content:</p><div class="captioned-image-container"><figure><pre><code>apiVersion: v1
kind: Service
metadata:
  name: yourapp-service
spec:
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 3000
  selector:
    app: yourapp</code></pre><figcaption class="image-caption">./service.yaml</figcaption></figure></div><p>Here, <code>type: LoadBalancer</code> creates a cloud provider's load balancer to distribute traffic. There are other types of services, such as <code>ClusterIP</code> and <code>NodePort</code>, which you can use depending on your requirements. In this example, we are using <code>LoadBalancer</code> to expose the application to the internet.</p><p>The <code>port</code> is the external port to be accessed from outside, while <code>targetPort</code> is the port on which your application is running inside the container. To ensure proper connectivity, the port and targetPort in the service file should match the port number specified in the deployment and Dockerfile, respectively.</p><p>These two files, <code>deployment.yaml</code> and <code>service.yaml</code>, are crucial for deploying and managing your application in Kubernetes. The deployment file ensures that the desired number of instances of your application is always running, and the service file makes the application accessible via a stable endpoint. Once these files are configured, they will be used in the subsequent steps to deploy the application to GKE using Codegiant's CI/CD pipeline.</p><h2><strong>Setting up a Kubernetes Cluster in GKE</strong></h2><p>With the Docker image and Kubernetes configuration files ready, we can now set up a Kubernetes cluster in GKE. This is where our application will be deployed and managed. To create a cluster, follow these steps:</p><ol><li><p><strong>Create a Project</strong>: Log in to your GCP account and create a project. This project will be used to host the Kubernetes cluster.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6eT-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86978aa2-8aa1-4ce0-801e-9922682e0076_1784x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6eT-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86978aa2-8aa1-4ce0-801e-9922682e0076_1784x1080.png 424w, https://substackcdn.com/image/fetch/$s_!6eT-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86978aa2-8aa1-4ce0-801e-9922682e0076_1784x1080.png 848w, https://substackcdn.com/image/fetch/$s_!6eT-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86978aa2-8aa1-4ce0-801e-9922682e0076_1784x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!6eT-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86978aa2-8aa1-4ce0-801e-9922682e0076_1784x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6eT-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86978aa2-8aa1-4ce0-801e-9922682e0076_1784x1080.png" width="1784" height="1080" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/86978aa2-8aa1-4ce0-801e-9922682e0076_1784x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1080,&quot;width&quot;:1784,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!6eT-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86978aa2-8aa1-4ce0-801e-9922682e0076_1784x1080.png 424w, https://substackcdn.com/image/fetch/$s_!6eT-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86978aa2-8aa1-4ce0-801e-9922682e0076_1784x1080.png 848w, https://substackcdn.com/image/fetch/$s_!6eT-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86978aa2-8aa1-4ce0-801e-9922682e0076_1784x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!6eT-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86978aa2-8aa1-4ce0-801e-9922682e0076_1784x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="2"><li><p><strong>Enable Kubernetes Engine API</strong>: In the GCP console, go to APIs &amp; Services &gt; Library and search for Kubernetes Engine API. Click on the result and enable the API.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!683R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0984a17-92b3-46f3-ad41-b0b3494c83e3_2000x1152.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!683R!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0984a17-92b3-46f3-ad41-b0b3494c83e3_2000x1152.png 424w, https://substackcdn.com/image/fetch/$s_!683R!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0984a17-92b3-46f3-ad41-b0b3494c83e3_2000x1152.png 848w, https://substackcdn.com/image/fetch/$s_!683R!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0984a17-92b3-46f3-ad41-b0b3494c83e3_2000x1152.png 1272w, https://substackcdn.com/image/fetch/$s_!683R!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0984a17-92b3-46f3-ad41-b0b3494c83e3_2000x1152.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!683R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0984a17-92b3-46f3-ad41-b0b3494c83e3_2000x1152.png" width="2000" height="1152" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c0984a17-92b3-46f3-ad41-b0b3494c83e3_2000x1152.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1152,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!683R!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0984a17-92b3-46f3-ad41-b0b3494c83e3_2000x1152.png 424w, https://substackcdn.com/image/fetch/$s_!683R!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0984a17-92b3-46f3-ad41-b0b3494c83e3_2000x1152.png 848w, https://substackcdn.com/image/fetch/$s_!683R!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0984a17-92b3-46f3-ad41-b0b3494c83e3_2000x1152.png 1272w, https://substackcdn.com/image/fetch/$s_!683R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0984a17-92b3-46f3-ad41-b0b3494c83e3_2000x1152.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="3"><li><p><strong>Create a Cluster</strong>: In the GCP console, go to Kubernetes Engine &gt; Clusters and click Create Cluster. You'll see an option to create a standard cluster (which gives you more control over the cluster's configuration) or an Autopilot cluster (which allows GKE to manage the underlying infrastructure, including node provisioning based on your workload). For this tutorial, we'll create an Autopilot cluster. Enter a name for the cluster and select the desired region or zone. Click the "Create" button to create your cluster. This may take a few minutes.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!D2lN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a427601-11d1-4808-9751-b127c79e91f5_2000x1151.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D2lN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a427601-11d1-4808-9751-b127c79e91f5_2000x1151.png 424w, https://substackcdn.com/image/fetch/$s_!D2lN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a427601-11d1-4808-9751-b127c79e91f5_2000x1151.png 848w, https://substackcdn.com/image/fetch/$s_!D2lN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a427601-11d1-4808-9751-b127c79e91f5_2000x1151.png 1272w, https://substackcdn.com/image/fetch/$s_!D2lN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a427601-11d1-4808-9751-b127c79e91f5_2000x1151.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D2lN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a427601-11d1-4808-9751-b127c79e91f5_2000x1151.png" width="2000" height="1151" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a427601-11d1-4808-9751-b127c79e91f5_2000x1151.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1151,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!D2lN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a427601-11d1-4808-9751-b127c79e91f5_2000x1151.png 424w, https://substackcdn.com/image/fetch/$s_!D2lN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a427601-11d1-4808-9751-b127c79e91f5_2000x1151.png 848w, https://substackcdn.com/image/fetch/$s_!D2lN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a427601-11d1-4808-9751-b127c79e91f5_2000x1151.png 1272w, https://substackcdn.com/image/fetch/$s_!D2lN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a427601-11d1-4808-9751-b127c79e91f5_2000x1151.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Creating a Service Account in GKE</strong></h2><p>For a CI/CD pipeline to interact with your Kubernetes cluster in Google Kubernetes Engine (GKE), you need to create a service account. This account provides the necessary permissions for Codegiant to deploy applications to the cluster.</p><p>Here's how to create and configure a service account:</p><ol><li><p><strong>Access the IAM &amp; Admin Section</strong>: In your Google Cloud Console, navigate to the "IAM &amp; Admin" section. This area allows you to manage access and permissions within your GCP environment.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0omm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ee54e3-4246-44f9-8adc-af2d7bc1860a_1870x1164.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0omm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ee54e3-4246-44f9-8adc-af2d7bc1860a_1870x1164.png 424w, https://substackcdn.com/image/fetch/$s_!0omm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ee54e3-4246-44f9-8adc-af2d7bc1860a_1870x1164.png 848w, https://substackcdn.com/image/fetch/$s_!0omm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ee54e3-4246-44f9-8adc-af2d7bc1860a_1870x1164.png 1272w, https://substackcdn.com/image/fetch/$s_!0omm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ee54e3-4246-44f9-8adc-af2d7bc1860a_1870x1164.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0omm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ee54e3-4246-44f9-8adc-af2d7bc1860a_1870x1164.png" width="1870" height="1164" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c1ee54e3-4246-44f9-8adc-af2d7bc1860a_1870x1164.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1164,&quot;width&quot;:1870,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!0omm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ee54e3-4246-44f9-8adc-af2d7bc1860a_1870x1164.png 424w, https://substackcdn.com/image/fetch/$s_!0omm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ee54e3-4246-44f9-8adc-af2d7bc1860a_1870x1164.png 848w, https://substackcdn.com/image/fetch/$s_!0omm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ee54e3-4246-44f9-8adc-af2d7bc1860a_1870x1164.png 1272w, https://substackcdn.com/image/fetch/$s_!0omm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ee54e3-4246-44f9-8adc-af2d7bc1860a_1870x1164.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="2"><li><p><strong>Create a New Service Account</strong>: Click on &#8220;Service Accounts&#8221; and then select &#8220;Create Service Account&#8221;. Name your service account (e.g., codegiant-cicd) and provide a brief description. It's important to choose a name that clearly indicates the service account's purpose.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VjCv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc492c6a-fb0b-4554-9ef1-286926f7bf0e_1892x1154.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VjCv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc492c6a-fb0b-4554-9ef1-286926f7bf0e_1892x1154.png 424w, https://substackcdn.com/image/fetch/$s_!VjCv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc492c6a-fb0b-4554-9ef1-286926f7bf0e_1892x1154.png 848w, https://substackcdn.com/image/fetch/$s_!VjCv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc492c6a-fb0b-4554-9ef1-286926f7bf0e_1892x1154.png 1272w, https://substackcdn.com/image/fetch/$s_!VjCv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc492c6a-fb0b-4554-9ef1-286926f7bf0e_1892x1154.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VjCv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc492c6a-fb0b-4554-9ef1-286926f7bf0e_1892x1154.png" width="1892" height="1154" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bc492c6a-fb0b-4554-9ef1-286926f7bf0e_1892x1154.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1154,&quot;width&quot;:1892,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!VjCv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc492c6a-fb0b-4554-9ef1-286926f7bf0e_1892x1154.png 424w, https://substackcdn.com/image/fetch/$s_!VjCv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc492c6a-fb0b-4554-9ef1-286926f7bf0e_1892x1154.png 848w, https://substackcdn.com/image/fetch/$s_!VjCv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc492c6a-fb0b-4554-9ef1-286926f7bf0e_1892x1154.png 1272w, https://substackcdn.com/image/fetch/$s_!VjCv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc492c6a-fb0b-4554-9ef1-286926f7bf0e_1892x1154.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="3"><li><p><strong>Assign Necessary Roles</strong>: Assign roles to your service account that grant the required permissions for managing the Kubernetes cluster. At a minimum, the service account should have roles like "Kubernetes Engine Admin", &#8220;Storage Admin&#8221; and &#8220;Service Account User&#8221;. These roles enable the CI/CD pipeline to deploy applications, manage container storage, and access other resources in the cluster. You can also assign more granular roles if needed.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gGtd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55c35d98-4d32-4617-b9ac-5b9e7e916777_1938x1244.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gGtd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55c35d98-4d32-4617-b9ac-5b9e7e916777_1938x1244.png 424w, https://substackcdn.com/image/fetch/$s_!gGtd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55c35d98-4d32-4617-b9ac-5b9e7e916777_1938x1244.png 848w, https://substackcdn.com/image/fetch/$s_!gGtd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55c35d98-4d32-4617-b9ac-5b9e7e916777_1938x1244.png 1272w, https://substackcdn.com/image/fetch/$s_!gGtd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55c35d98-4d32-4617-b9ac-5b9e7e916777_1938x1244.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gGtd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55c35d98-4d32-4617-b9ac-5b9e7e916777_1938x1244.png" width="1938" height="1244" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55c35d98-4d32-4617-b9ac-5b9e7e916777_1938x1244.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1244,&quot;width&quot;:1938,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!gGtd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55c35d98-4d32-4617-b9ac-5b9e7e916777_1938x1244.png 424w, https://substackcdn.com/image/fetch/$s_!gGtd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55c35d98-4d32-4617-b9ac-5b9e7e916777_1938x1244.png 848w, https://substackcdn.com/image/fetch/$s_!gGtd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55c35d98-4d32-4617-b9ac-5b9e7e916777_1938x1244.png 1272w, https://substackcdn.com/image/fetch/$s_!gGtd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55c35d98-4d32-4617-b9ac-5b9e7e916777_1938x1244.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="4"><li><p><strong>Create and Download the JSON Key</strong>: After creating the service account and assigning roles, create a key for the account. Click the service account you just created and go to the &#8220;Keys&#8221; tab. Choose the &#8220;Add Key&#8221; option, select JSON as the key type, and click &#8220;Create&#8221;. This will download a JSON file containing the key. This file will be used in Codegiant to authenticate with GKE.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VjHU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c84b66d-2b4c-4349-ab0a-3bfb1164a911_1714x1136.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VjHU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c84b66d-2b4c-4349-ab0a-3bfb1164a911_1714x1136.png 424w, https://substackcdn.com/image/fetch/$s_!VjHU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c84b66d-2b4c-4349-ab0a-3bfb1164a911_1714x1136.png 848w, https://substackcdn.com/image/fetch/$s_!VjHU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c84b66d-2b4c-4349-ab0a-3bfb1164a911_1714x1136.png 1272w, https://substackcdn.com/image/fetch/$s_!VjHU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c84b66d-2b4c-4349-ab0a-3bfb1164a911_1714x1136.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VjHU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c84b66d-2b4c-4349-ab0a-3bfb1164a911_1714x1136.png" width="1714" height="1136" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7c84b66d-2b4c-4349-ab0a-3bfb1164a911_1714x1136.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1136,&quot;width&quot;:1714,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!VjHU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c84b66d-2b4c-4349-ab0a-3bfb1164a911_1714x1136.png 424w, https://substackcdn.com/image/fetch/$s_!VjHU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c84b66d-2b4c-4349-ab0a-3bfb1164a911_1714x1136.png 848w, https://substackcdn.com/image/fetch/$s_!VjHU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c84b66d-2b4c-4349-ab0a-3bfb1164a911_1714x1136.png 1272w, https://substackcdn.com/image/fetch/$s_!VjHU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c84b66d-2b4c-4349-ab0a-3bfb1164a911_1714x1136.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="5"><li><p><strong>Secure the JSON Key File</strong>: Store the downloaded JSON key file securely. It contains sensitive information that grants access to your GKE resources. You will need to add the contents of this file to Codegiant later.</p></li></ol><p>With the service account created and configured, you are now ready to set up the CI/CD pipeline in Codegiant.</p><h2><strong>Setting up our project repository in Codegiant</strong></h2><p>To set up the CI/CD pipeline in Codegiant, we first need to create a project repository. This repository will contain the source code for the application and the configuration files for the CI/CD pipeline. Here's how to create a project repository in Codegiant:</p><ol><li><p><strong>Add a New Workspace Item</strong>: Log in to your Codegiant account and click the "plus" button beside the "Workspaces" section in the sidebar. Select "Git Repository" from the modal that appears.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bBQ3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5c7f961-7845-467e-8d25-e7e821612019_1702x850.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bBQ3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5c7f961-7845-467e-8d25-e7e821612019_1702x850.png 424w, https://substackcdn.com/image/fetch/$s_!bBQ3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5c7f961-7845-467e-8d25-e7e821612019_1702x850.png 848w, https://substackcdn.com/image/fetch/$s_!bBQ3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5c7f961-7845-467e-8d25-e7e821612019_1702x850.png 1272w, https://substackcdn.com/image/fetch/$s_!bBQ3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5c7f961-7845-467e-8d25-e7e821612019_1702x850.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bBQ3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5c7f961-7845-467e-8d25-e7e821612019_1702x850.png" width="1702" height="850" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e5c7f961-7845-467e-8d25-e7e821612019_1702x850.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:850,&quot;width&quot;:1702,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!bBQ3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5c7f961-7845-467e-8d25-e7e821612019_1702x850.png 424w, https://substackcdn.com/image/fetch/$s_!bBQ3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5c7f961-7845-467e-8d25-e7e821612019_1702x850.png 848w, https://substackcdn.com/image/fetch/$s_!bBQ3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5c7f961-7845-467e-8d25-e7e821612019_1702x850.png 1272w, https://substackcdn.com/image/fetch/$s_!bBQ3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5c7f961-7845-467e-8d25-e7e821612019_1702x850.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="2"><li><p><strong>Create a Repository</strong>: Enter a name and description for your repository. You'll also see an option to import an existing repository from a different source. If you have an existing repository, paste the URL in the "Import URL" field. Otherwise, leave it blank and click "Create Repository" to create a new repository.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tZYQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73cb652d-74d0-48fa-b2f8-f6f2defa4b8e_2246x1394.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tZYQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73cb652d-74d0-48fa-b2f8-f6f2defa4b8e_2246x1394.png 424w, https://substackcdn.com/image/fetch/$s_!tZYQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73cb652d-74d0-48fa-b2f8-f6f2defa4b8e_2246x1394.png 848w, https://substackcdn.com/image/fetch/$s_!tZYQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73cb652d-74d0-48fa-b2f8-f6f2defa4b8e_2246x1394.png 1272w, https://substackcdn.com/image/fetch/$s_!tZYQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73cb652d-74d0-48fa-b2f8-f6f2defa4b8e_2246x1394.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tZYQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73cb652d-74d0-48fa-b2f8-f6f2defa4b8e_2246x1394.png" width="2000" height="1241" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73cb652d-74d0-48fa-b2f8-f6f2defa4b8e_2246x1394.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1241,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!tZYQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73cb652d-74d0-48fa-b2f8-f6f2defa4b8e_2246x1394.png 424w, https://substackcdn.com/image/fetch/$s_!tZYQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73cb652d-74d0-48fa-b2f8-f6f2defa4b8e_2246x1394.png 848w, https://substackcdn.com/image/fetch/$s_!tZYQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73cb652d-74d0-48fa-b2f8-f6f2defa4b8e_2246x1394.png 1272w, https://substackcdn.com/image/fetch/$s_!tZYQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73cb652d-74d0-48fa-b2f8-f6f2defa4b8e_2246x1394.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>With the repository created, you can now add the source code and configuration files for your application.</p><h2><strong>Configuring the CI/CD Pipeline in Codegiant</strong></h2><p>Next, we'll configure the CI/CD pipeline in Codegiant. This pipeline will automate the build and deployment process for our application. Here's how to set up the pipeline:</p><ol><li><p><strong>Initiate Pipeline Setup: &nbsp;</strong>Open your repository in Codegiant, right-click the root directory, and select "Setup Pipeline (CI/CD)". This action initiates the pipeline configuration process.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!87rW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048c78ce-7b1f-45d6-b005-b0be1b3203fe_1872x1150.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!87rW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048c78ce-7b1f-45d6-b005-b0be1b3203fe_1872x1150.png 424w, https://substackcdn.com/image/fetch/$s_!87rW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048c78ce-7b1f-45d6-b005-b0be1b3203fe_1872x1150.png 848w, https://substackcdn.com/image/fetch/$s_!87rW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048c78ce-7b1f-45d6-b005-b0be1b3203fe_1872x1150.png 1272w, https://substackcdn.com/image/fetch/$s_!87rW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048c78ce-7b1f-45d6-b005-b0be1b3203fe_1872x1150.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!87rW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048c78ce-7b1f-45d6-b005-b0be1b3203fe_1872x1150.png" width="1872" height="1150" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/048c78ce-7b1f-45d6-b005-b0be1b3203fe_1872x1150.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1150,&quot;width&quot;:1872,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!87rW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048c78ce-7b1f-45d6-b005-b0be1b3203fe_1872x1150.png 424w, https://substackcdn.com/image/fetch/$s_!87rW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048c78ce-7b1f-45d6-b005-b0be1b3203fe_1872x1150.png 848w, https://substackcdn.com/image/fetch/$s_!87rW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048c78ce-7b1f-45d6-b005-b0be1b3203fe_1872x1150.png 1272w, https://substackcdn.com/image/fetch/$s_!87rW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F048c78ce-7b1f-45d6-b005-b0be1b3203fe_1872x1150.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="2"><li><p><strong>Choose Pipeline Configuration</strong>: You'll be presented with an option to pick from various CI configuration templates or to start from scratch. These templates provide pre-configured settings based on common CI processes and can be a quick start depending on your project's needs. For the purpose of this tutorial, however, we will set up a pipeline from scratch.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qsdF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3702c00-292c-4f7c-afed-49972e1919c0_2274x1322.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qsdF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3702c00-292c-4f7c-afed-49972e1919c0_2274x1322.png 424w, https://substackcdn.com/image/fetch/$s_!qsdF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3702c00-292c-4f7c-afed-49972e1919c0_2274x1322.png 848w, https://substackcdn.com/image/fetch/$s_!qsdF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3702c00-292c-4f7c-afed-49972e1919c0_2274x1322.png 1272w, https://substackcdn.com/image/fetch/$s_!qsdF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3702c00-292c-4f7c-afed-49972e1919c0_2274x1322.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qsdF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3702c00-292c-4f7c-afed-49972e1919c0_2274x1322.png" width="2000" height="1163" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c3702c00-292c-4f7c-afed-49972e1919c0_2274x1322.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1163,&quot;width&quot;:2000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!qsdF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3702c00-292c-4f7c-afed-49972e1919c0_2274x1322.png 424w, https://substackcdn.com/image/fetch/$s_!qsdF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3702c00-292c-4f7c-afed-49972e1919c0_2274x1322.png 848w, https://substackcdn.com/image/fetch/$s_!qsdF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3702c00-292c-4f7c-afed-49972e1919c0_2274x1322.png 1272w, https://substackcdn.com/image/fetch/$s_!qsdF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3702c00-292c-4f7c-afed-49972e1919c0_2274x1322.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol start="3"><li><p><strong>Seed New Pipeline</strong>: Click on the "Seed new pipeline" button. Codegiant will create a <code>.codegiant-ci.yml</code> file in your project&#8217;s root directory. This file is the backbone of your CI/CD pipeline configuration.</p></li></ol><p>When you open the <code>.codegiant-ci.yml</code> file, you will notice the "Pipeline" and "Editor" tabs. The "Pipeline" tab provides a GUI for configuring tasks, while the "Editor" tab allows direct editing of the <code>.codegiant-ci.yml</code> file.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JkY6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff250af9d-2b66-40ff-8694-32aabe6d221b_1606x978.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JkY6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff250af9d-2b66-40ff-8694-32aabe6d221b_1606x978.png 424w, https://substackcdn.com/image/fetch/$s_!JkY6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff250af9d-2b66-40ff-8694-32aabe6d221b_1606x978.png 848w, https://substackcdn.com/image/fetch/$s_!JkY6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff250af9d-2b66-40ff-8694-32aabe6d221b_1606x978.png 1272w, https://substackcdn.com/image/fetch/$s_!JkY6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff250af9d-2b66-40ff-8694-32aabe6d221b_1606x978.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JkY6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff250af9d-2b66-40ff-8694-32aabe6d221b_1606x978.png" width="1606" height="978" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f250af9d-2b66-40ff-8694-32aabe6d221b_1606x978.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:978,&quot;width&quot;:1606,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!JkY6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff250af9d-2b66-40ff-8694-32aabe6d221b_1606x978.png 424w, https://substackcdn.com/image/fetch/$s_!JkY6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff250af9d-2b66-40ff-8694-32aabe6d221b_1606x978.png 848w, https://substackcdn.com/image/fetch/$s_!JkY6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff250af9d-2b66-40ff-8694-32aabe6d221b_1606x978.png 1272w, https://substackcdn.com/image/fetch/$s_!JkY6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff250af9d-2b66-40ff-8694-32aabe6d221b_1606x978.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Initially, the file contains a basic configuration that looks like this:</p><div class="captioned-image-container"><figure><pre><code>apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: task
spec:
  steps:
    - name: hello-world
      image: ubuntu
      script: |
        #!/bin/bash
        echo 'Hello World!'

---
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
  name: pipeline
spec:
  tasks:
    - taskRef:
        name: task
      name: task-run

---
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
  name: pipeline-run
spec:
  pipelineRef:
    name: pipeline</code></pre><figcaption class="image-caption">.codegiant-ci.yml</figcaption></figure></div><p>Let&#8217;s break down the components of the base configuration:</p><ul><li><p><strong>Tekton Pipelines</strong>: Codegiant utilizes Tekton, an open-source framework for creating CI/CD systems. Tekton is part of the Continuous Delivery Foundation and is specifically designed to take advantage of Kubernetes, making it an ideal choice for cloud-native CI/CD workflows.</p></li><li><p><strong>Task</strong>: This is the smallest configurable unit in Tekton and represents a set of operations to be performed. In the example, the task is named 'task' and consists of a single step that runs a script in an Ubuntu container, printing 'Hello World!'.</p></li><li><p><strong>Pipeline</strong>: A Tekton Pipeline defines a series of tasks that will be executed in the order they are defined. Here, it references the 'task' defined earlier.</p></li><li><p><strong>PipelineRun</strong>: This part triggers the execution of the Pipeline. It references the pipeline 'pipeline' to be run.</p></li></ul><p>This basic configuration is a starting point. You'll typically modify the <code>.codegiant-ci.yml</code> to suit your specific build, test, and deployment needs. We'll do this in the next step when we configure the pipeline to build and deploy our application to GKE.</p><h2><strong>Adding Environment Variables / Secrets in Codegiant</strong></h2><p>Before we can configure the CI/CD pipeline to deploy our application to GKE, we need to add some environment variables to our project in Codegiant. These variables will be used in the pipeline configuration to authenticate with GKE and Docker Hub.</p><p>In your Codegiant project, go to Settings &gt; Pipeline &gt; Secrets and click "New Secret". Enter the key and value of the secret and click "Save Variable" to save it. For this tutorial, we'll add the following variables:</p><ul><li><p><strong>CI_REGISTRY_USER</strong>: Your Docker Hub username</p></li><li><p><strong>CI_REGISTRY_PASSWORD</strong>: Your Docker Hub password</p></li><li><p><strong>CI_REGISTRY_IMAGE</strong>: Your Docker Hub image name. This is typically in the format <code>yourdockerhubusername/yourappname</code></p></li><li><p><strong>PROJECT_ID</strong>: Your GCP project ID</p></li><li><p><strong>COMPUTE_REGION</strong>: The region where your GKE cluster is located</p></li><li><p><strong>CLUSTER_NAME</strong>: The name of your GKE cluster</p></li><li><p><strong>CONTAINER_NAME</strong>: The name of your application's container as specified in the deployment file</p></li><li><p><strong>SERVICE_ACCOUNT</strong>: The contents of the JSON key file for your service account. This is the file you downloaded when creating the service account in GKE.</p></li><li><p><strong>DEPLOYMENT_NAME</strong>: The name of your application's deployment as specified in the deployment file</p></li></ul><p>These variables will be used in the pipeline configuration to authenticate with GKE and Docker Hub.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xjA5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4b91a1-a427-4988-879c-0309804e642f_1648x1150.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xjA5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4b91a1-a427-4988-879c-0309804e642f_1648x1150.png 424w, https://substackcdn.com/image/fetch/$s_!xjA5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4b91a1-a427-4988-879c-0309804e642f_1648x1150.png 848w, https://substackcdn.com/image/fetch/$s_!xjA5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4b91a1-a427-4988-879c-0309804e642f_1648x1150.png 1272w, https://substackcdn.com/image/fetch/$s_!xjA5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4b91a1-a427-4988-879c-0309804e642f_1648x1150.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xjA5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4b91a1-a427-4988-879c-0309804e642f_1648x1150.png" width="1648" height="1150" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de4b91a1-a427-4988-879c-0309804e642f_1648x1150.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1150,&quot;width&quot;:1648,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!xjA5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4b91a1-a427-4988-879c-0309804e642f_1648x1150.png 424w, https://substackcdn.com/image/fetch/$s_!xjA5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4b91a1-a427-4988-879c-0309804e642f_1648x1150.png 848w, https://substackcdn.com/image/fetch/$s_!xjA5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4b91a1-a427-4988-879c-0309804e642f_1648x1150.png 1272w, https://substackcdn.com/image/fetch/$s_!xjA5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4b91a1-a427-4988-879c-0309804e642f_1648x1150.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Customizing the CI/CD Pipeline to Deploy to GKE</strong></h2><p>Now that we have a basic CI/CD pipeline in place, we can customize it to build and deploy our application to GKE. Here's how to do this:</p><p><strong>1. Update the Task Configuration</strong></p><p>First, modify the initial task in the <code>.codegiant-ci.yml</code> file. Replace the existing task with the following:</p><pre><code>apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: build-deploy
spec:
  steps:
    - name: build
      image: 'docker:24.0.5'
      env:
        - name: DOCKER_HOST
          value: 'tcp://localhost:2376'
        - name: DOCKER_TLS_VERIFY
          value: '1'
        - name: DOCKER_CERT_PATH
          value: /certs/client
      script: |
        docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD
        docker build -t $CI_REGISTRY_IMAGE:latest .
        docker push $CI_REGISTRY_IMAGE:latest
      volumeMounts:
        - mountPath: /certs/client
          name: dind-certs
    - name: deploy
      image: 'google/cloud-sdk:latest'
      script: |
        echo $SERVICE_ACCOUNT &gt; /tmp/service_account.json
        gcloud auth activate-service-account --key-file /tmp/service_account.json
        gcloud config set project $PROJECT_ID
        gcloud config set compute/region $COMPUTE_REGION
        mkdir -p /workspace/.kube
        export KUBECONFIG=/workspace/.kube/config
        gcloud container clusters get-credentials $CLUSTER_NAME --region $COMPUTE_REGION
        kubectl apply -f deployment.yaml
        kubectl apply -f service.yaml
        kubectl set image deployment/$DEPLOYMENT_NAME $CONTAINER_NAME=$CI_REGISTRY_IMAGE:latest</code></pre><ul><li><p><strong>Build Step</strong>: Uses Docker to build and push your application's image to a registry (like Docker Hub). We've referenced the variables CI_REGISTRY_USER, CI_REGISTRY_PASSWORD, and CI_REGISTRY_IMAGE which we added in the pipeline "secrets" settings. The <strong>VolumeMounts</strong> section mounts the Docker certificates to the container.</p></li><li><p><strong>Deploy Step</strong>: Uses Google Cloud SDK to authenticate with GCP, configure the project and region, get credentials for your GKE cluster, and then apply your Kubernetes deployment.yaml and service.yaml files. It also updates the deployment to use the new image. Environment variables SERVICE_ACCOUNT, PROJECT_ID, COMPUTE_REGION, CLUSTER_NAME, DEPLOYMENT_NAME, and CONTAINER_NAME are also referenced here.</p></li></ul><p><strong>2. Configure Docker-in-Docker Sidecar</strong>Next, we need to configure a Docker-in-Docker (DinD) sidecar. This will allow us to run Docker commands in the pipeline. Add the following to the .codegiant-ci.yml file:</p><pre><code>sidecars:
  - image: 'docker:24.0.5-dind'
    name: server
    resources:
      requests:
        memory: 2Gi
        cpu: 2000m
      limits:
        memory: 2Gi
        cpu: 2000m
    args:
      - '--storage-driver=vfs'
      - '--userland-proxy=false'
      - '--debug'
    securityContext:
      privileged: true
    env:
      - name: DOCKER_TLS_CERTDIR
        value: /certs
    volumeMounts:
      - mountPath: /certs/client
        name: dind-certs
    readinessProbe:
      periodSeconds: 1
      exec:
        command:
          - ls
          - /certs/client/ca.pem</code></pre><p><strong>3. Define Necessary Volumes</strong></p><p>Add a volumes section to define storage for Docker certificates:</p><pre><code>volumes:
  - name: dind-certs
    emptyDir: {}</code></pre><p><strong>4. Update Pipeline and PipelineRun</strong></p><p>Now, update the Pipeline and PipelineRun sections to use the build-deploy task:</p><pre><code>---
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
  name: pipeline
spec:
  tasks:
    - name: run-build-deploy
      taskRef:
        name: build-deploy

---
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
  name: pipeline-run
spec:
  pipelineRef:
    name: pipeline</code></pre><p><strong>Final Steps</strong>After editing the <code>.codegiant-ci.yml</code> file with these configurations, your CI/CD pipeline is now equipped to build your application's Docker image, push it to a container registry, and deploy it to your GKE cluster. Ensure you've set all the necessary environment variables in Codegiant's pipeline settings. This setup automates your deployment process, ensuring consistent and efficient application updates in GKE.</p><p>Next, make a commit to your repository to trigger the pipeline. You can monitor the pipeline's progress by clicking on the "Pipelines" tab in your repository.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5YyJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661ca3b5-8aa9-46f2-b539-2099510fecde_1998x1130.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5YyJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661ca3b5-8aa9-46f2-b539-2099510fecde_1998x1130.png 424w, https://substackcdn.com/image/fetch/$s_!5YyJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661ca3b5-8aa9-46f2-b539-2099510fecde_1998x1130.png 848w, https://substackcdn.com/image/fetch/$s_!5YyJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661ca3b5-8aa9-46f2-b539-2099510fecde_1998x1130.png 1272w, https://substackcdn.com/image/fetch/$s_!5YyJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661ca3b5-8aa9-46f2-b539-2099510fecde_1998x1130.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5YyJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661ca3b5-8aa9-46f2-b539-2099510fecde_1998x1130.png" width="1998" height="1130" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/661ca3b5-8aa9-46f2-b539-2099510fecde_1998x1130.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1130,&quot;width&quot;:1998,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!5YyJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661ca3b5-8aa9-46f2-b539-2099510fecde_1998x1130.png 424w, https://substackcdn.com/image/fetch/$s_!5YyJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661ca3b5-8aa9-46f2-b539-2099510fecde_1998x1130.png 848w, https://substackcdn.com/image/fetch/$s_!5YyJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661ca3b5-8aa9-46f2-b539-2099510fecde_1998x1130.png 1272w, https://substackcdn.com/image/fetch/$s_!5YyJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661ca3b5-8aa9-46f2-b539-2099510fecde_1998x1130.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Once the pipeline is complete, you can verify that the application is running in GKE by going to Kubernetes Engine &gt; Workloads in your GCP console.</p><h2><strong>Conclusion</strong></h2><p>In this tutorial, we learned how to deploy an application to Google Kubernetes Engine (GKE) using Codegiant's CI/CD pipeline. We explored how to create a Kubernetes cluster, dockerize our application, and automate its build and deployment process to GKE. We also learned how to configure the CI/CD pipeline in Codegiant to build and deploy our application to GKE.</p><p>Codegiant's CI/CD pipeline provides a flexible way to automate the deployment of applications to GKE. With Codegiant, you can easily manage your application's lifecycle, from development to production, with minimal effort.</p><p>I hope you found this tutorial helpful. If you have any questions or feedback, please feel free to reach out to me via the comments section below or send me a DM on <a href="https://www.linkedin.com/in/ebenezerdon">LinkedIn</a>. Keep building awesome products!</p>]]></content:encoded></item><item><title><![CDATA[The Next Wave of DevOps: Top Trends for 2024]]></title><description><![CDATA[As we approach 2024, it's clear that DevOps is evolving rapidly.]]></description><link>https://blog.codegiant.io/p/the-next-wave-of-devops-top-trends-for-2024</link><guid isPermaLink="false">https://blog.codegiant.io/p/the-next-wave-of-devops-top-trends-for-2024</guid><dc:creator><![CDATA[Codegiant]]></dc:creator><pubDate>Thu, 28 Dec 2023 06:58:50 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ddc0931c-1a95-4ddc-aa63-ff210ab13a75_1200x628.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nFAt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ef6c7b-efc6-43d9-bc30-e169bccd2104_1200x628.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nFAt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ef6c7b-efc6-43d9-bc30-e169bccd2104_1200x628.png 424w, https://substackcdn.com/image/fetch/$s_!nFAt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ef6c7b-efc6-43d9-bc30-e169bccd2104_1200x628.png 848w, https://substackcdn.com/image/fetch/$s_!nFAt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ef6c7b-efc6-43d9-bc30-e169bccd2104_1200x628.png 1272w, https://substackcdn.com/image/fetch/$s_!nFAt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ef6c7b-efc6-43d9-bc30-e169bccd2104_1200x628.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nFAt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ef6c7b-efc6-43d9-bc30-e169bccd2104_1200x628.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/19ef6c7b-efc6-43d9-bc30-e169bccd2104_1200x628.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nFAt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ef6c7b-efc6-43d9-bc30-e169bccd2104_1200x628.png 424w, https://substackcdn.com/image/fetch/$s_!nFAt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ef6c7b-efc6-43d9-bc30-e169bccd2104_1200x628.png 848w, https://substackcdn.com/image/fetch/$s_!nFAt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ef6c7b-efc6-43d9-bc30-e169bccd2104_1200x628.png 1272w, https://substackcdn.com/image/fetch/$s_!nFAt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ef6c7b-efc6-43d9-bc30-e169bccd2104_1200x628.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>As we approach 2024, it's clear that DevOps is evolving rapidly. The field is undergoing significant transformations, and developers and organizations need to stay up-to-date with emerging trends to maintain competitiveness and efficiency. In this article, we'll explore the top trends that are shaping the future of DevOps.</p><h2><strong>1. AI and ML in DevOps</strong></h2><p>The use of AI and automation in DevOps is not new. However, we expect to see a significant increase in the adoption of these technologies in the coming year. AI and ML are enhancing intelligent automation, enabling predictive analytics, and improving anomaly detection within DevOps processes.</p><h2><strong>2. DevSecOps and Security Integration</strong></h2><p>The increasing frequency and sophistication of cyber threats have necessitated the integration of security into every stage of the DevOps pipeline, leading to the rise of <a href="https://blog.codegiant.io/breaking-down-devsecops-what-it-means-for-modern-development">DevSecOps</a>. This trend emphasizes the incorporation of security measures at each step of the software development life cycle, fostering a culture where security is a shared responsibility among all team members.</p><h2><strong>3. NoOps and Advanced Automation</strong></h2><p>The concept of NoOps, where operational processes are automated to such an extent that a dedicated operations team becomes redundant, is gaining momentum. NoOps envisions a future where systems become self-managing and self-healing, driven by intelligent automation.</p><h2><strong>4. Serverless Computing</strong></h2><p>The adoption of serverless computing is a trend that's significantly impacting DevOps in 2024. Serverless computing, where cloud providers dynamically allocate machine resources, allows developers to focus more on writing code rather than managing infrastructure. This trend is driven by the need for scalability, cost efficiency, and the simplification of deployment processes.</p><h2><strong>5. Enhanced Observability and Monitoring</strong></h2><p>Comprehensive observability and monitoring are becoming key priorities in DevOps. As systems grow in complexity, the need for advanced monitoring, logging, and tracing solutions to gain insights into application performance is crucial. Enhanced observability allows DevOps teams to preemptively address issues, improving the reliability and performance of applications.</p><h2><strong>6. Emphasis on Multi-Cloud and Edge Computing Strategies</strong></h2><p>The increasing adoption of multi-cloud and edge computing strategies is another trend that's impacting DevOps in 2024. A multi-cloud approach provides flexibility by optimizing workflows across multiple cloud providers. This trend is driven by the need for organizations to avoid vendor lock-in and ensure efficient resource utilization. Edge computing is also gaining traction due to its ability to process data closer to where it's generated, which is vital for applications requiring low latency.</p><h2><strong>7. GitOps and Infrastructure as Code (IaC)</strong></h2><p>GitOps and Infrastructure as Code (IaC) are two trends that are transforming DevOps in 2024. These trends are responses to the challenges of managing increasingly complex infrastructures and the need for more efficient methods of infrastructure provisioning.</p><h2><strong>8. ChatOps in DevOps</strong></h2><p>ChatOps, which integrates chat platforms with operational tools, is another trend that's impacting DevOps in 2024. Unlike traditional communication tools, ChatOps allows for direct interaction with software development tools within chat applications, enabling immediate responses and actions. This direct integration of communication and operations tools illustrates a practical approach to reducing response times and enhancing team agility.</p><h2><strong>9. Low-Code and No-Code Development</strong></h2><p>In 2024, low-code/no-code development is gaining momentum as organizations seek to speed up the development process and reduce costs. Low-code/no-code platforms are changing the DevOps landscape by enabling more rapid development and deployment of applications.</p><h2><strong>10. Rising DevOps Market and Cloud Adoption</strong></h2><p>The DevOps market is projected to grow significantly, from $10.4 billion in 2023 to $25.5 billion by 2028, at a Compound Annual Growth Rate (CAGR) of 19.7%, as reported by <a href="https://www.globenewswire.com/news-release/2023/12/07/2792540/0/en/DevOps-Market-worth-25-5-billion-by-2028-growing-at-a-CAGR-of-19-7-Report-by-MarketsandMarkets">MarketsandMarkets&#8482;</a>. These trends underline the expanding significance of DevOps in modern software development, emphasizing its growing market potential and impact&#8203;.</p><h2><strong>Conclusion</strong></h2><p>As we look at the DevOps landscape in 2024, it's clear that the field is undergoing significant transformations. The adoption of AI and ML, the integration of security into DevOps, and the increasing use of automation are some of the trends that are shaping the future of DevOps.</p><p>Codegiant remains the all-in-one platform for meeting these evolving demands. With the integration of cloud-native solutions, enhanced security within the DevOps process, and a focus on automation, our platform aligns with the key trends shaping the future of DevOps.</p><p>If you found this article interesting, please share your thoughts in the comments below. We'd love to hear from you!</p>]]></content:encoded></item><item><title><![CDATA[The Future of Observability: ClickHouse in Codegiant's Ecosystem]]></title><description><![CDATA[ClickHouse stands out in database management systems (DBMS) for its speed and efficiency in processing large volumes of data. At Codegiant, we integrate ClickHouse into our observability features to provide our users with a robust tool for monitoring and]]></description><link>https://blog.codegiant.io/p/clickhouse-in-codegiant-observability-ecosystem</link><guid isPermaLink="false">https://blog.codegiant.io/p/clickhouse-in-codegiant-observability-ecosystem</guid><dc:creator><![CDATA[Codegiant]]></dc:creator><pubDate>Tue, 19 Dec 2023 13:55:35 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9e18bbb9-9129-4241-81bc-32b07630f112_1200x628.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fBRr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa620ccf0-7ef3-4606-b68e-e0bbe4234ce5_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fBRr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa620ccf0-7ef3-4606-b68e-e0bbe4234ce5_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fBRr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa620ccf0-7ef3-4606-b68e-e0bbe4234ce5_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fBRr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa620ccf0-7ef3-4606-b68e-e0bbe4234ce5_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fBRr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa620ccf0-7ef3-4606-b68e-e0bbe4234ce5_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fBRr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa620ccf0-7ef3-4606-b68e-e0bbe4234ce5_1200x628.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a620ccf0-7ef3-4606-b68e-e0bbe4234ce5_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fBRr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa620ccf0-7ef3-4606-b68e-e0bbe4234ce5_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fBRr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa620ccf0-7ef3-4606-b68e-e0bbe4234ce5_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fBRr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa620ccf0-7ef3-4606-b68e-e0bbe4234ce5_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fBRr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa620ccf0-7ef3-4606-b68e-e0bbe4234ce5_1200x628.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>ClickHouse stands out in database management systems (DBMS) for its speed and efficiency in processing large volumes of data. It is a column-oriented DBMS, which means it stores data in columns rather than rows. This design allows for faster query processing and less data storage space, making it ideal for analytics and observability.</p><p>Observability involves collecting and analysing data to gain insights into the performance of a system. This process requires a database that can handle large volumes of data and process queries quickly. ClickHouse is a popular choice for observability because it can process queries in milliseconds, even when dealing with terabytes of data.</p><p>At Codegiant, we integrate ClickHouse into our observability features to provide our users with a robust tool for monitoring and analysing system performance.</p><h2><strong>How Does ClickHouse Work?</strong></h2><p>ClickHouse operates on a unique principle that sets it apart from traditional database management systems. At its core, ClickHouse is a <strong>column-oriented</strong> database. This means that data is stored in columns instead of rows, which is typical in traditional databases. Here's a breakdown of how this works and why it matters:</p><h3><strong>Columnar Storage</strong></h3><p>In a column-oriented DBMS like ClickHouse, data is stored in columns instead of rows. This structure is advantageous for several reasons:</p><ol><li><p><strong>Efficient Data Access</strong>: When performing analytics, often only a few columns are needed. Columnar storage allows ClickHouse to read only the necessary data, skipping irrelevant data in other columns. This leads to faster query times and reduced I/O.</p></li><li><p><strong>Better Compression</strong>: Similar data in columns can be compressed more effectively than in row-oriented systems. ClickHouse utilizes various compression techniques, leading to significant storage space savings.</p></li><li><p><strong>Optimized for Analytics</strong>: Analytics queries often involve aggregations like COUNT, SUM, or AVG. Columnar storage enables ClickHouse to perform these operations more quickly by accessing only the relevant data.</p></li></ol><p>Here&#8217;s an illustrated comparison between row-oriented databases and column-oriented databases from the <a href="https://clickhouse.com/">ClickHouse</a> website:</p><p><strong>Row-oriented database</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lh7-us.googleusercontent.com/7tMzvnCfYH7nivAioAToUlM5-fgy1VYkXqKJPBPumU-ym2XT8CBvqQ-PBK93Q7rLMvO0Dq76lD5UXY7xheJXPCirDkpUwIsP2xE945L7r-MflCoTa_PUVyTllg4kDAi6cTS7S3fm9K2pVXAnc-bYYAo" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://lh7-us.googleusercontent.com/7tMzvnCfYH7nivAioAToUlM5-fgy1VYkXqKJPBPumU-ym2XT8CBvqQ-PBK93Q7rLMvO0Dq76lD5UXY7xheJXPCirDkpUwIsP2xE945L7r-MflCoTa_PUVyTllg4kDAi6cTS7S3fm9K2pVXAnc-bYYAo 424w, https://lh7-us.googleusercontent.com/7tMzvnCfYH7nivAioAToUlM5-fgy1VYkXqKJPBPumU-ym2XT8CBvqQ-PBK93Q7rLMvO0Dq76lD5UXY7xheJXPCirDkpUwIsP2xE945L7r-MflCoTa_PUVyTllg4kDAi6cTS7S3fm9K2pVXAnc-bYYAo 848w, https://lh7-us.googleusercontent.com/7tMzvnCfYH7nivAioAToUlM5-fgy1VYkXqKJPBPumU-ym2XT8CBvqQ-PBK93Q7rLMvO0Dq76lD5UXY7xheJXPCirDkpUwIsP2xE945L7r-MflCoTa_PUVyTllg4kDAi6cTS7S3fm9K2pVXAnc-bYYAo 1272w, https://lh7-us.googleusercontent.com/7tMzvnCfYH7nivAioAToUlM5-fgy1VYkXqKJPBPumU-ym2XT8CBvqQ-PBK93Q7rLMvO0Dq76lD5UXY7xheJXPCirDkpUwIsP2xE945L7r-MflCoTa_PUVyTllg4kDAi6cTS7S3fm9K2pVXAnc-bYYAo 1456w" sizes="100vw"><img src="https://lh7-us.googleusercontent.com/7tMzvnCfYH7nivAioAToUlM5-fgy1VYkXqKJPBPumU-ym2XT8CBvqQ-PBK93Q7rLMvO0Dq76lD5UXY7xheJXPCirDkpUwIsP2xE945L7r-MflCoTa_PUVyTllg4kDAi6cTS7S3fm9K2pVXAnc-bYYAo" width="724" height="360" data-attrs="{&quot;src&quot;:&quot;https://lh7-us.googleusercontent.com/7tMzvnCfYH7nivAioAToUlM5-fgy1VYkXqKJPBPumU-ym2XT8CBvqQ-PBK93Q7rLMvO0Dq76lD5UXY7xheJXPCirDkpUwIsP2xE945L7r-MflCoTa_PUVyTllg4kDAi6cTS7S3fm9K2pVXAnc-bYYAo&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:360,&quot;width&quot;:724,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://lh7-us.googleusercontent.com/7tMzvnCfYH7nivAioAToUlM5-fgy1VYkXqKJPBPumU-ym2XT8CBvqQ-PBK93Q7rLMvO0Dq76lD5UXY7xheJXPCirDkpUwIsP2xE945L7r-MflCoTa_PUVyTllg4kDAi6cTS7S3fm9K2pVXAnc-bYYAo 424w, https://lh7-us.googleusercontent.com/7tMzvnCfYH7nivAioAToUlM5-fgy1VYkXqKJPBPumU-ym2XT8CBvqQ-PBK93Q7rLMvO0Dq76lD5UXY7xheJXPCirDkpUwIsP2xE945L7r-MflCoTa_PUVyTllg4kDAi6cTS7S3fm9K2pVXAnc-bYYAo 848w, https://lh7-us.googleusercontent.com/7tMzvnCfYH7nivAioAToUlM5-fgy1VYkXqKJPBPumU-ym2XT8CBvqQ-PBK93Q7rLMvO0Dq76lD5UXY7xheJXPCirDkpUwIsP2xE945L7r-MflCoTa_PUVyTllg4kDAi6cTS7S3fm9K2pVXAnc-bYYAo 1272w, https://lh7-us.googleusercontent.com/7tMzvnCfYH7nivAioAToUlM5-fgy1VYkXqKJPBPumU-ym2XT8CBvqQ-PBK93Q7rLMvO0Dq76lD5UXY7xheJXPCirDkpUwIsP2xE945L7r-MflCoTa_PUVyTllg4kDAi6cTS7S3fm9K2pVXAnc-bYYAo 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Row-oriented database illustration from ClickHouse</figcaption></figure></div><p><strong>Column-oriented database</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lh7-us.googleusercontent.com/D-GUI4Y54yOxB5rOchYzf8ekJgrgJ-00SiyD4vzkRiXUSh-MIDfCOC3M9TNQPd5mSXKcJDbQOP0JEW5HaUbMtK8U8VghJNw2JrrePf0Xy_q_fAtyXBPABpZkCyKUyQcmzxkOiTxbSlluYFFMqWlrCKM" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://lh7-us.googleusercontent.com/D-GUI4Y54yOxB5rOchYzf8ekJgrgJ-00SiyD4vzkRiXUSh-MIDfCOC3M9TNQPd5mSXKcJDbQOP0JEW5HaUbMtK8U8VghJNw2JrrePf0Xy_q_fAtyXBPABpZkCyKUyQcmzxkOiTxbSlluYFFMqWlrCKM 424w, https://lh7-us.googleusercontent.com/D-GUI4Y54yOxB5rOchYzf8ekJgrgJ-00SiyD4vzkRiXUSh-MIDfCOC3M9TNQPd5mSXKcJDbQOP0JEW5HaUbMtK8U8VghJNw2JrrePf0Xy_q_fAtyXBPABpZkCyKUyQcmzxkOiTxbSlluYFFMqWlrCKM 848w, https://lh7-us.googleusercontent.com/D-GUI4Y54yOxB5rOchYzf8ekJgrgJ-00SiyD4vzkRiXUSh-MIDfCOC3M9TNQPd5mSXKcJDbQOP0JEW5HaUbMtK8U8VghJNw2JrrePf0Xy_q_fAtyXBPABpZkCyKUyQcmzxkOiTxbSlluYFFMqWlrCKM 1272w, https://lh7-us.googleusercontent.com/D-GUI4Y54yOxB5rOchYzf8ekJgrgJ-00SiyD4vzkRiXUSh-MIDfCOC3M9TNQPd5mSXKcJDbQOP0JEW5HaUbMtK8U8VghJNw2JrrePf0Xy_q_fAtyXBPABpZkCyKUyQcmzxkOiTxbSlluYFFMqWlrCKM 1456w" sizes="100vw"><img src="https://lh7-us.googleusercontent.com/D-GUI4Y54yOxB5rOchYzf8ekJgrgJ-00SiyD4vzkRiXUSh-MIDfCOC3M9TNQPd5mSXKcJDbQOP0JEW5HaUbMtK8U8VghJNw2JrrePf0Xy_q_fAtyXBPABpZkCyKUyQcmzxkOiTxbSlluYFFMqWlrCKM" width="722" height="353" data-attrs="{&quot;src&quot;:&quot;https://lh7-us.googleusercontent.com/D-GUI4Y54yOxB5rOchYzf8ekJgrgJ-00SiyD4vzkRiXUSh-MIDfCOC3M9TNQPd5mSXKcJDbQOP0JEW5HaUbMtK8U8VghJNw2JrrePf0Xy_q_fAtyXBPABpZkCyKUyQcmzxkOiTxbSlluYFFMqWlrCKM&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:353,&quot;width&quot;:722,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://lh7-us.googleusercontent.com/D-GUI4Y54yOxB5rOchYzf8ekJgrgJ-00SiyD4vzkRiXUSh-MIDfCOC3M9TNQPd5mSXKcJDbQOP0JEW5HaUbMtK8U8VghJNw2JrrePf0Xy_q_fAtyXBPABpZkCyKUyQcmzxkOiTxbSlluYFFMqWlrCKM 424w, https://lh7-us.googleusercontent.com/D-GUI4Y54yOxB5rOchYzf8ekJgrgJ-00SiyD4vzkRiXUSh-MIDfCOC3M9TNQPd5mSXKcJDbQOP0JEW5HaUbMtK8U8VghJNw2JrrePf0Xy_q_fAtyXBPABpZkCyKUyQcmzxkOiTxbSlluYFFMqWlrCKM 848w, https://lh7-us.googleusercontent.com/D-GUI4Y54yOxB5rOchYzf8ekJgrgJ-00SiyD4vzkRiXUSh-MIDfCOC3M9TNQPd5mSXKcJDbQOP0JEW5HaUbMtK8U8VghJNw2JrrePf0Xy_q_fAtyXBPABpZkCyKUyQcmzxkOiTxbSlluYFFMqWlrCKM 1272w, https://lh7-us.googleusercontent.com/D-GUI4Y54yOxB5rOchYzf8ekJgrgJ-00SiyD4vzkRiXUSh-MIDfCOC3M9TNQPd5mSXKcJDbQOP0JEW5HaUbMtK8U8VghJNw2JrrePf0Xy_q_fAtyXBPABpZkCyKUyQcmzxkOiTxbSlluYFFMqWlrCKM 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Column-oriented database illustration from ClickHouse</figcaption></figure></div><h3><strong>Query Processing</strong></h3><p>ClickHouse's query processing is optimized for speed, especially for read-heavy operations, which are common in analytics and observability:</p><ol><li><p><strong>Vectorized Query Execution</strong>: ClickHouse processes data in batches or 'vectors'. This approach allows for more efficient CPU utilization, as multiple data points are processed in a single CPU instruction.</p></li><li><p><strong>Data Skipping Indices</strong>: ClickHouse employs data skipping indices, which allow it to skip over blocks of data that do not contain relevant information for a query. This further speeds up query processing.</p></li><li><p><strong>Distributed Processing</strong>: For handling large datasets, ClickHouse can distribute queries across multiple nodes. This means that large queries can be broken down and processed in parallel, significantly reducing query times.</p></li><li><p><strong>Real-time Processing</strong>: ClickHouse is capable of real-time data processing, meaning it can ingest and process data as it arrives. This is crucial for observability applications where up-to-date information is essential.</p></li></ol><p>These features enable quick data retrieval, minimal storage requirements, and real-time data analysis, all of which are key in fields like observability where timely and efficient data processing is critical.</p><h3><strong>SQL Support</strong></h3><p>Despite its unique architecture, ClickHouse supports SQL for querying data. This makes it accessible if you're already familiar with SQL, allowing you to perform complex analytical queries without needing to learn a new query language. This is especially useful for observability, where users can leverage their existing SQL knowledge to perform complex analytics.</p><h2><strong>How Codegiant Uses ClickHouse for Observability</strong></h2><p>As Codegiant, we integrate ClickHouse into our observability tools to offer advanced monitoring and analytics capabilities to our users. Our focus is on empowering you with the data insights you need to understand and optimize your systems. Here's a closer look at how we utilize ClickHouse in our observability tools:</p><h3><strong>Centralised Log Management</strong></h3><p>We use ClickHouse to provide a centralised log management solution, helping you manage and query logs effectively. The columnar nature of ClickHouse enables the fast retrieval of relevant log data, which is crucial for rapid diagnostics and analytics.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lh7-us.googleusercontent.com/0c-Fet7ZpLAGPq9dvxLIajkLeJy1wyC-hFRSH8NUGXOVk9auASwZXpPoM5A0lMp9oYd_yrmljWq-J3wp-vhc-uRhx6Ts3xNM331UeEYZowe6h7pWmswsE0jKxbjIQ4PFHqXVRTFJUbq78yjfJwOjAAA" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://lh7-us.googleusercontent.com/0c-Fet7ZpLAGPq9dvxLIajkLeJy1wyC-hFRSH8NUGXOVk9auASwZXpPoM5A0lMp9oYd_yrmljWq-J3wp-vhc-uRhx6Ts3xNM331UeEYZowe6h7pWmswsE0jKxbjIQ4PFHqXVRTFJUbq78yjfJwOjAAA 424w, https://lh7-us.googleusercontent.com/0c-Fet7ZpLAGPq9dvxLIajkLeJy1wyC-hFRSH8NUGXOVk9auASwZXpPoM5A0lMp9oYd_yrmljWq-J3wp-vhc-uRhx6Ts3xNM331UeEYZowe6h7pWmswsE0jKxbjIQ4PFHqXVRTFJUbq78yjfJwOjAAA 848w, https://lh7-us.googleusercontent.com/0c-Fet7ZpLAGPq9dvxLIajkLeJy1wyC-hFRSH8NUGXOVk9auASwZXpPoM5A0lMp9oYd_yrmljWq-J3wp-vhc-uRhx6Ts3xNM331UeEYZowe6h7pWmswsE0jKxbjIQ4PFHqXVRTFJUbq78yjfJwOjAAA 1272w, https://lh7-us.googleusercontent.com/0c-Fet7ZpLAGPq9dvxLIajkLeJy1wyC-hFRSH8NUGXOVk9auASwZXpPoM5A0lMp9oYd_yrmljWq-J3wp-vhc-uRhx6Ts3xNM331UeEYZowe6h7pWmswsE0jKxbjIQ4PFHqXVRTFJUbq78yjfJwOjAAA 1456w" sizes="100vw"><img src="https://lh7-us.googleusercontent.com/0c-Fet7ZpLAGPq9dvxLIajkLeJy1wyC-hFRSH8NUGXOVk9auASwZXpPoM5A0lMp9oYd_yrmljWq-J3wp-vhc-uRhx6Ts3xNM331UeEYZowe6h7pWmswsE0jKxbjIQ4PFHqXVRTFJUbq78yjfJwOjAAA" width="2048" height="1164" data-attrs="{&quot;src&quot;:&quot;https://lh7-us.googleusercontent.com/0c-Fet7ZpLAGPq9dvxLIajkLeJy1wyC-hFRSH8NUGXOVk9auASwZXpPoM5A0lMp9oYd_yrmljWq-J3wp-vhc-uRhx6Ts3xNM331UeEYZowe6h7pWmswsE0jKxbjIQ4PFHqXVRTFJUbq78yjfJwOjAAA&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1164,&quot;width&quot;:2048,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://lh7-us.googleusercontent.com/0c-Fet7ZpLAGPq9dvxLIajkLeJy1wyC-hFRSH8NUGXOVk9auASwZXpPoM5A0lMp9oYd_yrmljWq-J3wp-vhc-uRhx6Ts3xNM331UeEYZowe6h7pWmswsE0jKxbjIQ4PFHqXVRTFJUbq78yjfJwOjAAA 424w, https://lh7-us.googleusercontent.com/0c-Fet7ZpLAGPq9dvxLIajkLeJy1wyC-hFRSH8NUGXOVk9auASwZXpPoM5A0lMp9oYd_yrmljWq-J3wp-vhc-uRhx6Ts3xNM331UeEYZowe6h7pWmswsE0jKxbjIQ4PFHqXVRTFJUbq78yjfJwOjAAA 848w, https://lh7-us.googleusercontent.com/0c-Fet7ZpLAGPq9dvxLIajkLeJy1wyC-hFRSH8NUGXOVk9auASwZXpPoM5A0lMp9oYd_yrmljWq-J3wp-vhc-uRhx6Ts3xNM331UeEYZowe6h7pWmswsE0jKxbjIQ4PFHqXVRTFJUbq78yjfJwOjAAA 1272w, https://lh7-us.googleusercontent.com/0c-Fet7ZpLAGPq9dvxLIajkLeJy1wyC-hFRSH8NUGXOVk9auASwZXpPoM5A0lMp9oYd_yrmljWq-J3wp-vhc-uRhx6Ts3xNM331UeEYZowe6h7pWmswsE0jKxbjIQ4PFHqXVRTFJUbq78yjfJwOjAAA 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>Real-Time Performance Monitoring</strong></h3><p>Codegiant integrates ClickHouse to capture and store detailed performance metrics efficiently. These metrics, visualized through Grafana, enable real-time monitoring, allowing you to track key metrics like memory usage and network traffic. This feature offers immediate insights into the operational health of various application components, such as database performance or server load.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lh7-us.googleusercontent.com/ytoHt4E7qtsApYL0s-8MT7Mu-_JyRSu0koyZOZp7baYg7X1hrDDIMLiqRFZgv3zXMW80UbOKA-w50IYKiFuA2Zd93Zk_U_XWAi1olk1MCSRZmvA_DTc80G1hQ6xYZ3PdLivJM3FT6LCf2jyzsVNSX7E" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://lh7-us.googleusercontent.com/ytoHt4E7qtsApYL0s-8MT7Mu-_JyRSu0koyZOZp7baYg7X1hrDDIMLiqRFZgv3zXMW80UbOKA-w50IYKiFuA2Zd93Zk_U_XWAi1olk1MCSRZmvA_DTc80G1hQ6xYZ3PdLivJM3FT6LCf2jyzsVNSX7E 424w, https://lh7-us.googleusercontent.com/ytoHt4E7qtsApYL0s-8MT7Mu-_JyRSu0koyZOZp7baYg7X1hrDDIMLiqRFZgv3zXMW80UbOKA-w50IYKiFuA2Zd93Zk_U_XWAi1olk1MCSRZmvA_DTc80G1hQ6xYZ3PdLivJM3FT6LCf2jyzsVNSX7E 848w, https://lh7-us.googleusercontent.com/ytoHt4E7qtsApYL0s-8MT7Mu-_JyRSu0koyZOZp7baYg7X1hrDDIMLiqRFZgv3zXMW80UbOKA-w50IYKiFuA2Zd93Zk_U_XWAi1olk1MCSRZmvA_DTc80G1hQ6xYZ3PdLivJM3FT6LCf2jyzsVNSX7E 1272w, https://lh7-us.googleusercontent.com/ytoHt4E7qtsApYL0s-8MT7Mu-_JyRSu0koyZOZp7baYg7X1hrDDIMLiqRFZgv3zXMW80UbOKA-w50IYKiFuA2Zd93Zk_U_XWAi1olk1MCSRZmvA_DTc80G1hQ6xYZ3PdLivJM3FT6LCf2jyzsVNSX7E 1456w" sizes="100vw"><img src="https://lh7-us.googleusercontent.com/ytoHt4E7qtsApYL0s-8MT7Mu-_JyRSu0koyZOZp7baYg7X1hrDDIMLiqRFZgv3zXMW80UbOKA-w50IYKiFuA2Zd93Zk_U_XWAi1olk1MCSRZmvA_DTc80G1hQ6xYZ3PdLivJM3FT6LCf2jyzsVNSX7E" width="2048" height="911" data-attrs="{&quot;src&quot;:&quot;https://lh7-us.googleusercontent.com/ytoHt4E7qtsApYL0s-8MT7Mu-_JyRSu0koyZOZp7baYg7X1hrDDIMLiqRFZgv3zXMW80UbOKA-w50IYKiFuA2Zd93Zk_U_XWAi1olk1MCSRZmvA_DTc80G1hQ6xYZ3PdLivJM3FT6LCf2jyzsVNSX7E&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:911,&quot;width&quot;:2048,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://lh7-us.googleusercontent.com/ytoHt4E7qtsApYL0s-8MT7Mu-_JyRSu0koyZOZp7baYg7X1hrDDIMLiqRFZgv3zXMW80UbOKA-w50IYKiFuA2Zd93Zk_U_XWAi1olk1MCSRZmvA_DTc80G1hQ6xYZ3PdLivJM3FT6LCf2jyzsVNSX7E 424w, https://lh7-us.googleusercontent.com/ytoHt4E7qtsApYL0s-8MT7Mu-_JyRSu0koyZOZp7baYg7X1hrDDIMLiqRFZgv3zXMW80UbOKA-w50IYKiFuA2Zd93Zk_U_XWAi1olk1MCSRZmvA_DTc80G1hQ6xYZ3PdLivJM3FT6LCf2jyzsVNSX7E 848w, https://lh7-us.googleusercontent.com/ytoHt4E7qtsApYL0s-8MT7Mu-_JyRSu0koyZOZp7baYg7X1hrDDIMLiqRFZgv3zXMW80UbOKA-w50IYKiFuA2Zd93Zk_U_XWAi1olk1MCSRZmvA_DTc80G1hQ6xYZ3PdLivJM3FT6LCf2jyzsVNSX7E 1272w, https://lh7-us.googleusercontent.com/ytoHt4E7qtsApYL0s-8MT7Mu-_JyRSu0koyZOZp7baYg7X1hrDDIMLiqRFZgv3zXMW80UbOKA-w50IYKiFuA2Zd93Zk_U_XWAi1olk1MCSRZmvA_DTc80G1hQ6xYZ3PdLivJM3FT6LCf2jyzsVNSX7E 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>Customizable Dashboards</strong></h3><p>We also harness ClickHouse&#8217;s SQL capabilities directly in our dashboarding feature, giving you precise control over your observability data. You can construct SQL queries to extract specific data points, like user activity or system errors, and visualize them in a way that makes the most sense to you.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lh7-us.googleusercontent.com/n_7lsnx9UT_PXYnR2ube0IQGs-HDUAz6xDDyzmHcFdruxVxabB-2Orvcc_5mxqjcIrRS0EpzT5AZb9W-P5FwXjNnng_i0R4UsEeieM7rk1ImFUzR2O6sJyDkaV9zwmbpbW1jSjwqijKnFz_DPxKnKb8" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://lh7-us.googleusercontent.com/n_7lsnx9UT_PXYnR2ube0IQGs-HDUAz6xDDyzmHcFdruxVxabB-2Orvcc_5mxqjcIrRS0EpzT5AZb9W-P5FwXjNnng_i0R4UsEeieM7rk1ImFUzR2O6sJyDkaV9zwmbpbW1jSjwqijKnFz_DPxKnKb8 424w, https://lh7-us.googleusercontent.com/n_7lsnx9UT_PXYnR2ube0IQGs-HDUAz6xDDyzmHcFdruxVxabB-2Orvcc_5mxqjcIrRS0EpzT5AZb9W-P5FwXjNnng_i0R4UsEeieM7rk1ImFUzR2O6sJyDkaV9zwmbpbW1jSjwqijKnFz_DPxKnKb8 848w, https://lh7-us.googleusercontent.com/n_7lsnx9UT_PXYnR2ube0IQGs-HDUAz6xDDyzmHcFdruxVxabB-2Orvcc_5mxqjcIrRS0EpzT5AZb9W-P5FwXjNnng_i0R4UsEeieM7rk1ImFUzR2O6sJyDkaV9zwmbpbW1jSjwqijKnFz_DPxKnKb8 1272w, https://lh7-us.googleusercontent.com/n_7lsnx9UT_PXYnR2ube0IQGs-HDUAz6xDDyzmHcFdruxVxabB-2Orvcc_5mxqjcIrRS0EpzT5AZb9W-P5FwXjNnng_i0R4UsEeieM7rk1ImFUzR2O6sJyDkaV9zwmbpbW1jSjwqijKnFz_DPxKnKb8 1456w" sizes="100vw"><img src="https://lh7-us.googleusercontent.com/n_7lsnx9UT_PXYnR2ube0IQGs-HDUAz6xDDyzmHcFdruxVxabB-2Orvcc_5mxqjcIrRS0EpzT5AZb9W-P5FwXjNnng_i0R4UsEeieM7rk1ImFUzR2O6sJyDkaV9zwmbpbW1jSjwqijKnFz_DPxKnKb8" width="1986" height="1288" data-attrs="{&quot;src&quot;:&quot;https://lh7-us.googleusercontent.com/n_7lsnx9UT_PXYnR2ube0IQGs-HDUAz6xDDyzmHcFdruxVxabB-2Orvcc_5mxqjcIrRS0EpzT5AZb9W-P5FwXjNnng_i0R4UsEeieM7rk1ImFUzR2O6sJyDkaV9zwmbpbW1jSjwqijKnFz_DPxKnKb8&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1288,&quot;width&quot;:1986,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://lh7-us.googleusercontent.com/n_7lsnx9UT_PXYnR2ube0IQGs-HDUAz6xDDyzmHcFdruxVxabB-2Orvcc_5mxqjcIrRS0EpzT5AZb9W-P5FwXjNnng_i0R4UsEeieM7rk1ImFUzR2O6sJyDkaV9zwmbpbW1jSjwqijKnFz_DPxKnKb8 424w, https://lh7-us.googleusercontent.com/n_7lsnx9UT_PXYnR2ube0IQGs-HDUAz6xDDyzmHcFdruxVxabB-2Orvcc_5mxqjcIrRS0EpzT5AZb9W-P5FwXjNnng_i0R4UsEeieM7rk1ImFUzR2O6sJyDkaV9zwmbpbW1jSjwqijKnFz_DPxKnKb8 848w, https://lh7-us.googleusercontent.com/n_7lsnx9UT_PXYnR2ube0IQGs-HDUAz6xDDyzmHcFdruxVxabB-2Orvcc_5mxqjcIrRS0EpzT5AZb9W-P5FwXjNnng_i0R4UsEeieM7rk1ImFUzR2O6sJyDkaV9zwmbpbW1jSjwqijKnFz_DPxKnKb8 1272w, https://lh7-us.googleusercontent.com/n_7lsnx9UT_PXYnR2ube0IQGs-HDUAz6xDDyzmHcFdruxVxabB-2Orvcc_5mxqjcIrRS0EpzT5AZb9W-P5FwXjNnng_i0R4UsEeieM7rk1ImFUzR2O6sJyDkaV9zwmbpbW1jSjwqijKnFz_DPxKnKb8 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>Scalability and Reliability</strong></h3><p>With Codegiant, the horizontal scalability of ClickHouse ensures our observability tools effectively handle increasing data volumes from your applications. This capability ensures that as your business grows, you continue to monitor your systems effectively and without performance compromise.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://lh7-us.googleusercontent.com/tzqUeFcu5jMfgg4XtJPVSMdmEeo5VdjPp9o_bZbEs4MVTppd7ulrJPWxFO7PlmK3B-p4aaqWZqrj4XytzHjvbJSHErvtZPR0kLTYZ91IW2poa1Eh35sSe7GzWPHar2kPwJjhFnvlqs1SESve4rECypY" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://lh7-us.googleusercontent.com/tzqUeFcu5jMfgg4XtJPVSMdmEeo5VdjPp9o_bZbEs4MVTppd7ulrJPWxFO7PlmK3B-p4aaqWZqrj4XytzHjvbJSHErvtZPR0kLTYZ91IW2poa1Eh35sSe7GzWPHar2kPwJjhFnvlqs1SESve4rECypY 424w, https://lh7-us.googleusercontent.com/tzqUeFcu5jMfgg4XtJPVSMdmEeo5VdjPp9o_bZbEs4MVTppd7ulrJPWxFO7PlmK3B-p4aaqWZqrj4XytzHjvbJSHErvtZPR0kLTYZ91IW2poa1Eh35sSe7GzWPHar2kPwJjhFnvlqs1SESve4rECypY 848w, https://lh7-us.googleusercontent.com/tzqUeFcu5jMfgg4XtJPVSMdmEeo5VdjPp9o_bZbEs4MVTppd7ulrJPWxFO7PlmK3B-p4aaqWZqrj4XytzHjvbJSHErvtZPR0kLTYZ91IW2poa1Eh35sSe7GzWPHar2kPwJjhFnvlqs1SESve4rECypY 1272w, https://lh7-us.googleusercontent.com/tzqUeFcu5jMfgg4XtJPVSMdmEeo5VdjPp9o_bZbEs4MVTppd7ulrJPWxFO7PlmK3B-p4aaqWZqrj4XytzHjvbJSHErvtZPR0kLTYZ91IW2poa1Eh35sSe7GzWPHar2kPwJjhFnvlqs1SESve4rECypY 1456w" sizes="100vw"><img src="https://lh7-us.googleusercontent.com/tzqUeFcu5jMfgg4XtJPVSMdmEeo5VdjPp9o_bZbEs4MVTppd7ulrJPWxFO7PlmK3B-p4aaqWZqrj4XytzHjvbJSHErvtZPR0kLTYZ91IW2poa1Eh35sSe7GzWPHar2kPwJjhFnvlqs1SESve4rECypY" width="2048" height="1247" data-attrs="{&quot;src&quot;:&quot;https://lh7-us.googleusercontent.com/tzqUeFcu5jMfgg4XtJPVSMdmEeo5VdjPp9o_bZbEs4MVTppd7ulrJPWxFO7PlmK3B-p4aaqWZqrj4XytzHjvbJSHErvtZPR0kLTYZ91IW2poa1Eh35sSe7GzWPHar2kPwJjhFnvlqs1SESve4rECypY&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1247,&quot;width&quot;:2048,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://lh7-us.googleusercontent.com/tzqUeFcu5jMfgg4XtJPVSMdmEeo5VdjPp9o_bZbEs4MVTppd7ulrJPWxFO7PlmK3B-p4aaqWZqrj4XytzHjvbJSHErvtZPR0kLTYZ91IW2poa1Eh35sSe7GzWPHar2kPwJjhFnvlqs1SESve4rECypY 424w, https://lh7-us.googleusercontent.com/tzqUeFcu5jMfgg4XtJPVSMdmEeo5VdjPp9o_bZbEs4MVTppd7ulrJPWxFO7PlmK3B-p4aaqWZqrj4XytzHjvbJSHErvtZPR0kLTYZ91IW2poa1Eh35sSe7GzWPHar2kPwJjhFnvlqs1SESve4rECypY 848w, https://lh7-us.googleusercontent.com/tzqUeFcu5jMfgg4XtJPVSMdmEeo5VdjPp9o_bZbEs4MVTppd7ulrJPWxFO7PlmK3B-p4aaqWZqrj4XytzHjvbJSHErvtZPR0kLTYZ91IW2poa1Eh35sSe7GzWPHar2kPwJjhFnvlqs1SESve4rECypY 1272w, https://lh7-us.googleusercontent.com/tzqUeFcu5jMfgg4XtJPVSMdmEeo5VdjPp9o_bZbEs4MVTppd7ulrJPWxFO7PlmK3B-p4aaqWZqrj4XytzHjvbJSHErvtZPR0kLTYZ91IW2poa1Eh35sSe7GzWPHar2kPwJjhFnvlqs1SESve4rECypY 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Conclusion</strong></h2><p>In wrapping up our discussion on ClickHouse, we've seen how its specialized columnar storage and query efficiency make it an ideal fit for handling the extensive data demands of modern observability platforms. Specifically, in the case of Codegiant, we integrate ClickHouse into our observability features to provide users with detailed, real-time insights into system performance and the ability to monitor and analyse data efficiently.</p><p>ClickHouse's integration means faster, more accurate troubleshooting and improved system performance monitoring. This directly translates into more efficient development processes and potentially less downtime for end-users.</p><p>If you like this article, please hit the share button and help us spread the word. Also, feel free to leave a comment below if you have any questions or feedback.</p><p>Happy building!</p>]]></content:encoded></item><item><title><![CDATA[The Evolution of Software Creation: IDPs and the Future of Development]]></title><description><![CDATA[Integrated Development Platforms (IDPs) are reshaping how we develop, deploy, and maintain software. In this article, we'll dive into the world of IDPs, exploring how they're changing the game by offering more integrated, cohesive solutions to the challen]]></description><link>https://blog.codegiant.io/p/idps-and-the-future-of-development</link><guid isPermaLink="false">https://blog.codegiant.io/p/idps-and-the-future-of-development</guid><dc:creator><![CDATA[Codegiant]]></dc:creator><pubDate>Wed, 06 Dec 2023 10:48:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/940bec7c-d3f1-4a6c-8a08-0ea962ce3817_1200x628.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XYPX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40be1ecf-133a-4842-a4f8-cc5dcce449bb_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XYPX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40be1ecf-133a-4842-a4f8-cc5dcce449bb_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XYPX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40be1ecf-133a-4842-a4f8-cc5dcce449bb_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XYPX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40be1ecf-133a-4842-a4f8-cc5dcce449bb_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XYPX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40be1ecf-133a-4842-a4f8-cc5dcce449bb_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XYPX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40be1ecf-133a-4842-a4f8-cc5dcce449bb_1200x628.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/40be1ecf-133a-4842-a4f8-cc5dcce449bb_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XYPX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40be1ecf-133a-4842-a4f8-cc5dcce449bb_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XYPX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40be1ecf-133a-4842-a4f8-cc5dcce449bb_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XYPX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40be1ecf-133a-4842-a4f8-cc5dcce449bb_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XYPX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40be1ecf-133a-4842-a4f8-cc5dcce449bb_1200x628.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><h2><strong>Introduction</strong></h2><p>Software development tools have come a long way. From basic code editors to complex suites, these tools have evolved to meet the growing challenges of software projects. Today, we're seeing a significant shift towards Integrated Development Platforms (IDPs). These platforms are reshaping how we develop, deploy, and maintain software. In this article, we'll explore how IDPs are changing the game by offering more integrated, cohesive solutions to the challenges faced by modern development teams.</p><h2><strong>What are Integrated Development Platforms (IDPs)</strong></h2><p>An Integrated Development Platform (IDP) is more than just a tool; it's an entire ecosystem for software development. It differs from the traditional tools by bringing together coding, testing, deployment, and collaboration under one roof. This integration is critical. It addresses a major pain point in software development: the fragmentation of workflows. By combining various aspects of the development process, IDPs streamline workflows, reduce the need for context switching, and improve team collaboration. They're about making life easier for developers, testers, and project managers alike, ensuring that everyone works in sync and more efficiently.</p><h2><strong>Key Features of IDPs</strong></h2><p>IDPs are equipped with a range of features that set them apart from traditional development tools. Let&#8217;s discuss them.</p><h3><strong>Collaboration Tools</strong></h3><p>One of the standout features of IDPs is their emphasis on collaboration. These platforms facilitate better communication and coordination among team members. Features like integrated docs, task assignments, and real-time code sharing and reviewing make it easier for teams to work together effectively, regardless of their physical location.</p><h3><strong>Project Management and Issue Tracking</strong></h3><p>Project management is integral to software development, and IDPs integrate these capabilities seamlessly. They offer tools for tracking progress, managing backlogs, and prioritizing tasks. Issue tracking systems within IDPs allow teams to log, monitor, and resolve issues efficiently, ensuring that nothing slips through the cracks.</p><h3><strong>Source Code Management and Version Control</strong></h3><p>IDPs include built-in source code management tools, allowing teams to handle version control without leaving the platform. This integration simplifies managing code changes, reviewing history, and collaborating on code, making the development process more streamlined and error-proof.</p><h3><strong>Continuous Integration/Continuous Deployment (CI/CD)</strong></h3><p>Automation is key in modern development, and IDPs shine here with their CI/CD capabilities. They automate the process of building, testing, and deploying software, reducing the manual effort required and speeding up the release cycle.</p><p><strong>Observability and Monitoring</strong></p><p>Essential for maintaining the health and performance of applications, observability and monitoring tools in IDPs provide real-time insights into software systems. These tools help teams track metrics, logs, and traces, enabling them to quickly identify and resolve issues, optimize performance, and ensure high availability.</p><h3><strong>Cloud-Based Development Environments (and ephemeral testing environments)</strong></h3><p>The ability to develop and test in cloud-based environments is another critical feature of IDPs. These environments provide scalability, accessibility, and consistency, ensuring that developers have the resources they need when they need them. Ephemeral testing environments, which are created on-demand and discarded after use, offer flexibility and efficiency in testing.</p><h3><strong>Chaos Engineering Tools</strong></h3><p>Proactively testing and improving system resilience is essential, and many IDPs now include chaos engineering tools. These tools help teams anticipate and mitigate potential failures, ensuring the robustness of their systems.</p><h3><strong>Customizable Environments</strong></h3><p>Every project has unique needs, and IDPs acknowledge this by offering customizable environments. Teams can tailor the platform to fit their specific workflow and project requirements, making the development process more efficient and effective.</p><h2><strong>IDPs vs. IDEs: Understanding the Differences</strong></h2><p>While Integrated Development Environments (IDEs) and Integrated Development Platforms (IDPs) sound alike, it's important to understand their differences.</p><p>IDEs primarily focus on code creation and debugging. They offer a rich set of tools for writing, editing, testing, and debugging code. However, their scope is generally limited to these areas.</p><p>On the other hand, IDPs offer a broader range of functionalities. They not only include the features of an IDE but also extend into areas like project management, team collaboration, continuous integration and deployment, application performance monitoring and more. The key difference lies in the scope and integration of these tools. IDPs provide a more holistic approach to software development, covering the entire lifecycle of a project, from inception to deployment and maintenance.</p><p>This broader scope makes IDPs particularly valuable in today&#8217;s fast-paced, collaborative, and multifaceted software development environment. They address the need for a more integrated, cohesive approach to managing complex software projects, making them an essential tool in modern software development.</p><h2><strong>The Role of IDPs in Modern Software Development</strong></h2><p>Integrated Development Platforms (IDPs) are reshaping the landscape of modern software development by aligning with and addressing its evolving needs. These platforms are particularly significant in the context of current development trends and challenges.</p><p><strong>Meeting the Demands of Remote Work and Agile Methodologies:</strong> With the rise of remote work and agile methodologies, the need for tools that support flexibility, collaboration, and rapid iteration has become paramount. IDPs cater to this by providing an environment where remote teams can work together seamlessly and agile practices can be implemented effectively.</p><p><strong>Facilitating Scalability and Flexibility:</strong> The scalability and flexibility offered by IDPs are essential in managing the dynamic nature of modern software projects. Whether it&#8217;s scaling up to accommodate growing user bases or adapting to changing project requirements, IDPs provide the necessary tools and infrastructure to manage these changes efficiently.</p><p><strong>Enhancing Productivity and Efficiency:</strong> By integrating various aspects of the software development lifecycle, IDPs help streamline processes and reduce inefficiencies. This integration minimizes context switching and simplifies the workflow, leading to increased productivity and efficiency.</p><p><strong>Improving Quality and Reducing Time to Market:</strong> The continuous integration and deployment capabilities of IDPs play a crucial role in enhancing the quality of software products and reducing time to market. Automated testing and deployment ensure that code is rigorously tested and quickly deployed, leading to a faster release cycle and a higher quality end product.</p><p><strong>Supporting a Diverse Range of Projects and Technologies:</strong> Modern software development involves a wide range of projects and technologies. IDPs are designed to be versatile, supporting various programming languages, frameworks, and tools. This versatility makes them suitable for a wide range of projects, from web applications to complex enterprise systems.</p><p>In essence, IDPs are not just tools but catalysts for efficient, collaborative, and high-quality software development. They are designed to meet the challenges of modern software projects, providing an environment that is conducive to the collaborative, and fast-paced nature of today's software development space.</p><h2><strong>Conclusion</strong></h2><p>Integrated Development Platforms (IDPs) have reshaped our approach to software development. They are essential for teams handling complex projects and needing to adjust quickly. Codegiant stands out as a definitive leader in this space, offering all the necessary tools and functionalities that modern development demands.</p><p>What sets Codegiant apart isn't just its comprehensive toolkit; it's how it balances powerful features with a user-friendly interface. This combination is important in environments where agility and collaboration are crucial. By embracing IDPs, development teams can not only accelerate their processes but also improve the quality and reliability of their software products in a tech landscape that's constantly evolving.</p>]]></content:encoded></item><item><title><![CDATA[Breaking Down DevSecOps: What It Means for Modern Development]]></title><description><![CDATA[DevSecOps stitches security into the DevOps process, aiming to build software that's as secure as it is functional, right from the first line of code.]]></description><link>https://blog.codegiant.io/p/breaking-down-devsecops-what-it-means-for-modern-development</link><guid isPermaLink="false">https://blog.codegiant.io/p/breaking-down-devsecops-what-it-means-for-modern-development</guid><dc:creator><![CDATA[Codegiant]]></dc:creator><pubDate>Tue, 28 Nov 2023 10:38:08 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3775dfc1-d7c7-4baf-8a3b-6f6ca2979966_1200x628.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QTkV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e9d2a5-4a5c-4490-a129-0a28b3ac261b_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QTkV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e9d2a5-4a5c-4490-a129-0a28b3ac261b_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QTkV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e9d2a5-4a5c-4490-a129-0a28b3ac261b_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QTkV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e9d2a5-4a5c-4490-a129-0a28b3ac261b_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QTkV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e9d2a5-4a5c-4490-a129-0a28b3ac261b_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QTkV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e9d2a5-4a5c-4490-a129-0a28b3ac261b_1200x628.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1e9d2a5-4a5c-4490-a129-0a28b3ac261b_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Thumbnail: Breaking Down DevSecOps&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Thumbnail: Breaking Down DevSecOps" title="Thumbnail: Breaking Down DevSecOps" srcset="https://substackcdn.com/image/fetch/$s_!QTkV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e9d2a5-4a5c-4490-a129-0a28b3ac261b_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QTkV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e9d2a5-4a5c-4490-a129-0a28b3ac261b_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QTkV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e9d2a5-4a5c-4490-a129-0a28b3ac261b_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QTkV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1e9d2a5-4a5c-4490-a129-0a28b3ac261b_1200x628.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>DevSecOps stitches security into the DevOps process, aiming to build software that's as secure as it is functional, right from the first line of code. It's a shift in mindset: instead of bolting on security features at the end, DevSecOps weaves them into every stage, making sure that the fast pace of development doesn't leave vulnerabilities in its wake.</p><p>For developers, this means adjusting workflows to include security checks and balances from the get-go. For security teams, it's about engaging earlier in the development cycle. And for the business, it translates to <strong>delivering products that customers can trust,</strong> without sacrificing speed. The goal here is clear&#8212;create a process where security and development aren't at odds but are part of the same team, driving towards the same finish line. This article will walk you through what DevSecOps looks like in the day-to-day of modern software development, and how to implement it properly.</p><h2><strong>What is DevSecOps?</strong></h2><p>DevSecOps is the fusion of development, security, and operations into a unified approach to software development. It's a direct response to the challenges posed by traditional software development practices where security was often an afterthought, leading to costly and time-consuming fixes late in the software release cycle.</p><p>The "Sec" in DevSecOps is what sets it apart. It's about introducing security early in the software development lifecycle and keeping it there&#8212;through every update, every iteration, every release.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Uhad!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed10ecb-36d1-4b75-96dd-06798dc239aa_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Uhad!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed10ecb-36d1-4b75-96dd-06798dc239aa_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Uhad!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed10ecb-36d1-4b75-96dd-06798dc239aa_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Uhad!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed10ecb-36d1-4b75-96dd-06798dc239aa_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Uhad!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed10ecb-36d1-4b75-96dd-06798dc239aa_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Uhad!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed10ecb-36d1-4b75-96dd-06798dc239aa_1200x628.jpeg" width="1200" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8ed10ecb-36d1-4b75-96dd-06798dc239aa_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Uhad!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed10ecb-36d1-4b75-96dd-06798dc239aa_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Uhad!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed10ecb-36d1-4b75-96dd-06798dc239aa_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Uhad!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed10ecb-36d1-4b75-96dd-06798dc239aa_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Uhad!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed10ecb-36d1-4b75-96dd-06798dc239aa_1200x628.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This approach doesn't just apply to the code but to everything: from the people involved in the process to the tools they use, and the culture that surrounds them. DevSecOps calls for automated security checks, where possible, to keep pace with continuous integration and deployment. It promotes collaboration between teams that might once have worked separately, encouraging a shared responsibility for security.</p><p>In practice, implementing DevSecOps means that every developer becomes a security team member, and every security team member gets involved in the development process. It's a collaborative effort that seeks to ensure that the final product is as free from vulnerabilities as possible without hindering the development speed.</p><h2><strong>The Benefits of DevSecOps</strong></h2><p>Adopting a DevSecOps model brings several tangible benefits to both the development process and the final software product. Let's break down the core advantages:</p><h3><strong>Enhanced Security Posture</strong></h3><p>By integrating security practices throughout the development cycle, potential vulnerabilities are identified and remediated early. This proactive stance significantly reduces the risk of security incidents post-deployment.</p><h3><strong>Speed and Efficiency</strong></h3><p>Security checks and tests that are automated and integrated into the CI/CD pipeline help maintain the pace of development without compromising security. This means security becomes a part of the development, not an obstacle to it.</p><h3><strong>Cost-Effectiveness</strong></h3><p>Catching security issues early is far less costly than fixing them after a product has been deployed. Early detection helps avoid the expenses associated with downtime, data breaches, and compliance penalties.</p><h3><strong>Compliance Management</strong></h3><p>With regulations becoming stricter, DevSecOps helps ensure that compliance is baked into the product by default, easing the compliance burden and reducing the risk of non-compliance.</p><h3><strong>Improved Collaboration</strong></h3><p>DevSecOps encourages a culture of open communication between development, operations, and security teams, fostering better teamwork and more efficient problem-solving.</p><h3><strong>Higher Product Quality</strong></h3><p>Secure design and architecture from the outset lead to a more reliable and robust software product, increasing customer trust and satisfaction.</p><h3><strong>Continuous Improvement</strong></h3><p>The iterative nature of DevSecOps, with ongoing testing and feedback loops, means that security is continuously improved upon&#8212;a crucial factor in the ever-evolving threat landscape.</p><h2><strong>Key Principles of DevSecOps</strong></h2><p>The shift to DevSecOps revolves around several core principles that guide its practices and methodologies. These principles are designed to embed security into the development lifecycle seamlessly. Here&#8217;s an overview of the main ones:</p><ul><li><p><strong>Automation: </strong>Automation is the heartbeat of DevSecOps. From code scanning to compliance monitoring, automating security tasks ensures they are performed consistently and without human error. It allows for frequent and regular security assessments without slowing down the development process.</p></li><li><p><strong>Security as a Priority:</strong> In DevSecOps, security is not an add-on but a priority from the start. Security requirements are considered as fundamental as functional requirements. This security-first mindset ensures that every feature, every line of code, is evaluated for potential risks.</p></li><li><p><strong>Continuous Integration/Continuous Deployment (CI/CD)</strong>: DevSecOps thrives on CI/CD practices, which allow for the rapid integration of code changes into a central repository, followed by automated deployment. This ensures that security updates and patches are delivered quickly and frequently, minimizing the window of vulnerability that could be exploited by attackers.</p></li></ul><p>By adhering to these principles, organizations can create a DevSecOps culture where security is a shared responsibility and an essential part of the development and deployment process.</p><h2><strong>Implementing DevSecOps: A Step-by-Step Approach</strong></h2><p>Implementing DevSecOps can seem daunting, but with a strategic approach and the right tools, it can be streamlined effectively. Here's a high-level roadmap to guide you through the process:</p><h3><strong>1. Assess Current Practices</strong></h3><p>Start with a comprehensive audit of your existing development, operations, and security practices. Identify areas where security can be integrated and plan for the necessary tools and training that will be needed.</p><h3><strong>2. Cultivate a Collaborative Culture</strong></h3><p>Foster a culture where security, development, and operations teams collaborate closely. This often involves cross-training and using shared tools and processes. For example, tools like Codegiant, Jira, and Asana are good for collaborating, planning, and tracking issues across teams.</p><h3><strong>3. Integrate the right tools and automate security processes</strong></h3><p>Select and integrate tools that support automation for continuous integration, continuous deployment, and security. Codegiant can also be instrumental in this phase, providing a suite of tools that facilitate automated code and image scanning, vulnerability detection, and compliance monitoring.</p><h3><strong>4. Incorporate Continuous Monitoring</strong></h3><p>Implement monitoring tools to continuously scan for and alert on security issues in production environments.</p><h3><strong>5. Develop Incident Response Plans</strong></h3><p>Develop an incident response plan that allows for quick reaction to security issues. This plan should be regularly updated and practiced.</p><h3><strong>6. Feedback Loops</strong></h3><p>Establish feedback mechanisms to ensure continuous learning and improvement. This includes post-incident reviews and sharing lessons learned across teams.</p><h3><strong>7. Measure and Improve</strong></h3><p>To gauge the effectiveness of your DevSecOps initiatives, metrics are crucial. Use application performance management (APM) tools like New Relic, Datadog, or Codegiant&#8217;s APM features to track performance metrics and KPIs that reflect your security posture. Codegiant&#8217;s integrated error and APM tracing, along with real-time notifications, make it a robust option for monitoring and improving application performance.</p><p>Remember, implementing DevSecOps is not a one-time project but a continual process of improvement and adaptation. DevSecOps is dynamic, and as your organization grows and adapts, so should your security practices.</p><h2><strong>Conclusion</strong></h2><p>DevSecOps is critical for modern software development. By Integrating security from the start, developers can build safer applications more efficiently.</p><p>While Codegiant offers a solid platform with integrated tools that facilitate this approach, remember that the effectiveness of DevSecOps relies on how well a team adopts and implements these practices. It's not only about the tools you use but also about the commitment to a process that prioritizes security at every step.</p><p>Choose tools that fit seamlessly into your workflow and focus on fostering a team culture that values proactive security measures. This commitment is what will ultimately define the success of your DevSecOps initiatives.</p><p>If you learnt from this article, share your thoughts in the comments. And if you want to read more articles like this, consider hitting the "Subscribe" button on the bottom-right. Stay Curious, Keep Building!</p>]]></content:encoded></item><item><title><![CDATA[Automating Serverless Deployment of Lambda Functions with Terraform using Codegiant’s CI/CD]]></title><description><![CDATA[Agenda]]></description><link>https://blog.codegiant.io/p/automating-serverless-deployment-of-lambda-function-with-terraform-using-codegiants-ci-cd</link><guid isPermaLink="false">https://blog.codegiant.io/p/automating-serverless-deployment-of-lambda-function-with-terraform-using-codegiants-ci-cd</guid><dc:creator><![CDATA[Codegiant]]></dc:creator><pubDate>Tue, 08 Aug 2023 04:53:29 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/54a2668e-654d-4d6f-85f9-1c6b0d936ea6_1200x628.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!A6Bz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e964b-8714-4289-bb85-945666e0f47f_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!A6Bz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e964b-8714-4289-bb85-945666e0f47f_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!A6Bz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e964b-8714-4289-bb85-945666e0f47f_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!A6Bz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e964b-8714-4289-bb85-945666e0f47f_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!A6Bz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e964b-8714-4289-bb85-945666e0f47f_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!A6Bz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e964b-8714-4289-bb85-945666e0f47f_1200x628.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a8e964b-8714-4289-bb85-945666e0f47f_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!A6Bz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e964b-8714-4289-bb85-945666e0f47f_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!A6Bz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e964b-8714-4289-bb85-945666e0f47f_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!A6Bz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e964b-8714-4289-bb85-945666e0f47f_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!A6Bz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a8e964b-8714-4289-bb85-945666e0f47f_1200x628.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><h3>Agenda</h3><ol><li><p>Create and test your Python file locally.</p></li><li><p>Create and test your terraform files to create AWS Lambda.</p></li><li><p>Push terraform and infra code into the repo, in this case, it is Codegaint GIT repo.</p></li><li><p>Import your repo to Codegiant&#8217;s workspace.</p></li><li><p>Add <em>.codegiant-ci.yml </em>in the workspace.</p></li><li><p>Update your <em>.codegiant-ci.yml </em>file as per need, and run the pipeline.</p></li></ol><h3>Deploy Python code locally</h3><pre><code>import json
def lambda_handler():
    return {
        'statusCode': 200,
        'body': json.dumps("Hello World, I'm Codegiant's CI/CD pipeline")
    }
print(lambda_handler())
</code></pre><p>The provided code snippet gracefully crafts a Python function named "<strong>lambda_handler</strong>" using the "<strong>def</strong>" keyword, designed to operate without any parameters for now.<br></p><p>Upon invocation, this function yields an API status code of "200," signifying "OK," and proudly presents a response body that warmly declares, "<strong>Hello World, I'm Codegiant's CI/CD pipeline</strong>."<br></p><p>To witness the marvel of this function, run the file on your terminal using the command "python <strong>&lt;filename&gt;.py</strong>" (make sure your terminal is in the same directory as of your python file to run).<br></p><p>It will print like this in your local:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9XSw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F514d84f5-49ed-4e9b-8598-afc35a4d91f5_640x131.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9XSw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F514d84f5-49ed-4e9b-8598-afc35a4d91f5_640x131.png 424w, https://substackcdn.com/image/fetch/$s_!9XSw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F514d84f5-49ed-4e9b-8598-afc35a4d91f5_640x131.png 848w, https://substackcdn.com/image/fetch/$s_!9XSw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F514d84f5-49ed-4e9b-8598-afc35a4d91f5_640x131.png 1272w, https://substackcdn.com/image/fetch/$s_!9XSw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F514d84f5-49ed-4e9b-8598-afc35a4d91f5_640x131.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9XSw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F514d84f5-49ed-4e9b-8598-afc35a4d91f5_640x131.png" width="624" height="128" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/514d84f5-49ed-4e9b-8598-afc35a4d91f5_640x131.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:128,&quot;width&quot;:624,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!9XSw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F514d84f5-49ed-4e9b-8598-afc35a4d91f5_640x131.png 424w, https://substackcdn.com/image/fetch/$s_!9XSw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F514d84f5-49ed-4e9b-8598-afc35a4d91f5_640x131.png 848w, https://substackcdn.com/image/fetch/$s_!9XSw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F514d84f5-49ed-4e9b-8598-afc35a4d91f5_640x131.png 1272w, https://substackcdn.com/image/fetch/$s_!9XSw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F514d84f5-49ed-4e9b-8598-afc35a4d91f5_640x131.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><em>For this tutorial, we shall employ the Python file function mentioned above.</em></p><h3>Terraform main.tf file:</h3><ul><li><p>This is the most important file for the CI/CD deployment using Terraform.</p></li><li><p>Location terraform_aws_lambda/main.tf.</p></li><li><p>Important code snippets:</p></li></ul><pre><code># Creating a lambda function with code from Zip files, and giving [REQUIRED] role to it
resource "aws_lambda_function" "test_lambda" {
  filename         = "${path.module}/zip/python_files.zip"
  function_name    = var.lambda_function_name.lambda
  role             = aws_iam_role.iam_for_lambda_tf.arn
  handler          = var.handler_name.handle # this is required since package type is a zip 
  source_code_hash = data.archive_file.python_zip.output_base64sha256
  runtime          = var.runtime.version
}</code></pre><h3>Potential problems you might face:</h3><ul><li><p>In &#8220;resource "aws_lambda_function" "test_lambda" {...}&#8221; &#8220;handler&#8221; is an important tag, the value of which determines whether your code runs on Lambda function or not. So, stay attentive to it. &#8220;handler_name.handle&#8221; has a value stored in a variable.tf.</p></li><li><p><strong>How to write &#8220;handle&#8221; value: </strong><em>Tips: always write, &#8220;filename.function_name&#8221; format to make your handler work. In our case it was &#8220;python.lambda_handler&#8221;.&#8220;python&#8221; python file name, &#8220;lambda_handler&#8221; function name used in the file.</em></p></li></ul><h3>Context</h3><p>In this captivating blog post, our main focus shines on a remarkable aspect of Codegiant<strong>: the ability to effortlessly deploy serverless infrastructure VIA Codegiant&#8217;s CI/CD pipeline</strong>s. By combining the powers of Codegiant pipeline and Terraform on AWS, we can quickly create resources, such as an AWS Lambda, in just a matter of minutes. It's a truly impressive and efficient feat!<br></p><p>Prepare for an exhilarating journey through this blog as we embark on an enthralling quest to craft and deploy our <strong>"Hello World" Lambda Function</strong> with the seamless aid of Codegiant's CI/CD prowess.<br></p><p>Let&#8217;s define the prerequisites you would need.</p><h3>Pre-Requisites</h3><p>Before embarking on our journey, let's ensure we have the essential prerequisites in place:</p><ul><li><p><strong>AWS Account</strong>: Our expedition involves deploying resources on AWS, so having an AWS account is paramount. If you don't have one yet, you can easily create it by visiting the <a href="https://portal.aws.amazon.com/billing/signup#/start/email">AWS website</a>.</p></li><li><p><strong>Code Repository</strong>: This tutorial assumes that you possess a repository housing your Terraform scripts. For this guide, we'll utilize the "AutoScaleupInfra Code Repository" specifically designed for the <a href="https://github.com/ScaleupInfra/terraform-aws-lambda/tree/master/terraform_aws_lambda">Lambda Function.</a></p></li><li><p><strong>Codegiant Account</strong>: Finally, to unlock the full potential of our adventure, you'll need a <a href="https://codegiant.io/home">Codegiant account</a>. Worry not, Codegiant offers a freemium account that's more than sufficient to begin your journey. You can sign up for a Codegiant account <a href="https://codegiant.io/home">here</a>, and you also have the option to use your Google, BitBucket, or Github credentials for seamless registration.</p></li></ul><h3>Our Deployment Goal</h3><p>Welcome to this instructive tutorial! Our mission is to deploy an AWS Lambda using Terraform scripts, and we'll accomplish this feat through the magic of Codegiant's CI/CD pipelines. By the time you reach the end of this tutorial, you'll possess the power to effortlessly deploy your Lambda to your AWS account with just a single push to your code repository.<br></p><p>In the forthcoming segments, we'll guide you through the seamless setup of your Codegiant project. Then, we'll delve into the art of crafting your very own CI/CD pipeline. Finally, we'll revel in the satisfaction of confirming the triumphant deployment of your Lambda. Get ready for an empowering journey ahead!<br></p><p>Now, it's time to embark on our journey. Let's begin!</p><h3>Creating a Workspace</h3><ul><li><p>"The first step in Codegiant is to create a workspace. A workspace is essentially a space where your project resides. It's designed to help you organize your projects under different teams or departments. To create a workspace, click on the '+' icon next to 'Workspaces' on the sidebar."<br></p></li></ul><h3>Naming the Workspace</h3><ul><li><p>"After clicking on the '+' icon, you'll be prompted to give your workspace a name. Choose a name that best fits the nature of the projects that will be housed in this workspace."</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QSl2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a682369-ddb2-415c-a5b7-2869fcad8ddc_351x363.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QSl2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a682369-ddb2-415c-a5b7-2869fcad8ddc_351x363.png 424w, https://substackcdn.com/image/fetch/$s_!QSl2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a682369-ddb2-415c-a5b7-2869fcad8ddc_351x363.png 848w, https://substackcdn.com/image/fetch/$s_!QSl2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a682369-ddb2-415c-a5b7-2869fcad8ddc_351x363.png 1272w, https://substackcdn.com/image/fetch/$s_!QSl2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a682369-ddb2-415c-a5b7-2869fcad8ddc_351x363.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QSl2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a682369-ddb2-415c-a5b7-2869fcad8ddc_351x363.png" width="285" height="295" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4a682369-ddb2-415c-a5b7-2869fcad8ddc_351x363.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:295,&quot;width&quot;:285,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!QSl2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a682369-ddb2-415c-a5b7-2869fcad8ddc_351x363.png 424w, https://substackcdn.com/image/fetch/$s_!QSl2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a682369-ddb2-415c-a5b7-2869fcad8ddc_351x363.png 848w, https://substackcdn.com/image/fetch/$s_!QSl2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a682369-ddb2-415c-a5b7-2869fcad8ddc_351x363.png 1272w, https://substackcdn.com/image/fetch/$s_!QSl2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a682369-ddb2-415c-a5b7-2869fcad8ddc_351x363.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Importing a Repository</h3><ul><li><p>"Once your workspace is set up, the next step is to import your code repository into Codegiant. Click on 'Import Repository' to start the process. Codegiant provides seamless integration with popular version control systems like GitHub, GitLab, and Bitbucket. For this tutorial, we're importing a GitHub repository that contains our Terraform code."</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wLkh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3e0cec3-2710-41b2-817a-ae411671d109_560x553.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wLkh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3e0cec3-2710-41b2-817a-ae411671d109_560x553.png 424w, https://substackcdn.com/image/fetch/$s_!wLkh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3e0cec3-2710-41b2-817a-ae411671d109_560x553.png 848w, https://substackcdn.com/image/fetch/$s_!wLkh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3e0cec3-2710-41b2-817a-ae411671d109_560x553.png 1272w, https://substackcdn.com/image/fetch/$s_!wLkh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3e0cec3-2710-41b2-817a-ae411671d109_560x553.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wLkh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3e0cec3-2710-41b2-817a-ae411671d109_560x553.png" width="411" height="405" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c3e0cec3-2710-41b2-817a-ae411671d109_560x553.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:405,&quot;width&quot;:411,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!wLkh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3e0cec3-2710-41b2-817a-ae411671d109_560x553.png 424w, https://substackcdn.com/image/fetch/$s_!wLkh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3e0cec3-2710-41b2-817a-ae411671d109_560x553.png 848w, https://substackcdn.com/image/fetch/$s_!wLkh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3e0cec3-2710-41b2-817a-ae411671d109_560x553.png 1272w, https://substackcdn.com/image/fetch/$s_!wLkh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3e0cec3-2710-41b2-817a-ae411671d109_560x553.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!l9v2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb8dc27-7570-4b99-a1c3-1090a2ed2b60_603x405.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!l9v2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb8dc27-7570-4b99-a1c3-1090a2ed2b60_603x405.png 424w, https://substackcdn.com/image/fetch/$s_!l9v2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb8dc27-7570-4b99-a1c3-1090a2ed2b60_603x405.png 848w, https://substackcdn.com/image/fetch/$s_!l9v2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb8dc27-7570-4b99-a1c3-1090a2ed2b60_603x405.png 1272w, https://substackcdn.com/image/fetch/$s_!l9v2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb8dc27-7570-4b99-a1c3-1090a2ed2b60_603x405.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!l9v2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb8dc27-7570-4b99-a1c3-1090a2ed2b60_603x405.png" width="544" height="365" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1cb8dc27-7570-4b99-a1c3-1090a2ed2b60_603x405.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:365,&quot;width&quot;:544,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!l9v2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb8dc27-7570-4b99-a1c3-1090a2ed2b60_603x405.png 424w, https://substackcdn.com/image/fetch/$s_!l9v2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb8dc27-7570-4b99-a1c3-1090a2ed2b60_603x405.png 848w, https://substackcdn.com/image/fetch/$s_!l9v2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb8dc27-7570-4b99-a1c3-1090a2ed2b60_603x405.png 1272w, https://substackcdn.com/image/fetch/$s_!l9v2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cb8dc27-7570-4b99-a1c3-1090a2ed2b60_603x405.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Repository Imported</h3><ul><li><p>"After selecting the repository, Codegiant imports it into your workspace. You can now see your imported repository under the 'Repositories' section of your workspace. With our code in place, we're now ready to create our CI/CD pipeline."</p></li><li><p>&#8220;Add <em>.codegiant-ci.yml </em>file into your workspace repository with the following code&#8221;<br></p></li></ul><pre><code>apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: terraform-plan-apply-destroy
spec:
  params:
    - name: ARGS
      description: The terraform cli commands to run
      type: array
      default:
        - init
  steps:
    - name: init
      image: "docker.io/hashicorp/terraform:light"
      command:
        - terraform
        - init

    - name: terraform-plan
      image: "docker.io/hashicorp/terraform:light"
      env:
        - name: AWS_ACCESS_KEY_ID
          value: &lt;your_key&gt;
        - name: AWS_SECRET_ACCESS_KEY
          value: &lt;your_token&gt;
      command:
        - terraform
        - plan

    - name: terraform-apply
      image: "docker.io/hashicorp/terraform:light"
      env:
        - name: AWS_ACCESS_KEY_ID
          value: &lt;your_key&gt;
        - name: AWS_SECRET_ACCESS_KEY
          value: &lt;your_token&gt;
      command:
        - terraform
        - apply
        - "-auto-approve"

    - name: terraform-destroy
      image: "docker.io/hashicorp/terraform:light"
      env:
        - name: AWS_ACCESS_KEY_ID
          value: &lt;your_key&gt;
        - name: AWS_SECRET_ACCESS_KEY
          value: &lt;your_token&gt;
      command:
        - terraform
        - destroy
        - "-auto-approve"

---
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
  name: terraform-pipeline
spec:
  tasks:
    - name: terraform-plan-apply-destroy
      taskRef:
        name: terraform-plan-apply-destroy
---
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
  name: run-terraform-pipeline
spec:
  pipelineRef:
    name: terraform-pipeline</code></pre><p>The above code, initializes your terraform, and applies it. <a href="https://github.com/ScaleupInfra/terraform-aws-lambda/blob/master/.codegiant-ci.yml">Here</a> is the complete code for the<a href="https://github.com/ScaleupInfra/terraform-aws-lambda/blob/master/.codegiant-ci.yml"> .</a><em><a href="https://github.com/ScaleupInfra/terraform-aws-lambda/blob/master/.codegiant-ci.yml">yml </a></em><a href="https://github.com/ScaleupInfra/terraform-aws-lambda/blob/master/.codegiant-ci.yml">file</a>.</p><h3>Flow :</h3><ul><li><p>init</p></li><li><p>plan</p></li><li><p>apply</p></li><li><p>destroy</p></li></ul><p><em>Note: Don&#8217;t forget to update your AWS_SECRET_ACCESS_KEY and AWS_ACCESS_KEY_ID.</em></p><p><em>To learn how to do so, check out this help center <a href="https://docs.codegiant.io/codegiant/codegiant/help/1-0/2792">article</a>.<br></em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MxWP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe48ff872-31b9-4ee7-bafe-434ae6358730_578x482.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MxWP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe48ff872-31b9-4ee7-bafe-434ae6358730_578x482.png 424w, https://substackcdn.com/image/fetch/$s_!MxWP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe48ff872-31b9-4ee7-bafe-434ae6358730_578x482.png 848w, https://substackcdn.com/image/fetch/$s_!MxWP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe48ff872-31b9-4ee7-bafe-434ae6358730_578x482.png 1272w, https://substackcdn.com/image/fetch/$s_!MxWP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe48ff872-31b9-4ee7-bafe-434ae6358730_578x482.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MxWP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe48ff872-31b9-4ee7-bafe-434ae6358730_578x482.png" width="578" height="482" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e48ff872-31b9-4ee7-bafe-434ae6358730_578x482.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:482,&quot;width&quot;:578,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!MxWP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe48ff872-31b9-4ee7-bafe-434ae6358730_578x482.png 424w, https://substackcdn.com/image/fetch/$s_!MxWP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe48ff872-31b9-4ee7-bafe-434ae6358730_578x482.png 848w, https://substackcdn.com/image/fetch/$s_!MxWP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe48ff872-31b9-4ee7-bafe-434ae6358730_578x482.png 1272w, https://substackcdn.com/image/fetch/$s_!MxWP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe48ff872-31b9-4ee7-bafe-434ae6358730_578x482.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>&#8220;Click on &#8220;pipeline&#8221; to see how many tasks are there in the pipeline.</p></li><li><p>&#8220;In our case, all execution is done under the first step&#8221;.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!43KT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07cf96d-0c6c-4e0f-a18f-40adf42a9e25_704x452.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!43KT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07cf96d-0c6c-4e0f-a18f-40adf42a9e25_704x452.png 424w, https://substackcdn.com/image/fetch/$s_!43KT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07cf96d-0c6c-4e0f-a18f-40adf42a9e25_704x452.png 848w, https://substackcdn.com/image/fetch/$s_!43KT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07cf96d-0c6c-4e0f-a18f-40adf42a9e25_704x452.png 1272w, https://substackcdn.com/image/fetch/$s_!43KT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07cf96d-0c6c-4e0f-a18f-40adf42a9e25_704x452.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!43KT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07cf96d-0c6c-4e0f-a18f-40adf42a9e25_704x452.png" width="623" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d07cf96d-0c6c-4e0f-a18f-40adf42a9e25_704x452.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:623,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!43KT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07cf96d-0c6c-4e0f-a18f-40adf42a9e25_704x452.png 424w, https://substackcdn.com/image/fetch/$s_!43KT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07cf96d-0c6c-4e0f-a18f-40adf42a9e25_704x452.png 848w, https://substackcdn.com/image/fetch/$s_!43KT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07cf96d-0c6c-4e0f-a18f-40adf42a9e25_704x452.png 1272w, https://substackcdn.com/image/fetch/$s_!43KT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07cf96d-0c6c-4e0f-a18f-40adf42a9e25_704x452.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>&#8220; click on the side icon &#8220;pipeline&#8221; to see your running pipeline.&#8221;</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fa78!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81281329-849e-4a44-ab93-b92f0878b45d_894x469.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fa78!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81281329-849e-4a44-ab93-b92f0878b45d_894x469.png 424w, https://substackcdn.com/image/fetch/$s_!fa78!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81281329-849e-4a44-ab93-b92f0878b45d_894x469.png 848w, https://substackcdn.com/image/fetch/$s_!fa78!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81281329-849e-4a44-ab93-b92f0878b45d_894x469.png 1272w, https://substackcdn.com/image/fetch/$s_!fa78!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81281329-849e-4a44-ab93-b92f0878b45d_894x469.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fa78!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81281329-849e-4a44-ab93-b92f0878b45d_894x469.png" width="624" height="328" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81281329-849e-4a44-ab93-b92f0878b45d_894x469.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:328,&quot;width&quot;:624,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!fa78!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81281329-849e-4a44-ab93-b92f0878b45d_894x469.png 424w, https://substackcdn.com/image/fetch/$s_!fa78!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81281329-849e-4a44-ab93-b92f0878b45d_894x469.png 848w, https://substackcdn.com/image/fetch/$s_!fa78!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81281329-849e-4a44-ab93-b92f0878b45d_894x469.png 1272w, https://substackcdn.com/image/fetch/$s_!fa78!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81281329-849e-4a44-ab93-b92f0878b45d_894x469.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>In the meantime you can see, your function is being deployed on your AWS, with the name defined in <em>variable.tf</em> file <em>(in our case</em>).</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!un6T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdd11e57-98e0-4d53-a030-300d8bf5aa12_1000x291.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!un6T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdd11e57-98e0-4d53-a030-300d8bf5aa12_1000x291.png 424w, https://substackcdn.com/image/fetch/$s_!un6T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdd11e57-98e0-4d53-a030-300d8bf5aa12_1000x291.png 848w, https://substackcdn.com/image/fetch/$s_!un6T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdd11e57-98e0-4d53-a030-300d8bf5aa12_1000x291.png 1272w, https://substackcdn.com/image/fetch/$s_!un6T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdd11e57-98e0-4d53-a030-300d8bf5aa12_1000x291.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!un6T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdd11e57-98e0-4d53-a030-300d8bf5aa12_1000x291.png" width="624" height="181" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fdd11e57-98e0-4d53-a030-300d8bf5aa12_1000x291.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:181,&quot;width&quot;:624,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!un6T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdd11e57-98e0-4d53-a030-300d8bf5aa12_1000x291.png 424w, https://substackcdn.com/image/fetch/$s_!un6T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdd11e57-98e0-4d53-a030-300d8bf5aa12_1000x291.png 848w, https://substackcdn.com/image/fetch/$s_!un6T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdd11e57-98e0-4d53-a030-300d8bf5aa12_1000x291.png 1272w, https://substackcdn.com/image/fetch/$s_!un6T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdd11e57-98e0-4d53-a030-300d8bf5aa12_1000x291.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>Click on it.</p></li><li><p>You can see an endpoint url available for this function, that is set to be public.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gv2d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc2c70e-8e2b-4e3e-be71-56e2e9354a14_1000x363.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gv2d!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc2c70e-8e2b-4e3e-be71-56e2e9354a14_1000x363.png 424w, https://substackcdn.com/image/fetch/$s_!gv2d!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc2c70e-8e2b-4e3e-be71-56e2e9354a14_1000x363.png 848w, https://substackcdn.com/image/fetch/$s_!gv2d!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc2c70e-8e2b-4e3e-be71-56e2e9354a14_1000x363.png 1272w, https://substackcdn.com/image/fetch/$s_!gv2d!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc2c70e-8e2b-4e3e-be71-56e2e9354a14_1000x363.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gv2d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc2c70e-8e2b-4e3e-be71-56e2e9354a14_1000x363.png" width="624" height="227" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9bc2c70e-8e2b-4e3e-be71-56e2e9354a14_1000x363.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:227,&quot;width&quot;:624,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!gv2d!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc2c70e-8e2b-4e3e-be71-56e2e9354a14_1000x363.png 424w, https://substackcdn.com/image/fetch/$s_!gv2d!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc2c70e-8e2b-4e3e-be71-56e2e9354a14_1000x363.png 848w, https://substackcdn.com/image/fetch/$s_!gv2d!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc2c70e-8e2b-4e3e-be71-56e2e9354a14_1000x363.png 1272w, https://substackcdn.com/image/fetch/$s_!gv2d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc2c70e-8e2b-4e3e-be71-56e2e9354a14_1000x363.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>Click it, you will be redirected to a new page with &#8220;Hello World, I'm Codegiant's CI/CD pipeline&#8221; written.</p></li><li><p>You have made a Lambda Function with just few clicks now.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!O5VB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6be3a9-ffa4-4e89-974e-805dc105a9ae_352x99.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!O5VB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6be3a9-ffa4-4e89-974e-805dc105a9ae_352x99.png 424w, https://substackcdn.com/image/fetch/$s_!O5VB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6be3a9-ffa4-4e89-974e-805dc105a9ae_352x99.png 848w, https://substackcdn.com/image/fetch/$s_!O5VB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6be3a9-ffa4-4e89-974e-805dc105a9ae_352x99.png 1272w, https://substackcdn.com/image/fetch/$s_!O5VB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6be3a9-ffa4-4e89-974e-805dc105a9ae_352x99.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!O5VB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6be3a9-ffa4-4e89-974e-805dc105a9ae_352x99.png" width="352" height="99" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3b6be3a9-ffa4-4e89-974e-805dc105a9ae_352x99.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:99,&quot;width&quot;:352,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!O5VB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6be3a9-ffa4-4e89-974e-805dc105a9ae_352x99.png 424w, https://substackcdn.com/image/fetch/$s_!O5VB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6be3a9-ffa4-4e89-974e-805dc105a9ae_352x99.png 848w, https://substackcdn.com/image/fetch/$s_!O5VB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6be3a9-ffa4-4e89-974e-805dc105a9ae_352x99.png 1272w, https://substackcdn.com/image/fetch/$s_!O5VB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6be3a9-ffa4-4e89-974e-805dc105a9ae_352x99.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>Pipeline Run Successful:</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B-Rp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8913cb-0491-4ac2-8b98-62990de9ac4d_938x459.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B-Rp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8913cb-0491-4ac2-8b98-62990de9ac4d_938x459.png 424w, https://substackcdn.com/image/fetch/$s_!B-Rp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8913cb-0491-4ac2-8b98-62990de9ac4d_938x459.png 848w, https://substackcdn.com/image/fetch/$s_!B-Rp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8913cb-0491-4ac2-8b98-62990de9ac4d_938x459.png 1272w, https://substackcdn.com/image/fetch/$s_!B-Rp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8913cb-0491-4ac2-8b98-62990de9ac4d_938x459.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B-Rp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8913cb-0491-4ac2-8b98-62990de9ac4d_938x459.png" width="624" height="305" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d8913cb-0491-4ac2-8b98-62990de9ac4d_938x459.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:305,&quot;width&quot;:624,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!B-Rp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8913cb-0491-4ac2-8b98-62990de9ac4d_938x459.png 424w, https://substackcdn.com/image/fetch/$s_!B-Rp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8913cb-0491-4ac2-8b98-62990de9ac4d_938x459.png 848w, https://substackcdn.com/image/fetch/$s_!B-Rp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8913cb-0491-4ac2-8b98-62990de9ac4d_938x459.png 1272w, https://substackcdn.com/image/fetch/$s_!B-Rp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d8913cb-0491-4ac2-8b98-62990de9ac4d_938x459.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>On the complete run, you can see, your lambda function has been destroyed and everything is cleaned-up, you can change clean-up whenever you need from the .yml file.</p></li><li><p>In our situation, we performed a cleanup because it was a test environment, and we wanted to avoid incurring costs for resources not actively in use.</p></li></ul><p>Looking for a complete code repository <a href="https://github.com/ScaleupInfra/terraform-aws-lambda/tree/master">visit</a></p><p>To sum it up, we have experienced the fusion of Codegiant's CI/CD pipelines with Terraform, effortlessly automating the deployment of Lambda Functions. This dynamic alliance enhances efficiency, minimizes errors, and propels software delivery to new heights.</p><ol><li><p>We made a local file for the Python app and tested it.</p></li><li><p>We pushed our local code to the repository and imported that repo to Codegiant.</p></li><li><p>We created a <em>.yml </em>file and pushed it to the same Codegiant workspace.</p></li><li><p>Spin up the lambda function and access the public URL for the output.<br></p></li></ol><p>Codegiant supports a simple issue tracker, git repositories, built-in CI/CD, and a documentation tool. If you&#8217;re tired of GitHub or GitLab&#8217;s complexity, <a href="https://codegiant.io/home?ref=blog.codegiant.io">check us out; we don&#8217;t bite</a> :)</p>]]></content:encoded></item><item><title><![CDATA[Automating AWS Infrastructure with Terraform: A Step-by-Step Guide to CI/CD Pipelines in Codegiant]]></title><description><![CDATA[Context]]></description><link>https://blog.codegiant.io/p/automating-aws-infrastructure-with-terraform-a-step-by-step-guide-to-ci-cd-pipelines-in-codegiant</link><guid isPermaLink="false">https://blog.codegiant.io/p/automating-aws-infrastructure-with-terraform-a-step-by-step-guide-to-ci-cd-pipelines-in-codegiant</guid><dc:creator><![CDATA[Codegiant]]></dc:creator><pubDate>Mon, 31 Jul 2023 09:46:59 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/27de7112-0b73-4be2-a32a-66705414fdfe_1200x628.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PmO1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73715e9f-47dd-4d57-b6c9-f703f6856f19_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PmO1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73715e9f-47dd-4d57-b6c9-f703f6856f19_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PmO1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73715e9f-47dd-4d57-b6c9-f703f6856f19_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PmO1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73715e9f-47dd-4d57-b6c9-f703f6856f19_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PmO1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73715e9f-47dd-4d57-b6c9-f703f6856f19_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PmO1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73715e9f-47dd-4d57-b6c9-f703f6856f19_1200x628.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73715e9f-47dd-4d57-b6c9-f703f6856f19_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PmO1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73715e9f-47dd-4d57-b6c9-f703f6856f19_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PmO1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73715e9f-47dd-4d57-b6c9-f703f6856f19_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PmO1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73715e9f-47dd-4d57-b6c9-f703f6856f19_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PmO1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73715e9f-47dd-4d57-b6c9-f703f6856f19_1200x628.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><h3>Context</h3><p>In the rapidly evolving landscape of software development, two concepts have stood out for their transformative impact: <strong>Infrastructure as Code (IaC)</strong> and <strong>Continuous Integration/Continuous Deployment (CI/CD).<br></strong></p><p>IaC tools like Terraform have revolutionized how we manage and configure our software environments, increasing efficiency and reducing the risk of human error. On the other hand, CI/CD practices have streamlined the process of deploying changes and updates, ensuring that your software is always running at its peak potential.<br></p><p>Today, we will talk about a platform that elegantly marries these two concepts: <strong><a href="https://codegiant.io/home">Codegiant</a></strong>. Known for its comprehensive suite of DevSecOps tools, Codegiant's CI/CD pipeline stands out for its power, flexibility, and ease of use.<br></p><p>This blog post is primarily focused on demonstrating one of Codegiant's most impressive features: the ability to quickly and easily deploy infrastructure via its CI/CD pipelines. By leveraging Terraform and Codegiant together, we can spin up resources like an AWS S3 bucket in mere minutes. <br></p><p>So, whether you're a seasoned DevOps engineer or someone just starting your journey into IaC and CI/CD, stick around. We're going to dive into the step-by-step process of deploying an S3 bucket using Terraform on Codegiant's platform. <br></p><p>Let&#8217;s define the prerequisites you would need.<br></p><h3>Pre-Requisites</h3><ul><li><p><strong>AWS Account</strong>: First and foremost, you'll need an AWS account, as we'll be deploying resources on AWS. If you don't already have an account, you can create one<a href="https://aws.amazon.com/"> here</a>.</p></li><li><p><strong>Code Repository</strong>: This tutorial assumes you have a repository that contains your Terraform scripts. We are using the AutoScaleupInfra Code Repository for <a href="https://github.com/ScaleupInfra/terraform-aws-s3-bucket">S3 Bucket</a></p></li><li><p><strong>Codegiant Account</strong>: Last but not least, you'll need a Codegiant account. Codegiant offers a freemium account which is more than enough to get started. You can sign up for a Codegiant account<a href="https://codegiant.io/signup"> here</a>, you sign up using Google a/c, BitBucket, or Github as well.<br></p></li></ul><h3>Our Deployment Goal</h3><p>In this tutorial, we will be deploying an AWS S3 bucket using Terraform scripts. The deployment process will be automated via a CI/CD pipeline created in Codegiant. Simply put, by the end of this tutorial, you'll be able to automatically deploy an S3 bucket to your AWS account with a single push to your code repository.<br></p><p>In the following sections, we will walk you through the process of setting up your Codegiant project, building your CI/CD pipeline, and verifying the successful deployment of the S3 bucket.<br></p><p>Let&#8217;s get started.<br></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4hX1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b283d67-fa29-4f29-96e2-5ede51c9a6cc_645x379.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4hX1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b283d67-fa29-4f29-96e2-5ede51c9a6cc_645x379.png 424w, https://substackcdn.com/image/fetch/$s_!4hX1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b283d67-fa29-4f29-96e2-5ede51c9a6cc_645x379.png 848w, https://substackcdn.com/image/fetch/$s_!4hX1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b283d67-fa29-4f29-96e2-5ede51c9a6cc_645x379.png 1272w, https://substackcdn.com/image/fetch/$s_!4hX1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b283d67-fa29-4f29-96e2-5ede51c9a6cc_645x379.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4hX1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b283d67-fa29-4f29-96e2-5ede51c9a6cc_645x379.png" width="409" height="240" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3b283d67-fa29-4f29-96e2-5ede51c9a6cc_645x379.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:240,&quot;width&quot;:409,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!4hX1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b283d67-fa29-4f29-96e2-5ede51c9a6cc_645x379.png 424w, https://substackcdn.com/image/fetch/$s_!4hX1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b283d67-fa29-4f29-96e2-5ede51c9a6cc_645x379.png 848w, https://substackcdn.com/image/fetch/$s_!4hX1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b283d67-fa29-4f29-96e2-5ede51c9a6cc_645x379.png 1272w, https://substackcdn.com/image/fetch/$s_!4hX1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b283d67-fa29-4f29-96e2-5ede51c9a6cc_645x379.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>Creating a Workspace</h3><ul><li><p>"The first step in Codegiant is to create a workspace. A workspace is essentially a space where your project resides. It's designed to help you organize your projects under different teams or departments. To create a workspace, click on the '+' icon next to 'Workspaces' on the sidebar."<br><br></p></li></ul><h3>Naming the Workspace</h3><ul><li><p>"After clicking on the '+' icon, you'll be prompted to give your workspace a name. Choose a name that best fits the nature of the projects that will be housed in this workspace."<br></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AGnR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca487a8b-8f4e-4b0e-b007-8ae4dd96680d_650x383.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AGnR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca487a8b-8f4e-4b0e-b007-8ae4dd96680d_650x383.png 424w, https://substackcdn.com/image/fetch/$s_!AGnR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca487a8b-8f4e-4b0e-b007-8ae4dd96680d_650x383.png 848w, https://substackcdn.com/image/fetch/$s_!AGnR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca487a8b-8f4e-4b0e-b007-8ae4dd96680d_650x383.png 1272w, https://substackcdn.com/image/fetch/$s_!AGnR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca487a8b-8f4e-4b0e-b007-8ae4dd96680d_650x383.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AGnR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca487a8b-8f4e-4b0e-b007-8ae4dd96680d_650x383.png" width="602" height="355" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ca487a8b-8f4e-4b0e-b007-8ae4dd96680d_650x383.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:355,&quot;width&quot;:602,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!AGnR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca487a8b-8f4e-4b0e-b007-8ae4dd96680d_650x383.png 424w, https://substackcdn.com/image/fetch/$s_!AGnR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca487a8b-8f4e-4b0e-b007-8ae4dd96680d_650x383.png 848w, https://substackcdn.com/image/fetch/$s_!AGnR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca487a8b-8f4e-4b0e-b007-8ae4dd96680d_650x383.png 1272w, https://substackcdn.com/image/fetch/$s_!AGnR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca487a8b-8f4e-4b0e-b007-8ae4dd96680d_650x383.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Importing a Repository</h3><ul><li><p>"Once your workspace is set up, the next step is to import your code repository into Codegiant. Click on 'Import Repository' to start the process. Codegiant provides seamless integration with popular version control systems like GitHub, GitLab, and Bitbucket. For this tutorial, we're importing a GitHub repository that contains our Terraform code."<br></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ares!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ea1a24-1178-4572-b31b-826d510a33a5_687x388.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ares!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ea1a24-1178-4572-b31b-826d510a33a5_687x388.png 424w, https://substackcdn.com/image/fetch/$s_!ares!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ea1a24-1178-4572-b31b-826d510a33a5_687x388.png 848w, https://substackcdn.com/image/fetch/$s_!ares!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ea1a24-1178-4572-b31b-826d510a33a5_687x388.png 1272w, https://substackcdn.com/image/fetch/$s_!ares!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ea1a24-1178-4572-b31b-826d510a33a5_687x388.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ares!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ea1a24-1178-4572-b31b-826d510a33a5_687x388.png" width="602" height="340" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/59ea1a24-1178-4572-b31b-826d510a33a5_687x388.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:340,&quot;width&quot;:602,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ares!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ea1a24-1178-4572-b31b-826d510a33a5_687x388.png 424w, https://substackcdn.com/image/fetch/$s_!ares!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ea1a24-1178-4572-b31b-826d510a33a5_687x388.png 848w, https://substackcdn.com/image/fetch/$s_!ares!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ea1a24-1178-4572-b31b-826d510a33a5_687x388.png 1272w, https://substackcdn.com/image/fetch/$s_!ares!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59ea1a24-1178-4572-b31b-826d510a33a5_687x388.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5B7d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df115b4-b8cf-4dae-a031-3d32bef86cb0_686x386.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5B7d!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df115b4-b8cf-4dae-a031-3d32bef86cb0_686x386.png 424w, https://substackcdn.com/image/fetch/$s_!5B7d!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df115b4-b8cf-4dae-a031-3d32bef86cb0_686x386.png 848w, https://substackcdn.com/image/fetch/$s_!5B7d!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df115b4-b8cf-4dae-a031-3d32bef86cb0_686x386.png 1272w, https://substackcdn.com/image/fetch/$s_!5B7d!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df115b4-b8cf-4dae-a031-3d32bef86cb0_686x386.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5B7d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df115b4-b8cf-4dae-a031-3d32bef86cb0_686x386.png" width="602" height="339" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5df115b4-b8cf-4dae-a031-3d32bef86cb0_686x386.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:339,&quot;width&quot;:602,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!5B7d!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df115b4-b8cf-4dae-a031-3d32bef86cb0_686x386.png 424w, https://substackcdn.com/image/fetch/$s_!5B7d!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df115b4-b8cf-4dae-a031-3d32bef86cb0_686x386.png 848w, https://substackcdn.com/image/fetch/$s_!5B7d!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df115b4-b8cf-4dae-a031-3d32bef86cb0_686x386.png 1272w, https://substackcdn.com/image/fetch/$s_!5B7d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5df115b4-b8cf-4dae-a031-3d32bef86cb0_686x386.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Repository Imported</h3><ul><li><p>"After selecting the repository, Codegiant imports it into your workspace. You can now see your imported repository under the 'Repositories' section of your workspace. With our code in place, we're now ready to create our CI/CD pipeline."<br></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9Pwd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53151efc-31cf-4573-80cf-1b5418c883bc_685x383.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9Pwd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53151efc-31cf-4573-80cf-1b5418c883bc_685x383.png 424w, https://substackcdn.com/image/fetch/$s_!9Pwd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53151efc-31cf-4573-80cf-1b5418c883bc_685x383.png 848w, https://substackcdn.com/image/fetch/$s_!9Pwd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53151efc-31cf-4573-80cf-1b5418c883bc_685x383.png 1272w, https://substackcdn.com/image/fetch/$s_!9Pwd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53151efc-31cf-4573-80cf-1b5418c883bc_685x383.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9Pwd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53151efc-31cf-4573-80cf-1b5418c883bc_685x383.png" width="602" height="336" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/53151efc-31cf-4573-80cf-1b5418c883bc_685x383.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:336,&quot;width&quot;:602,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!9Pwd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53151efc-31cf-4573-80cf-1b5418c883bc_685x383.png 424w, https://substackcdn.com/image/fetch/$s_!9Pwd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53151efc-31cf-4573-80cf-1b5418c883bc_685x383.png 848w, https://substackcdn.com/image/fetch/$s_!9Pwd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53151efc-31cf-4573-80cf-1b5418c883bc_685x383.png 1272w, https://substackcdn.com/image/fetch/$s_!9Pwd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53151efc-31cf-4573-80cf-1b5418c883bc_685x383.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Defining the Terraform Pipeline in Codegiant</h3><ul><li><p>Create a <em>.codegiant-ci.yml</em>(make sure the file name is .codegiant-ci.yml)<em> </em>file in the root of your repository.</p></li><li><p>Define the stages for the pipeline, such as init, plan, and apply.</p></li><li><p>Configure the jobs for each stage to run the Terraform commands using the environment variables for AWS credentials.</p></li><li><p>Commit and push the <em>.codegiant-ci.yml</em> file to trigger the pipeline.<br></p></li></ul><h3>Running the Pipeline</h3><ul><li><p>Open your Codegiant project and navigate to the repository with the <em>.codegiant-ci.yml</em> file.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eq-x!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F994f1cec-1307-4a6d-b036-97ee6b51818e_651x385.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eq-x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F994f1cec-1307-4a6d-b036-97ee6b51818e_651x385.png 424w, https://substackcdn.com/image/fetch/$s_!eq-x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F994f1cec-1307-4a6d-b036-97ee6b51818e_651x385.png 848w, https://substackcdn.com/image/fetch/$s_!eq-x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F994f1cec-1307-4a6d-b036-97ee6b51818e_651x385.png 1272w, https://substackcdn.com/image/fetch/$s_!eq-x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F994f1cec-1307-4a6d-b036-97ee6b51818e_651x385.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eq-x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F994f1cec-1307-4a6d-b036-97ee6b51818e_651x385.png" width="602" height="356" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/994f1cec-1307-4a6d-b036-97ee6b51818e_651x385.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:356,&quot;width&quot;:602,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!eq-x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F994f1cec-1307-4a6d-b036-97ee6b51818e_651x385.png 424w, https://substackcdn.com/image/fetch/$s_!eq-x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F994f1cec-1307-4a6d-b036-97ee6b51818e_651x385.png 848w, https://substackcdn.com/image/fetch/$s_!eq-x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F994f1cec-1307-4a6d-b036-97ee6b51818e_651x385.png 1272w, https://substackcdn.com/image/fetch/$s_!eq-x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F994f1cec-1307-4a6d-b036-97ee6b51818e_651x385.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>Observe the pipeline as it runs through the stages: <strong>terraform-plan</strong> and then <strong>terraform-apply</strong> as you can see in the below screen shot.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ht0o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a36bb3-28d9-4a7f-ad5f-db114c6fabca_692x381.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ht0o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a36bb3-28d9-4a7f-ad5f-db114c6fabca_692x381.png 424w, https://substackcdn.com/image/fetch/$s_!ht0o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a36bb3-28d9-4a7f-ad5f-db114c6fabca_692x381.png 848w, https://substackcdn.com/image/fetch/$s_!ht0o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a36bb3-28d9-4a7f-ad5f-db114c6fabca_692x381.png 1272w, https://substackcdn.com/image/fetch/$s_!ht0o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a36bb3-28d9-4a7f-ad5f-db114c6fabca_692x381.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ht0o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a36bb3-28d9-4a7f-ad5f-db114c6fabca_692x381.png" width="602" height="331" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0a36bb3-28d9-4a7f-ad5f-db114c6fabca_692x381.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:331,&quot;width&quot;:602,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ht0o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a36bb3-28d9-4a7f-ad5f-db114c6fabca_692x381.png 424w, https://substackcdn.com/image/fetch/$s_!ht0o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a36bb3-28d9-4a7f-ad5f-db114c6fabca_692x381.png 848w, https://substackcdn.com/image/fetch/$s_!ht0o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a36bb3-28d9-4a7f-ad5f-db114c6fabca_692x381.png 1272w, https://substackcdn.com/image/fetch/$s_!ht0o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0a36bb3-28d9-4a7f-ad5f-db114c6fabca_692x381.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oOPr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3af82e88-d15c-429d-94c8-b134f92dc740_687x385.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oOPr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3af82e88-d15c-429d-94c8-b134f92dc740_687x385.png 424w, https://substackcdn.com/image/fetch/$s_!oOPr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3af82e88-d15c-429d-94c8-b134f92dc740_687x385.png 848w, https://substackcdn.com/image/fetch/$s_!oOPr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3af82e88-d15c-429d-94c8-b134f92dc740_687x385.png 1272w, https://substackcdn.com/image/fetch/$s_!oOPr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3af82e88-d15c-429d-94c8-b134f92dc740_687x385.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oOPr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3af82e88-d15c-429d-94c8-b134f92dc740_687x385.png" width="602" height="337" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3af82e88-d15c-429d-94c8-b134f92dc740_687x385.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:337,&quot;width&quot;:602,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!oOPr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3af82e88-d15c-429d-94c8-b134f92dc740_687x385.png 424w, https://substackcdn.com/image/fetch/$s_!oOPr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3af82e88-d15c-429d-94c8-b134f92dc740_687x385.png 848w, https://substackcdn.com/image/fetch/$s_!oOPr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3af82e88-d15c-429d-94c8-b134f92dc740_687x385.png 1272w, https://substackcdn.com/image/fetch/$s_!oOPr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3af82e88-d15c-429d-94c8-b134f92dc740_687x385.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>Monitor the Terraform commands executed in each stage to create the S3 bucket and once the pipeline is green like below, you can go back to your AWS Console and check and should be able to find the S3 bucket created via Codegiant Pipeline</p></li></ul><p>Looking for the<em> .codegiant-ci.yml</em>? Visit <a href="https://github.com/ScaleupInfra/terraform-aws-s3-bucket/blob/main/.codegiant-ci.yml">github</a> and you&#8217;ll find the full working YAML.</p><p>In conclusion, we've witnessed the seamless integration of Codegiant's CI/CD pipeline with Terraform, automating the deployment of AWS S3 buckets. This powerful combination streamlines workflows, reduces errors and accelerates software delivery.<br></p><p>Take action now, and start transforming your development process with Codegiant's CI/CD and Terraform today!<br></p><p>Codegiant supports a simple issue tracker, git repositories, built-in CI/CD, and a documentation tool. If you&#8217;re tired of GitHub or GitLab&#8217;s complexity, <a href="https://codegiant.io/home?ref=blog.codegiant.io">check us out; we don&#8217;t bite</a> :)</p>]]></content:encoded></item></channel></rss>