<?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" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ #IaC - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ #IaC - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sun, 14 Jun 2026 10:14:57 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/iac/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ The Hidden Tax of Infrastructure: Why Your Team Shouldn’t Be Running It Anymore ]]>
                </title>
                <description>
                    <![CDATA[ Most engineering teams don't set out to manage infrastructure. They start with a product idea, a customer need, or a business problem. Infrastructure enters the picture as a means to an end. Servers n ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-hidden-tax-of-infrastructure-why-your-team-shouldn-t-be-running-it-anymore/</link>
                <guid isPermaLink="false">69ea514b904b9154389b5a1f</guid>
                
                    <category>
                        <![CDATA[ infrastructure ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #IaC ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Security ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Manish Shivanandhan ]]>
                </dc:creator>
                <pubDate>Thu, 23 Apr 2026 17:05:15 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/uploads/covers/5e1e335a7a1d3fcc59028c64/54cf1158-4c67-4f32-bf19-a09eebd1a643.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Most engineering teams don't set out to manage infrastructure. They start with a product idea, a customer need, or a business problem.</p>
<p>Infrastructure enters the picture as a means to an end. Servers need to be provisioned. Databases need to be configured. Networks need to be secured. At first, this work feels necessary and even empowering. It gives teams control.</p>
<p>But over time, that control turns into a burden.</p>
<p>What begins as a few <a href="https://www.freecodecamp.org/news/how-to-get-started-with-terraform/">Terraform scripts</a> or cloud console clicks evolves into a growing layer of responsibility.</p>
<p>Teams find themselves maintaining deployment pipelines, debugging networking issues, rotating credentials, patching systems, and responding to incidents unrelated to their product logic.</p>
<p>This is the hidden tax of infrastructure. It's not a line item in your budget, but it is paid every day in engineering time, cognitive load, and lost focus.</p>
<h3 id="heading-what-well-cover">What We'll Cover:</h3>
<ul>
<li><p><a href="#heading-infrastructure-is-not-a-one-time-cost">Infrastructure is Not a One-Time Cost</a></p>
</li>
<li><p><a href="#heading-the-cognitive-load-problem">The Cognitive Load Problem</a></p>
</li>
<li><p><a href="#heading-reliability-is-harder-than-it-looks">Reliability is Harder Than it Looks</a></p>
</li>
<li><p><a href="#heading-security-and-compliance-never-stand-still">Security and Compliance Never Stand Still</a></p>
</li>
<li><p><a href="#heading-the-illusion-of-control">The Illusion of Control</a></p>
</li>
<li><p><a href="#heading-the-rise-of-paas-as-an-alternative">The Rise of PaaS as an Alternative</a></p>
</li>
<li><p><a href="#heading-speed-is-a-competitive-advantage">Speed is a Competitive Advantage</a></p>
</li>
<li><p><a href="#heading-cost-is-more-than-the-cloud-bills">Cost is More Than the Cloud Bills</a></p>
</li>
<li><p><a href="#heading-rethinking-ownership">Rethinking Ownership</a></p>
</li>
</ul>
<h2 id="heading-infrastructure-is-not-a-one-time-cost">Infrastructure is Not a One-Time Cost</h2>
<p>A common mistake teams make is treating infrastructure as a setup task. Something you “get right” once and move on from.</p>
<p>In reality, infrastructure is a continuous system. It changes with scale, traffic patterns, security threats, and team structure.</p>
<p>Every component you introduce adds a long tail of operational work. A load balancer isn't just a load balancer. It requires configuration tuning, monitoring, failover planning, and periodic upgrades. A database isn't just storage. It brings backup strategies, replication concerns, indexing decisions, and performance tuning.</p>
<p>Even with <a href="https://www.freecodecamp.org/news/iac-with-apis-how-to-automate-cloud-resources/">infrastructure-as-code tools</a>, the maintenance burden doesn't disappear. It becomes codified, but it still exists. Engineers must review changes, manage state, handle drift, and respond when things break.</p>
<p>The cost compounds quietly. It shows up in slower delivery cycles, longer onboarding times for new engineers, and increased risk during deployments. It's not visible in sprint planning, but it's always there.</p>
<h2 id="heading-the-cognitive-load-problem"><strong>The Cognitive Load Problem</strong></h2>
<p>One of the most underestimated aspects of infrastructure management is cognitive load.</p>
<p>Modern systems are complex. Distributed architectures, microservices, container orchestration, and multi-region deployments all introduce layers of abstraction that engineers must understand.</p>
<p>When a team owns its infrastructure, every engineer becomes partially responsible for this complexity. Even if you have dedicated platform engineers, application developers still need to understand enough to debug issues and deploy changes safely.</p>
<p>This context switching has a real cost. An engineer working on a feature must also think about container resource limits, networking rules, observability gaps, and failure modes. Instead of focusing on business logic, they're juggling operational concerns.</p>
<p>Cognitive load slows teams down. It increases the chance of mistakes. It makes systems harder to reason about. And it reduces the time engineers spend on the work that actually differentiates your product.</p>
<h2 id="heading-reliability-is-harder-than-it-looks"><strong>Reliability is Harder Than it Looks</strong></h2>
<p>Running infrastructure in production means owning reliability. This includes uptime, latency, data integrity, and incident response. Many teams underestimate how difficult this is to do well.</p>
<p><a href="https://www.ibm.com/think/topics/high-availability">High availability</a> isn't just about redundancy. It requires careful design, testing, and ongoing validation. Failover mechanisms must be exercised. Monitoring systems must be tuned to detect real issues without creating noise. Incident response processes must be defined and practised.</p>
<p>When something goes wrong, the cost is immediate and visible. Engineers are pulled into debugging sessions. Customers are affected. Business metrics drop. Postmortems are written. Action items are created, which often add more infrastructure complexity.</p>
<p>Over time, teams build layers of safeguards and tooling to improve reliability. But each layer adds more to manage. The system becomes harder to change. The risk of unintended consequences increases.</p>
<p>This is the paradox of self-managed infrastructure. The more you invest in reliability, the more complex your system becomes, and the more effort it takes to maintain that reliability.</p>
<h2 id="heading-security-and-compliance-never-stand-still"><strong>Security and Compliance Never Stand Still</strong></h2>
<p>Security is another dimension where the hidden tax becomes clear. Threats evolve constantly. Best practices change. Compliance requirements grow more stringent.</p>
<p>When you run your own infrastructure, you're responsible for staying ahead of these changes. This includes patching systems, managing access controls, encrypting data, auditing logs, and responding to vulnerabilities.</p>
<p>Even small gaps can have serious consequences. A misconfigured permission, an outdated dependency, or an exposed endpoint can lead to breaches. The cost of prevention is an ongoing effort. The cost of failure can be catastrophic.</p>
<p>Compliance adds another layer. For teams in regulated industries, infrastructure must meet specific standards. This often requires documentation, audits, and controls that go beyond basic security practices.</p>
<p>All of this work is necessary, but it doesn't directly contribute to your product’s value. It's part of the hidden tax you pay for owning infrastructure.</p>
<h2 id="heading-the-illusion-of-control"><strong>The Illusion of Control</strong></h2>
<p>One of the main reasons teams continue to manage their own infrastructure is the belief that it gives them control. They can customise everything. They can optimise for their specific needs. They aren't dependent on external platforms.</p>
<p>While this is true in theory, in practice, the level of control is often overstated. Most teams don't need deep customisation at the infrastructure level. They need reliability, scalability, and predictable behaviour.</p>
<p>The control you gain comes at the cost of responsibility. Every customisation must be maintained. Every optimisation must be monitored. Every deviation from standard patterns increases the risk of issues.</p>
<p>In many cases, teams end up recreating capabilities that are already available in managed platforms. They build internal tooling for deployment, scaling, and monitoring, only to maintain it indefinitely.</p>
<p>The question isn't whether you can manage your own infrastructure. It's whether you should. Most small to mid-sized teams shouldn't be managing infrastructure at all. If it's not your competitive advantage, it's a distraction.</p>
<h3 id="heading-when-managing-your-own-infrastructure-actually-makes-sense">When Managing Your Own Infrastructure Actually Makes Sense</h3>
<p>It would be incorrect to say that no team should manage its own infrastructure. There are cases where it's not just justified, but necessary.</p>
<p>Large-scale systems with highly specific performance or latency requirements often need deep control over infrastructure. Companies operating at the scale of Netflix or Uber invest heavily in custom infrastructure because small optimisations can translate into significant cost savings or improvements in user experience.</p>
<p>Similarly, teams working in highly regulated environments may require strict control over data residency, auditability, and security boundaries. In some cases, compliance frameworks or internal risk policies limit the use of third-party platforms, making self-managed infrastructure the only viable option.</p>
<p>There's also a class of companies where infrastructure itself is part of the product. Cloud providers, developer platforms, and data infrastructure companies are clear examples. For these teams, building and operating infrastructure isn't a distraction, it's the core business.</p>
<p>Finally, organisations with mature platform engineering teams can justify owning infrastructure when they're able to abstract complexity away from application developers. In these setups, internal platforms function similarly to PaaS, but are tailored to the organisation’s specific needs.</p>
<p>The common thread across all of these cases is scale, specialisation, or strategic necessity. Managing infrastructure makes sense when it creates a clear competitive advantage or satisfies constraints that cannot be addressed otherwise.</p>
<p>For most small to mid-sized teams, none of these conditions apply. The infrastructure they build doesn't differentiate their product, but it still carries the full operational burden.</p>
<h2 id="heading-the-rise-of-paas-as-an-alternative"><strong>The Rise of PaaS as an Alternative</strong></h2>
<p><a href="https://azure.microsoft.com/en-us/resources/cloud-computing-dictionary/what-is-paas">Platform-as-a-Service</a>, or PaaS, changes the equation. Instead of managing infrastructure directly, teams deploy applications to a platform that handles the underlying complexity.</p>
<p>With PaaS, concerns like provisioning, scaling, load balancing, and patching are abstracted away. Engineers focus on code and configuration, not on servers and networks.</p>
<p>This doesn't eliminate all operational work, but it shifts the responsibility. The platform provider handles the heavy lifting. Your team benefits from standardised, battle-tested infrastructure without having to build and maintain it.</p>
<p>PaaS also reduces cognitive load. Developers interact with a simpler interface. Deployments become more predictable. Observability is often built in. This allows teams to move faster and with greater confidence.</p>
<p>Importantly, PaaS aligns infrastructure with application needs. Instead of designing infrastructure first and fitting applications into it, teams define what their application requires, and the platform provides it.</p>
<p>Heroku was the first to bring PaaS mainstream. Since Heroku is shutting down, I moved to <a href="https://sevalla.com/">Sevalla</a> for its simplicity and the speed with which new features, especially agentic tools, are introduced. Here is a <a href="https://www.freecodecamp.org/news/top-heroku-alternatives-for-deployment/">list of alternatives</a>.</p>
<h2 id="heading-speed-is-a-competitive-advantage"><strong>Speed is a Competitive Advantage</strong></h2>
<p>In most markets, speed matters. The ability to ship features quickly, respond to feedback, and iterate on ideas is a key competitive advantage.</p>
<p>Infrastructure management can slow this down. Changes require coordination. Deployments carry risk. Debugging issues takes time away from development.</p>
<p>By reducing the infrastructure burden, PaaS enables faster delivery. Teams can deploy changes more frequently. They can experiment with new ideas without worrying about underlying systems. They can recover from failures more quickly.</p>
<p>This isn't just about engineering efficiency. It has a direct impact on business outcomes. Faster delivery leads to better products, happier customers, and a stronger market position.</p>
<h2 id="heading-cost-is-more-than-the-cloud-bills">Cost is More Than the Cloud Bills</h2>
<p>When teams evaluate infrastructure strategies, they often focus on direct costs. Cloud bills, reserved instances, and resource utilisation are measured and optimised.</p>
<p>But the hidden tax of infrastructure is mostly indirect. It includes engineering time spent on maintenance, the opportunity cost of delayed features, and the risk of outages and security incidents.</p>
<p>These costs are harder to quantify, but they're often larger than the direct costs. A single incident can consume days of engineering time. A delayed feature can impact revenue. A security breach can damage a reputation.</p>
<p>PaaS may appear more expensive on paper, but it often reduces total cost when you account for these hidden factors. It shifts spending from operational overhead to product development.</p>
<h2 id="heading-rethinking-ownership"><strong>Rethinking Ownership</strong></h2>
<p>The core question isn't about tools or technologies. It's about ownership. What should your team own, and what should it delegate?</p>
<p>Your product is your core asset. It's what differentiates you in the market. Infrastructure, while critical, is a means to support that product.</p>
<p>By continuing to manage infrastructure, teams take on responsibilities that don't directly contribute to their goals. They pay the hidden tax in time, focus, and risk.</p>
<p>PaaS offers a way to rebalance this. It allows teams to delegate infrastructure concerns and focus on building value.</p>
<p>The shift isn't always easy. It requires changes in mindset, tooling, and processes. But for many teams, it's a necessary step.</p>
<p>Because the real cost of infrastructure isn't what you pay your cloud provider. It's what you give up to run it yourself.</p>
<p><em>Join my</em> <a href="https://applyaito.substack.com/"><em><strong>Applied AI newsletter</strong></em></a> <em>to learn how to build and ship real AI systems. Practical projects, production-ready code, and direct Q&amp;A. You can also</em> <a href="https://www.linkedin.com/in/manishmshiva/"><em><strong>connect with me on</strong></em> <em><strong>LinkedIn</strong></em></a><em><strong>.</strong></em></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Infrastructure as Code with APIs: How to Automate Cloud Resources the Developer Way ]]>
                </title>
                <description>
                    <![CDATA[ Modern software development moves fast. Teams deploy code many times a day. New environments appear and disappear constantly. In this world, manual infrastructure setup simply doesn't scale. For years ]]>
                </description>
                <link>https://www.freecodecamp.org/news/iac-with-apis-how-to-automate-cloud-resources/</link>
                <guid isPermaLink="false">69c17f3c30a9b81e3a894704</guid>
                
                    <category>
                        <![CDATA[ #IaC ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Cloud Computing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ APIs ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Manish Shivanandhan ]]>
                </dc:creator>
                <pubDate>Mon, 23 Mar 2026 17:58:20 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/uploads/covers/5e1e335a7a1d3fcc59028c64/d45b828b-c7b7-4138-a373-6edea786bc65.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Modern software development moves fast. Teams deploy code many times a day. New environments appear and disappear constantly. In this world, manual infrastructure setup simply doesn't scale.</p>
<p>For years, developers logged into dashboards, clicked through forms, and configured servers by hand. This worked for small projects, but it quickly became fragile. Every manual step increased the chance of mistakes. Environments drifted apart. Reproducing the same setup became difficult.</p>
<p><a href="https://www.redhat.com/en/topics/automation/what-is-infrastructure-as-code-iac">Infrastructure as Code (IaC)</a> solves this problem. Instead of clicking through interfaces, developers define infrastructure using code. This approach makes infrastructure predictable, repeatable, and easy to automate.</p>
<p>In recent years, another approach has become popular alongside traditional IaC tools: using cloud APIs directly to create and manage infrastructure. This gives developers full control over how resources are provisioned and integrated into workflows.</p>
<p>This article explains what Infrastructure as Code means, why APIs are a powerful way to implement it, and how developers can automate cloud resources using simple scripts.</p>
<p>A basic understanding of cloud platforms, command-line interfaces, and scripting languages like Python, Bash, or JavaScript will help you follow along effectively. Familiarity with APIs, authentication methods, and CI/CD concepts will also make it easier to implement the automation techniques discussed in this article.</p>
<h2 id="heading-heres-what-well-cover">Here's what we'll cover:</h2>
<ul>
<li><p><a href="#heading-what-is-infrastructure-as-code">What Is Infrastructure as Code?</a></p>
</li>
<li><p><a href="#heading-the-limits-of-manual-infrastructure">The Limits of Manual Infrastructure</a></p>
</li>
<li><p><a href="#heading-why-apis-are-a-powerful-iac-tool">Why APIs Are a Powerful IaC Tool</a></p>
</li>
<li><p><a href="#heading-automating-infrastructure-with-scripts">Automating Infrastructure with Scripts</a></p>
</li>
<li><p><a href="#heading-practical-example-with-sevalla">Practical Example with Sevalla</a></p>
<ul>
<li><p><a href="#heading-installing-cli">Installing CLI</a></p>
</li>
<li><p><a href="#heading-working-with-your-infrastructure-using-cli">Working with your Infrastructure using CLI</a></p>
</li>
</ul>
</li>
<li><p><a href="#heading-infrastructure-as-code-improves-developer-productivity">Infrastructure as Code Improves Developer Productivity</a></p>
</li>
<li><p><a href="#heading-the-future-of-infrastructure">The Future of Infrastructure</a></p>
</li>
<li><p><a href="#heading-conclusion">Conclusion</a></p>
</li>
</ul>
<h2 id="heading-what-is-infrastructure-as-code">What Is Infrastructure as&nbsp;Code?</h2>
<p>Infrastructure as Code means managing infrastructure using code instead of manual processes.</p>
<p>Instead of setting up servers, databases, and networks by hand, you define them in scripts or configuration files. These files describe the desired state of your infrastructure. A tool or script then creates and maintains that state automatically.</p>
<p>For example, instead of manually creating a database, you might define it in code like this:</p>
<pre><code class="language-plaintext">database:
  name: app_db
  engine: postgres
  version: 16
</code></pre>
<p>Once the code runs, the database is created automatically.</p>
<p>This approach provides several key benefits.</p>
<p>First, it improves consistency. Every environment is created from the same definition. Development, staging, and production environments stay aligned.</p>
<p>Second, it improves repeatability. If infrastructure fails, it can be recreated from code in minutes.</p>
<p>Third, it improves version control. Infrastructure definitions live in the same repositories as application code. Teams can review, track, and roll back changes.</p>
<p>Finally, it enables automation. Infrastructure can be created during deployments, tests, or CI/CD pipelines.</p>
<h2 id="heading-the-limits-of-manual-infrastructure">The Limits of Manual Infrastructure</h2>
<p>Before IaC became common, infrastructure management relied heavily on dashboards and manual configuration.</p>
<p>A developer would open a cloud console and perform steps like:</p>
<ul>
<li><p>Create a server</p>
</li>
<li><p>Attach storage</p>
</li>
<li><p>Configure environment variables</p>
</li>
<li><p>Connect a database</p>
</li>
<li><p>Add a domain</p>
</li>
</ul>
<p>These steps worked, but they introduced problems.</p>
<p>First of all, manual configuration is hard to document. Even if teams write guides, small details are often missed. Over time, environments drift apart.</p>
<p>Manual processes also slow down development. Spinning up a new environment may take hours instead of seconds.</p>
<p>Even worse, manual infrastructure cannot easily be tested. If something breaks, reproducing the same conditions becomes difficult.</p>
<p>Infrastructure as Code removes these problems by turning infrastructure into something that can be scripted, tested, and automated.</p>
<h2 id="heading-why-apis-are-a-powerful-iac-tool">Why APIs Are a Powerful IaC&nbsp;Tool</h2>
<p>Many people associate Infrastructure as Code with tools like Terraform or CloudFormation. These tools are powerful, but they're not the only option.</p>
<p>Every modern cloud platform exposes an API. That API allows developers to create resources programmatically.</p>
<p>This means infrastructure can be controlled directly from code using HTTP requests or command-line interfaces.</p>
<p>Using APIs for IaC has several advantages.</p>
<p>First, it offers maximum flexibility. Developers can integrate infrastructure creation directly into applications, deployment scripts, or internal tools.</p>
<p>Second, it reduces tooling complexity. Instead of learning a specialized IaC language, teams can use languages they already know, such as Python, JavaScript, or Bash.</p>
<p>Third, it enables dynamic infrastructure. Scripts can create resources only when needed, scale them automatically, and remove them when work is complete.</p>
<p>For example, a test suite could automatically create a database, run tests, and delete the database afterwards. This keeps environments clean and reduces costs.</p>
<p>APIs essentially turn the cloud into a programmable platform.</p>
<h2 id="heading-automating-infrastructure-with-scripts">Automating Infrastructure with&nbsp;Scripts</h2>
<p>Using APIs for infrastructure automation usually follows a simple workflow.</p>
<ol>
<li><p>First, a script authenticates with the cloud platform using an API token or credentials.</p>
</li>
<li><p>Second, the script sends requests to create or modify resources such as applications, databases, or storage.</p>
</li>
<li><p>Third, the script captures identifiers or configuration values from the response.</p>
</li>
<li><p>Finally, those values are used in later steps, such as deployments or integrations.</p>
</li>
</ol>
<p>Because these steps run in code, they can easily be included in CI/CD pipelines.</p>
<p>A typical pipeline might do the following:</p>
<ul>
<li><p>Create infrastructure</p>
</li>
<li><p>Deploy the application</p>
</li>
<li><p>Run tests</p>
</li>
<li><p>Collect metrics</p>
</li>
<li><p>Destroy temporary environments</p>
</li>
</ul>
<p>This approach ensures every deployment follows the same process.</p>
<h2 id="heading-practical-example-with-sevalla">Practical Example with&nbsp;Sevalla</h2>
<p>A practical way to apply Infrastructure as Code through APIs is to use a command-line interface that directly interacts with a cloud platform’s API. This lets you automate infrastructure creation using scripts rather than dashboards.</p>
<p>One example is the <a href="https://github.com/sevalla-hosting/cli">Sevalla CLI</a>, which exposes infrastructure operations as terminal commands that can be executed manually or inside automation pipelines.</p>
<p><a href="https://sevalla.com/">Sevalla</a> is a developer-centric PaaS designed to simplify your workflow. They provide high-performance application hosting, managed databases, object storage, and static sites in one unified platform.</p>
<p>Other options are AWS and Azure, which require complex CLI tools and heavy DevOps overhead. Sevalla offers simplicity and ease of use, similar to Heroku.</p>
<h3 id="heading-installing-cli">Installing CLI</h3>
<p>You can install the CLI using the following shell command:</p>
<pre><code class="language-plaintext">bash &lt;(curl -fsSL https://raw.githubusercontent.com/sevalla-hosting/cli/main/install.sh)
</code></pre>
<p>Once installed, you can view the list of all available commands using the <code>help</code> command:</p>
<img src="https://cdn.hashnode.com/uploads/covers/66c6d8f04fa7fe6a6e337edd/3e6209cd-6c1e-420d-9d60-7376d54849d0.png" alt="Sevalla CLI Help" style="display:block;margin:0 auto" width="1000" height="730" loading="lazy">

<p>The first step is authentication. Make sure you have an account on Sevalla before using the CLI.</p>
<pre><code class="language-plaintext">sevalla login
</code></pre>
<p>For automated environments such as CI/CD pipelines, authentication can be done with an API token. The token is stored in an environment variable so scripts can run without user interaction.</p>
<pre><code class="language-plaintext">export SEVALLA_API_TOKEN="your-api-token"
</code></pre>
<p>Once authenticated, you can quickly view a list of your apps using <code>sevalla apps list</code></p>
<img src="https://cdn.hashnode.com/uploads/covers/66c6d8f04fa7fe6a6e337edd/e3590cfa-5a95-4c5a-b0e9-8615070932da.png" alt="Sevalla Apps List" style="display:block;margin:0 auto" width="958" height="228" loading="lazy">

<h3 id="heading-working-with-your-infrastructure-using-cli">Working with Your Infrastructure using CLI</h3>
<p>Your infrastructure can now be created directly from the command line. For example, you might start by creating an application service that will run the backend code:</p>
<pre><code class="language-plaintext">sevalla apps create --name myapp --source privateGit --cluster &lt;id&gt;
</code></pre>
<p>This command provisions a new application resource on the platform. Instead of navigating through a web interface and filling out forms, the entire setup is performed through a single command.</p>
<p>Because the command can be stored in scripts or configuration files, it becomes part of the project’s infrastructure definition.</p>
<p>After creating the application, you'll often need a database. You can also provision this programmatically:</p>
<pre><code class="language-plaintext">sevalla databases create \
  --name mydb \
  --type postgresql \
  --db-version 16 \
  --cluster &lt;id&gt; \
  --resource-type &lt;id&gt; \
  --db-name mydb \
  --db-password secret
</code></pre>
<p>This creates a PostgreSQL database with a defined version and credentials. In an automated workflow, the database creation step could run during environment setup for staging or testing.</p>
<p>Once the application and database exist, the next step might be configuring environment variables so the application can connect to the database:</p>
<pre><code class="language-plaintext">sevalla apps env-vars create &lt;app-id&gt; --key DATABASE_URL --value "postgres://..."
</code></pre>
<p>These configuration values can be injected during deployments, ensuring the application always receives the correct settings.</p>
<p>Deployment automation is another key part of Infrastructure as Code. Instead of manually triggering deployments, a script can deploy new code whenever a repository is updated.</p>
<pre><code class="language-plaintext">sevalla apps deployments trigger &lt;app-id&gt; --branch main
</code></pre>
<p>This allows CI/CD systems to deploy new versions of the application automatically after tests pass.</p>
<p>Infrastructure automation also includes scaling and monitoring. For example, if an application needs more instances to handle traffic, you can update the number of running processes programmatically.</p>
<pre><code class="language-plaintext">sevalla apps processes update &lt;process-id&gt; --app-id &lt;app-id&gt; --instances 3
</code></pre>
<p>You can also retrieve metrics through the CLI. This allows monitoring tools or scripts to analyze system performance.</p>
<pre><code class="language-plaintext">sevalla apps processes metrics cpu-usage &lt;app-id&gt; &lt;process-id&gt;
</code></pre>
<p>Similarly, you can also query application metrics such as response time or request rates to detect performance issues.</p>
<p>Another common step in infrastructure automation is configuring domains. Instead of manually linking domains to applications, a script can add them during environment setup.</p>
<pre><code class="language-plaintext">sevalla apps domains add &lt;app-id&gt; --name example.com
</code></pre>
<p>With these commands combined in scripts or pipelines, you can fully automate the lifecycle of your infrastructure. A CI pipeline could create an application, provision a database, configure environment variables, deploy code, attach a domain, and monitor performance  – all without human intervention.</p>
<p>Because every command supports JSON output, scripts can also capture values returned by the platform and reuse them in later steps. For example:</p>
<pre><code class="language-plaintext">APP_ID=$(sevalla apps list --json | jq -r '.[0].id')
</code></pre>
<p>This ability to chain commands together makes it easy to build powerful automation workflows.</p>
<p>In practice, teams often place these commands inside deployment scripts or pipeline steps. Whenever code is pushed to a repository, the pipeline automatically provisions or updates the infrastructure needed to run the application.</p>
<p>This approach demonstrates how APIs and automation tools can turn infrastructure into something you can manage the same way you manage application code: through scripts, version control, and automated workflows.</p>
<h2 id="heading-infrastructure-as-code-improves-developer-productivity">Infrastructure as Code Improves Developer Productivity</h2>
<p>One of the biggest benefits of Infrastructure as Code is developer productivity.</p>
<p>Developers no longer need to wait for infrastructure changes or manually configure environments.</p>
<p>Instead, infrastructure becomes part of the development workflow.</p>
<p>When a new feature requires a service, the developer simply adds the infrastructure definition to the repository. The pipeline then creates it automatically.</p>
<p>This reduces delays and keeps development moving quickly.</p>
<p>It also makes onboarding easier. New team members can spin up a full environment with a single command.</p>
<h2 id="heading-the-future-of-infrastructure">The Future of Infrastructure</h2>
<p>Cloud infrastructure continues to evolve toward automation and programmability.</p>
<p>Platforms increasingly expose APIs that allow every resource to be created, configured, and monitored through code.</p>
<p>This trend aligns naturally with the way developers already work.</p>
<p>Applications are built with code. Deployments are automated with code. It makes sense that infrastructure should also be defined with code.</p>
<p>Infrastructure as Code with APIs takes this idea even further. It allows infrastructure to be embedded directly into development workflows, pipelines, and internal tools.</p>
<p>The result is faster development, fewer configuration errors, and more reliable systems.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Infrastructure as Code has transformed how teams manage cloud environments.</p>
<p>By replacing manual configuration with code, organizations gain consistency, automation, and repeatability.</p>
<p>Using APIs to control infrastructure adds another level of flexibility. Developers can integrate infrastructure directly into scripts, pipelines, and applications.</p>
<p>This approach turns the cloud into a programmable platform.</p>
<p>As systems grow more complex and deployment cycles accelerate, the ability to automate infrastructure will only become more important.</p>
<p>For modern development teams, treating infrastructure as code is no longer optional. It's the foundation of reliable and scalable software delivery.</p>
<p><em>Hope you enjoyed this article. Learn more about me by</em> <a href="https://www.linkedin.com/in/manishmshiva/edit/intro/"><em><strong>visiting my LinkedIn</strong></em></a><em>.</em></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Create and Deploy IaC by Chatting with AI ]]>
                </title>
                <description>
                    <![CDATA[ Infrastructure as Code (IaC) is a revolutionary approach to managing and provisioning computing infrastructure. With IaC, you can automate the process of provisioning, configuring, and managing infrastructure using code and software development techn... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/create-and-deploy-iac-by-chatting-with-ai/</link>
                <guid isPermaLink="false">66b201caa2135cc2539a2161</guid>
                
                    <category>
                        <![CDATA[ #IaC ]]>
                    </category>
                
                    <category>
                        <![CDATA[ youtube ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Beau Carnes ]]>
                </dc:creator>
                <pubDate>Wed, 01 Nov 2023 13:39:47 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/11/iacai.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Infrastructure as Code (IaC) is a revolutionary approach to managing and provisioning computing infrastructure. With IaC, you can automate the process of provisioning, configuring, and managing infrastructure using code and software development techniques. This approach provides a more efficient, consistent, and reliable way of managing infrastructure compared to traditional manual methods.</p>
<p>While IaC offers numerous benefits, it can sometimes be challenging to navigate the complexity of configuration properties and the variety of functions and commands needed to deploy infrastructure. This is where artificial intelligence (AI) comes into play. AI has the potential to significantly simplify the process of deploying infrastructure by automating many of the complex and tedious tasks involved in IaC.</p>
<p>We just published a course on the freeCodeCamp.org YouTube channel that will teach you how to use AI to create and deploy IaC. In this course, you will learn how to utilize AI tools developed by Pulumi, a company that has provided a grant to make this course possible. </p>
<p>Through a series of demonstrations and hands-on examples, we will guide you through the process of creating a simple web project to give you a grasp of the power of AI tools. We then delve deeper into the concept of infrastructure as code (IaC) and teach you the basics of using Pulumi.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/image-3.png" alt="Image" width="600" height="400" loading="lazy">
<em>Pulumi AI web interface.</em></p>
<p>You will learn how to use Pulumi AI to develop infrastructure, even if you lack the technical knowledge of the exact steps involved. Additionally, we will demonstrate how AI can assist you in searching through all your infrastructure resources, simplifying the process of making updates.</p>
<p>Pulumi AI's adaptability to natural language inputs can dramatically increase productivity. For example, you can input a basic query like "Show me how to run nginx as an ECS Fargate task in the default VPC," and Pulumi AI will process the request and provide a solution that references the necessary AWS resources and providers. This adaptability showcases the power and convenience of using AI in the field of web development and infrastructure deployment.</p>
<p>Within the Pulumi ecosystem, there are over 130 providers. Some of these providers, like AWS, offer more than a thousand resources. On average, each of these resources might have around 30 configuration properties. Given the vast number of potential configurations, it can sometimes be challenging to set everything up perfectly. This is where Pulumi AI proves useful.</p>
<p>Watch the full course on the freeCodeCamp.org YouTube channel (1-hour watch).</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/ywLxbDV9TBU" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<h3 id="heading-transcript">Transcript</h3>
<p>(autogenerated)</p>
<p>I'm Beau Carnes from FreeCodeCamp.org, and in this course, I'm going to show you how you can use AI to make it simpler to deploy infrastructure and websites.<br>When creating and deploying using infrastructure as code, it can sometimes be hard to keep track of all the configuration properties and what functions and commands you need to use.<br>Well, now artificial intelligence can help you with all of those things.<br>I'll be showing you how to use AI tools created by Pulumi.<br>Pulumi provided a grant to make this course possible.<br>First, I'll demonstrate how to create a simple web project so you can quickly grasp the power<br>of these AI tools.<br>Then I'll explain more about infrastructure as code and show you the basics of using Pulumi.<br>After that, I'll demonstrate how it's possible to use Pulumi AI to develop infrastructure,<br>even if you don't know the exact steps yourself.<br>And finally, I'll demonstrate how you can use AI to help you search through all of your<br>infrastructure resources to make it simpler for you to make updates.<br>Okay, let's get started.<br>I'm going to show you how to use the Pulumi AI to quickly spin up an S3 bucket and create<br>a website.<br>I'm just going to be showing a quick example right now.<br>But later in this course, I'll show you some a lot more complicated examples on how to<br>use Pulumi AI for infrastructure as code.<br>But right now I'll just do MPX, Pulumi AI.<br>Now I previously already set up Pulumi on my computer and also attached AWS to Pulumi.<br>I'll have a link to the instructions for how to do that in the description.<br>So now what what do I want to build?<br>Well, I want to build an S3 bucket.<br>And I can just use normal English.<br>It's also connecting to chat GPT or the open AI API to be able to handle plain English.<br>But then it also is able to connect with Pulumi.<br>And I just created a bucket.<br>If I go over to my AWS console, and we see the bucket, it's right in the console now.<br>Okay, now that we have the bucket, let's add something to the bucket.<br>So add an index that HTML file with a simple number guessing game.<br>Okay, now I'm just going to ask what is the URL.<br>Okay, now I can just copy this URL and access denied.<br>It's actually easy enough to fix I can go into my bucket here is just because of the<br>permissions they get set by default to block all public access.<br>So I'll just unblock public access.<br>And then I'll go to index that HTML set the permission of this.<br>And then we'll also go down here and do ACL enabled.<br>Then we can edit this.<br>So we'll have read and list and I figured objects we can make public using<br>ACL.<br>Now you may not have to do all that if you already had it set up beforehand.<br>So depending on how you have AWS set up, Pulumi can just make it public by default.<br>But if you don't have it set up correctly, like I didn't have it set up, you may have<br>to manually make everything public.<br>Okay, let me just go to the website again.<br>Now and this one, it just made it so I don't actually get to have to enter the number I<br>just have to keep cooking try it until we get the right number.<br>Actually I don't think that code is working at all.<br>So let's see if we can update the code, redo the complete number guessing game from scratch.<br>Now you're usually you're not going to be having it code something from this, you'll<br>be having it create infrastructure.<br>But I just wanted to kind of show this example of how we can actually create a code as well.<br>You're just going to experiment with it.<br>If you can actually create a website like this, then you could also have it say, Oh,<br>add styling, and then it can add extra styling to the website.<br>But now let's just move on to something else.<br>In this section, I'll give a brief overview of infrastructure as code.<br>After that, I'll review the basics of Pulumi.<br>And finally, I'll demonstrate how to use AI to simplify and streamline your infrastructure<br>as code.<br>Feel free to skip ahead if you already know the basics of infrastructure as code.<br>So infrastructure as code is the practice of managing and provisioning infrastructure<br>through machine readable definition files, rather than using physical hardware configuration<br>or interactive configuration tools.<br>In the era of cloud computing, infrastructure as code plays a pivotal role in ensuring that<br>infrastructure is consistent, repeatable, and scalable.<br>Traditionally, infrastructure was managed manually with system administrators configuring<br>each server individually.<br>As the scale of operations grew, this approach became inefficient and error prone.<br>The need for automation led to the birth of configuration management tools, and the concept<br>of infrastructure as code.<br>Here's some of the key concepts and principles behind infrastructure as code.<br>The first is idempotence.<br>This means the ability to run the same code multiple times without changing the result<br>after the first run.<br>The next concept is immutability.<br>Infrastructure components are never modified after they're deployed.<br>If changes are needed, new infrastructure is provisioned and old ones are discarded.<br>The final key principle is declarative versus the imperative approach.<br>While a declarative approach specifies the desired end state, like I want a server, an<br>imperative approach specifies the steps to achieve the end state, like create a server,<br>then install software x with infrastructure as code infrastructure changes are made in<br>a systematic, repeatable manner, reducing manual errors.<br>It also allows for version control, ensuring that all team members are working with the<br>same configurations.<br>Some of the popular infrastructure as code tools are terraform, which is a tool that<br>allows users to define infrastructure as code using a declarative configuration language<br>that is a proprietary domain specific language.<br>Ansible is an open source automation tool for configuration management, application<br>deployment and task automation.<br>Graph and puppet are configuration management tools that allow infrastructure to be defined<br>as code and automated.<br>Pulumi is an open source tool that offers the flexibility to use any programming language<br>for managing infrastructure.<br>This makes Pulumi widely accessible to developers and DevOps engineers from any background.<br>And we'll be talking more about Pulumi later.<br>Some of the best practices for infrastructure as code are to modularize configurations to<br>ensure they're reusable, regularly test and validate infrastructure as code scripts to<br>ensure they work as expected, and document configurations for clarity and future reference.<br>Let's just quickly look at a code example for infrastructure as code, we'll be going<br>through code more in detail later, I just wanted you to see that this is how you would<br>use Pulumi to set up EC2 instances in AWS using Python, the line for structures code<br>offers numerous benefits, it's essential to manage secrets securely, ensure infrastructure<br>security and handle potential infrastructure drift, where the actual state diverges from<br>the desired state, infrastructure as code is revolutionizing the way we think about<br>and manage infrastructure.<br>As the tech landscape continues to evolve, adopting infrastructure as code and staying<br>updated with its best practices will be crucial for organizations aiming for efficiency and<br>scalability.<br>Now let's take a deep dive into Pulumi.<br>So what is Pulumi?<br>Pulumi is an infrastructure as code platform designed for developers and cloud engineers<br>who want to use general purpose programming languages to define and manage cloud resources.<br>Unlike traditional infrastructure as code tools that use domain specific languages,<br>Pulumi allows users to leverage popular programming languages, such as go JavaScript or TypeScript,<br>Python, and dotnet platforms.<br>Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition<br>to modern architectures, including containers, Kubernetes clusters, and serverless functions.<br>Pulumi supports dozens of cloud service providers, will be using Python and deploying on AWS,<br>though it can be done with other programming languages and cloud providers.<br>Let's look at the key components of Pulumi.<br>One is provider SDKs.<br>These are installable packages that your program consumes.<br>Pulumi supports over 75 providers with new ones being added regularly.<br>The command line interface is a tool that users can use to run previews and updates<br>on their infrastructure programs.<br>The service back end is the default state storage service for all Pulumi projects.<br>This stores a snapshot of the state of your resources, known as the checkpoint every time<br>you update your cloud resources using Pulumi.<br>So let's look at how Pulumi works.<br>It works by processing the code written in one of the supported languages and generating<br>a graph of the resources that need to be created, updated, or deleted.<br>This graph is then used to calculate the set of CRUD operations required to achieve the<br>desired state of the infrastructure.<br>Here are some of the key features, the component resources.<br>These are resources that encapsulate multiple child resources, allowing users to represent<br>several related resources as a single unit stack references.<br>This feature allows users to create multiple stacks and consume the outputs exported by<br>other upstream stacks.<br>Dynamic providers.<br>This feature serves as an escape hatch for when there's no official provider for a resource.<br>Automation API.<br>This API allows users to programmatically invoke CLI operations, enabling advanced deployment<br>scenarios.<br>Pulumi insights brings intelligence to cloud infrastructure using Pulumi.<br>It includes features like Pulumi AI, which is a generative AI assistant built to create<br>cloud infrastructure using the natural language, and Pulumi resource search, which offers multi<br>cloud search and analytics across every cloud resource and environment and organization.<br>Soon I'll be showing how to use both of these tools.<br>With the introduction of new CLI commands, Pulumi insights is now more accessible to<br>users, allowing them to leverage AI and resource search directly from the terminal.<br>Pulumi's program model starts with the Pulumi project at the outermost layer.<br>However, users don't often interact directly with these projects.<br>They're typically created when initializing a Pulumi program and tend to disappear when<br>the last stack within the project is destroyed.<br>Inside the project, there is a program, which is the main entry point for the program.<br>If you're using TypeScript, this is index.ts.<br>So that would be the program, the main program.<br>This is where we define our infrastructure.<br>The infrastructure is characterized by Pulumi resources.<br>An example of a Pulumi resource is an AWS s3 bucket.<br>Such resources have been have both inputs and outputs.<br>For instance, specifying a bucket's name would be an input, while the buckets Amazon resource<br>name or ARN would be an output.<br>A reoccurring pattern you'll notice in a Pulumi program is how the output of one resource<br>becomes the input for another.<br>If you have an s3 bucket and wish to define a policy for it, the ARN output of the bucket<br>will serve as an input to the bucket policy.<br>Behind the scenes, Pulumi manages the dependencies between these resources, ensuring they are<br>set up or taken down efficiently.<br>It also keeps track of the sequence in which operations need to be executed.<br>In addition to the program, there's also the concept of stacks.<br>A stack is essentially an instance of your Pulumi program, with the added flexibility<br>of supplying different configuration values for different instances.<br>This is useful when you want to have separate setups for development, QA and production<br>environments.<br>For instance, in a development environment, you might opt for fewer or less powerful EC2<br>instances compared to a production environment.<br>This differentiation is achieved using stack configuration.<br>Discussing Pulumi's physical architecture at the foundational level, we have our Pulumi<br>programs.<br>These programs can be written in various languages, such as Python, TypeScript, JavaScript, Go,<br>C sharp, F sharp, and Java.<br>Pulumi also offers support for GAML, mainly for larger organizations transitioning to<br>Pulumi at scale.<br>These options caters to those with traditional operations, with traditional operations experience<br>who might find it more comfortable working with YAML than with standard programming languages.<br>The Pulumi engine interprets your Pulumi program.<br>The Pulumi engine works by comparing your Pulumi programs desired state with the existing<br>state as recorded in your state file, it identifies the discrepancies between the two and determines<br>which resources need to be created, updated or deleted.<br>This process is facilitated through Pulumi providers.<br>For instance, in our example, we mentioned the Pulumi AWS provider and the Kubernetes<br>provider.<br>These providers offer support for a multitude of public clouds, software as a service providers,<br>and other platforms.<br>This vast array of providers ensures that users can leverage Pulumi's declarative approach<br>to manage resources across a broad spectrum of services.<br>Now we'll give a brief example on how to use Pulumi.<br>And then we'll see how to use the AI features.<br>We'll start with a blank directory, and we'll initialize a Pulumi program using the Pulumi<br>new command.<br>Upon executing this command, there's a lot of templates are displayed.<br>There's a bunch, there's 221.<br>And I'm going to just go to the static website, AWS TypeScript.<br>So this is just a TypeScript program to deploy a stack website on AWS.<br>So I'm going to put TypeScript AWS for the project name, default project description<br>default stack name, I'll just use this region, which is actually pretty close to me us West<br>two.<br>And the rest of this will just keep as default.<br>So these prompts are specific to this template, because it set up sets up a static site.<br>Post initialization, the system runs an NPM install, which will be familiar to anyone<br>experience with node.js.<br>Now after installation, our project directly directory reveals several files and folders,<br>we have a node modules folder, where node.js stores dependency, www folder created by the<br>project to house our website files, the git ignore file.<br>But first, let's discuss the Pulumi dot yaml file.<br>This file contains project configuration details.<br>Remember, when we use the Pulumi new command and provide certain inputs, well, those responses<br>are saved in this file.<br>Additionally, we have a Pulumi dot dev dot yaml, which is the stack configuration.<br>We're deploying our static site to different regions, we can create separate stacks with<br>their respective configuration files.<br>So let's move on to the index.ts file, let me move that down here.<br>This is the core of our Pulumi program.<br>It begins with importing libraries, like the the Pulumi SDK, and which allows us to access<br>our values from our configuration file, and also the AWS provider, which it's going to<br>create AWS resources, and a Pulumi component called sync folder to synchronize a folder<br>with our object store.<br>This file also demonstrates the pattern of using the output of one resource as the input<br>of another resource.<br>So I'm not going to go through this file in complete detail, but you can see how it's<br>creating a three bucket.<br>It's configuring the ownership controls, configuring the ACL block, and it's using the sync folder<br>that we talked about, creating a Cloudflip CDN to distribute the the CAS on the website.<br>So this is just the template, and we can basically modify this template, how we want.<br>And then it's just going to export the URL and host name to the bucket and distribution.<br>In this example, and s3 buckets details like its ownership controls might reference another<br>resource.<br>The file this file proceeds to define various resources related to the bucket and set the<br>sync folder to mirror the content of our www folder with the s3 bucket and establishes a<br>cloud front distribution.<br>And then, like we already talked about here, this is when it ends with defining the stack<br>outputs using a standard TypeScript export statement, allowing external access to certain<br>values from our Pulumi program.<br>So to see the see the impact of the configurations, we will use the Pulumi up command.<br>So let me go back to the console here.<br>And we'll do Pulumi up.<br>This stands for update, the command previews the changes before our actual execution, ensuring<br>that we're aware of the actions Pulumi plans to take.<br>So this is where it will confirm whether we want to perform the update.<br>And I'll go to Yes, that is what we want to do.<br>So after we get this all done, we can check the website.<br>So here's the URL.<br>And I'm just going to follow the link.<br>And it works.<br>Hello, Pulumi or Hello World deployed by Pulumi.<br>Let me show you one more thing really quick.<br>Let's see what happens if I make a change.<br>So like for instance, I can go here and I'm going to change the default TTL to 300.<br>And then I'll just save that.<br>And then I'll just do Pulumi up again.<br>And you'll see that it will not recreate every resource.<br>It only makes the update.<br>This is what it means that Pulumi is declarative.<br>I'll say do you want to perform the update?<br>You just say your desired state and Pulumi will figure out what needs to be updated.<br>And then finally, we can use the Pulumi<br>destroy if I can spell it right, destroy command to tear down the resources.<br>That way we won't incur any more charges.<br>So yes, I do want to destroy this.<br>And that will just bleed everything off of AWS.<br>So if I just go back to the page and refresh, there's nothing there, we get the 403 forbidden.<br>So now I'm going to go to a different page, Pulumi.com slash AI.<br>We're going to talk about Pulumi AI.<br>Pulumi AI is accessible at Pulumi.com slash AI.<br>It's free for everyone to use.<br>Within the Pulumi ecosystem, there are over 130 providers.<br>Some of these providers like AWS offer more than 1000 resources.<br>On average, each of these resources might have around 30 configuration properties.<br>Given the vast number of potential configurations, it can sometimes be challenging to set everything<br>up perfectly.<br>This is where Pulumi AI proves useful.<br>So to demonstrate, I'll just put a basic prompt here, I'm going to say show me how to run<br>nginx as an ECS for gate task in the default VPC.<br>So this is a natural language prompt.<br>And you see, I just I chose TypeScript as the preferred language, but I could have chosen<br>a different language.<br>And you can see it's just generating the program.<br>It took a minute to process.<br>You can see often begins the response by echoing the initial prompt or question that creates<br>an internal feedback loop, which enhances the quality of the solution provided.<br>And we can see everything that it suggests, like using the ECS cluster, it creates an<br>ECS task definition.<br>And that creates a Fargate service.<br>And it basically goes through and does what we asked it to do.<br>And then it basically summarizes what it's going to do.<br>And then it just gives you some some different things that you can change, you can place<br>nginx latest with any Docker image of your choice, it's been in your own AWS account,<br>and then just kind of explains it even more.<br>So we can just copy this.<br>And then I can put it right into here.<br>And then you can see there are some some squiggly lines here.<br>So this is an iterative process.<br>Basically it's not uncommon to encounter some errors.<br>And these tools while powerful might not always yield perfect results.<br>So users should expect some degree of iteration and refinement.<br>So I can look right here says property quick.<br>So I can actually just copy this.<br>And I will bring in here, I'll say error, and I'll just paste in the error.<br>And now it's going to fix it for me, it's going to update it.<br>And it realize it realizes that in more recent versions of plume, the test definition should<br>be created differently.<br>Okay, so now let's copy this updated code upside did not copy it right.<br>Let's try it again.<br>Click that copy button.<br>Okay, so now we don't have the red squiggle lines there.<br>And you can see we can just go through that with all of it and just telling it what's<br>wrong and having it fix having it fix the error.<br>So basically, we can go back and forth it like I said, it's an iterative process.<br>And while it may not produce flawless results on the first try, they can provide an excellent<br>starting point, often around 80% accurate, which significantly reduces the time and effort<br>required.<br>These tools are especially beneficial when tasked with recalling specific configurations<br>or procedures that aren't routinely used.<br>For example, if one needs to draft an IAM policy to access a secret, but doesn't remember<br>the exact steps, tools like plume AI can provide a quick and accurate solution.<br>Plume AI is a powerful tool that can significantly expedite the learning and applications of<br>coding tasks.<br>So now let's try a more complex example.<br>And then we'll follow through to creating the actual resources here, here, we're not<br>going to actually run this program, but this next one, we will.<br>So let me go over here, and I'm just going to create a new conversation by just going<br>to plume.com slash AI again.<br>So now I want to create a serverless function chain.<br>Basically, I want to deploy a series of serverless functions that trigger each other in a specific<br>order.<br>Basically, AWS lambda functions that trigger another lambda function and so on.<br>So the kind of architecture I'm looking to create is ideal for sequential tasks, where<br>one processes outcome determines the subsequent processes input.<br>Now we're just going to do a very simple function change, it wouldn't be like it's not going<br>to be like a real world situation.<br>But I can give you an example of what you can do with plume AI function chains are what's<br>sometimes called function pipelines or sequences, can streamline multi step processes by allowing<br>the output of one function to serve as input to the next, some some like real applications<br>that if they're used for would be an e comms order processing, where stages like order<br>validation payment and inventory updates occur sequentially, and data data analytics, where<br>raw data undergo stages of cleansing transformation and analysis.<br>Also maybe like user registration workflows, document approval systems, financial transaction<br>monitoring.<br>So when you have a modular workflow, it can offer flexibility, scalability and ease of<br>troubleshooting as each function can be just individually managed and optimized.<br>So like I said, artists, this could be a simple function chain, the first function will check<br>the character count.<br>If the character comes correct, the second function will be triggered, which in the second<br>function will turn all the characters to capital letters and trigger the third function, which<br>will save the text submission.<br>So the truth is, I don't even even though it's simple, I don't personally fully know<br>how to do this.<br>So we're going to use plume AI to help us.<br>Okay, so let's see if let's just try this and see if we can figure this out.<br>So I'll say, help me create a lamp and AWS lambda function chain that processes text.<br>The first function will check character count, if the character count is more than 50 and<br>less than 1000, then the second function is triggered.<br>The second function will turn the characters to capital letters and trigger the third function.<br>The final function will save the text on AWS.<br>Okay, let's just see what it can figure out from this instruction.<br>Okay, it's creating a chain of AWS lambda functions that can describe text processing<br>operations, checking the length of the string, transforming the text and saving the result<br>to an S3 bucket.<br>So it's going to even develop the program structure create three AWS lambda functions.<br>Each function is written in JW and embed directly in the plume program.<br>So we don't have to store them elsewhere, create an API gateway to serve as a trigger<br>to start the lambda function chaining upon request the API gateway, the first lambda<br>execute to check the length of input text, things advocate, the link circuit invokes<br>a capitalizer function that converts the characters to uppercase and the capitalizer function,<br>invokes the saver function that saves a modified text on S3 bucket, then the final URL to trigger<br>the workflow is exported.<br>Okay, so that's exactly what we wanted.<br>So let's see what it came up with.<br>So we have the link checker lambda, and it's going to create that.<br>You can see it's checking for the length of the use of the 50 and the 1000, just like<br>we said, and then it's going to invoke the capitalized it's going to invoke the capitalizer<br>function.<br>So let's see the capitalizer the capitalizer lambda function.<br>It's going to do the two uppercase, there's gonna invoke the saver function.<br>The saver function is going to save to an S3 bucket, it may not work exactly right at<br>the first try.<br>But let's just check that and copy the code.<br>I'm just going to paste it right in here.<br>And then just try to figure out what the errors are.<br>So I can actually just copy this error here.<br>And it says the argument of type runtime is not assignable to a parameter of type function<br>args.<br>Okay, so let's just copy this error.<br>And then we're going to go back over here.<br>And I'll paste it in.<br>So let's see what it figures out.<br>It knows that we need the role properties specify the IM role.<br>And the AWS lambda assumes when it executes your function, let's add a new IM role for<br>each of your lambda functions.<br>And that sets up the IM permissions.<br>Okay, we may have to do some more permissions, change the permissions within AWS as well.<br>But let's try this.<br>Okay, so now it's not, we don't have as many red squiggly lines.<br>So oh, okay.<br>We Okay, I see there's something wrong here, because it's assuming it says the rest of<br>your lambda configuration here.<br>So I'm going to go back here.<br>Then you output the full code that I need.<br>And then I'll say<br>do not just say<br>actually put the config the config.<br>Now we could probably I think I just need to combine these two codes together, which<br>I could do manually.<br>But I'm going to see if it can do that.<br>I'm going to skip a little of the back and forth.<br>So you can see the result.<br>This is an iterative process to get to the correct code.<br>And I came into this knowing very little about how to implement this project.<br>It was so much quicker using Pulumi AI.<br>Okay, so we have the URL here 123.<br>My name is Bo.<br>My name is Bo.<br>And let's see if it works.<br>Okay, we got the link here.<br>But let's see if the capitalized words are now stored in our s3 bucket.<br>Okay, here's our bucket and file at txt.<br>Let's download it.<br>And it worked.<br>See I just added that 123 and all the letters are in capital letters.<br>We did it.<br>We made a function chain from one to the other to the other.<br>And again, I had never done anything like this before.<br>But I was able to use Pulumi AI to figure it out.<br>This is awesome.<br>And now I feel so much more empowered to be able to create basically any sort of infrastructure<br>as code.<br>Now that I have Pulumi AI to help out.<br>Now let's see how we can search through our infrastructure resources and how AI can make<br>the process easier.<br>So after you've created tons of stacks and resources, it can become it can become challenging<br>to manage and keep track of them all.<br>So let me show you how that can become easier.<br>Well, here's the Pulumi cloud dashboard.<br>And you can see it's going to show me members are in the organization, you usually have<br>more than one number of stacks, and then the number of resources for big organizations,<br>the number of resources can be 1000s or even hundreds of 1000s of resources, which can<br>lead users to question the relevance of these resources or what the origin is, or whether<br>you need to clean some of them up.<br>So we can use the resource, the resource search feature.<br>When you're managing a large organization with many individuals working on various stacks,<br>the research, the resource search feature is invaluable.<br>When you're on this, this main dashboard, you can see the overview I was talking about,<br>you can even see like when the last stack was updated.<br>But if I click on resources, then we can search through all the resources.<br>So you can see it just has a list of all the resources on every stack.<br>And there's just a bunch of them.<br>And I can just search for things, like I can search for API, and then it will show everything<br>that has the has API in it, or I could search for<br>Kubernetes just brings up one thing that's related to Kubernetes here.<br>And you can search for things by name, kept tall wiser.<br>And we can see all the functions that have all the resources that have the word capitalizer.<br>We also have the advanced filtering.<br>This provides aggregate information about resources, we can search by various criteria,<br>like I can do everything that has to do with AWS, or this will make it look a little better.<br>I can do everything that has flu providers AWS.<br>So that's the type.<br>And then I can say all that type in this project.<br>And so I can further narrow down based on the type, the packages, projects, or the stacks,<br>and you may have a lot more depending on how many resources you have.<br>So the search function is very, is very versatile.<br>I'll just look for all the lambda functions.<br>So the powerful search syntax allows you users to make very complex queries.<br>But there's also an integrated AI assistance.<br>If I click here, I can switch using Pulumi AI.<br>And this can help users craft queries, which makes the search process even more user friendly.<br>So I can say something like all my s three buckets.<br>And then you can just tell things using just a conversational English.<br>Or I can say something like, which are part of my lamb, the function chain.<br>And it seems to get quite a lot, frankly, I don't even know how it knows that these<br>are part of the Lambda function chain, but it seems like it got a lot of them.<br>On the user interface, there's also a robust API for those who wish to build automation<br>and tools around the Stata.<br>The system also understands user permissions.<br>So as an organization admin, I can view all the resources.<br>But for larger organizations with specific permission requirements, users will only see<br>resources they have access to.<br>This ensures security and privacy while still providing valuable insights.<br>So all these tools help provide users a comprehensive and manual view of their Pulumi resources.<br>Also if you have your own data warehouse and business intelligence tools, you can integrate<br>data with Pulumi tools with your existing data solutions.<br>Okay, we've reached the end of the course, you should now be able to start using AI to<br>create infrastructure more easily.<br>Thanks for watching.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
