<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: KithupaG</title>
    <description>The latest articles on DEV Community by KithupaG (@trenation).</description>
    <link>https://dev.to/trenation</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1623578%2F2a7b831c-6be6-45f9-bee7-c18d3a997278.jpg</url>
      <title>DEV Community: KithupaG</title>
      <link>https://dev.to/trenation</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/trenation"/>
    <language>en</language>
    <item>
      <title>Building a Production Grade AWS Infrastructure Project (Part 1)</title>
      <dc:creator>KithupaG</dc:creator>
      <pubDate>Wed, 20 May 2026 15:07:03 +0000</pubDate>
      <link>https://dev.to/trenation/building-a-production-grade-aws-infrastructure-project-part-1-5ceb</link>
      <guid>https://dev.to/trenation/building-a-production-grade-aws-infrastructure-project-part-1-5ceb</guid>
      <description>&lt;p&gt;I'm 16, self-taught, and currently studying for my AWS Solutions Architect Associate certification. Alongside the course, I'm building a production-grade AWS infrastructure from scrach and documenting the entire journey here&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Honestly, because certs alone don't porve you can build anything. I want something real to show for it, So writing infrastruction that reflects how things are done in production and not just dwelling inside tutorial hell. Writing about it publicly keeps me accountable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is my stack?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloud: AWS&lt;/li&gt;
&lt;li&gt;Infrastructure as Code: Terraform (I decided to keep it modular with seperate dev and prod environments)&lt;/li&gt;
&lt;li&gt;CI/CD : Github Actions&lt;/li&gt;
&lt;li&gt;Containerization: Docker + Trivy (for container scanning)&lt;/li&gt;
&lt;li&gt;Application: A minimal PERN stack notes app&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Heres what my folder structure looks like&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;aws-production-infra/&lt;br&gt;
├── modules/ # reusable Terraform modules&lt;br&gt;
│ ├── vpc/&lt;br&gt;
│ │ ├── main.tf&lt;br&gt;
│ │ ├── variables.tf&lt;br&gt;
│ │ ├── outputs.tf&lt;br&gt;
│ │ └── README.md&lt;br&gt;
│ ├── ec2-asg/&lt;br&gt;
│ │ ├── main.tf&lt;br&gt;
│ │ ├── variables.tf&lt;br&gt;
│ │ └── outputs.tf&lt;br&gt;
│ ├── alb/&lt;br&gt;
│ ├── rds/&lt;br&gt;
│ ├── s3-cdn/&lt;br&gt;
│ ├── iam/&lt;br&gt;
│ ├── security/&lt;br&gt;
│ └── monitoring/&lt;br&gt;
├── environments/&lt;br&gt;
│ ├── dev/&lt;br&gt;
│ │ ├── main.tf&lt;br&gt;
│ │ ├── variables.tf&lt;br&gt;
│ │ ├── terraform.tfvars&lt;br&gt;
│ │ └── backend.tf&lt;br&gt;
│ └── prod/&lt;br&gt;
├── app/&lt;br&gt;
│ ├── Dockerfile&lt;br&gt;
│ └── src/&lt;br&gt;
├── .github/&lt;br&gt;
│ └── workflows/&lt;br&gt;
│ ├── terraform-plan.yml&lt;br&gt;
│ └── docker-build.yml&lt;br&gt;
├── docs/&lt;br&gt;
│ ├── architecture.svg&lt;br&gt;
│ └── cost-estimate.md&lt;br&gt;
├── scripts/&lt;br&gt;
│ └── destroy-expensive.sh&lt;br&gt;
├── .gitignore&lt;br&gt;
└── README.md&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;They key decision I did here is seperating the &lt;code&gt;modules/&lt;/code&gt; folder from &lt;code&gt;environments/&lt;/code&gt;. Both environments call the same modules but with different variable values. Dev runs cheaper, single AZ resources purely for developing purposes while Prod runs Multi-AZ, larger instances in a more contained and secure setting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I've done so far&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The folder structure is set up and the application code is in the repo. I vibe-coded the entire PERN app to save time, and honestly the infrastructure is what its all about.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My build order is&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;- Write all the terraform infrastructure first.&lt;/li&gt;
&lt;li&gt;- Write the Dockerfile and get Trivy scanning running in CI&lt;/li&gt;
&lt;li&gt;- Wire everything together with the GitHub actions deployment pipeline&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Next post will cover building the VPC modules (building subnets, route tables, NAT gateway, and flow logs)&lt;/p&gt;

&lt;p&gt;Repo is here if you want to follow along: &lt;a href="https://github.com/KithupaG/aws-production-infra" rel="noopener noreferrer"&gt;https://github.com/KithupaG/aws-production-infra&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>learning</category>
      <category>aws</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Building a Simple Server Monitoring Script in My Homelab</title>
      <dc:creator>KithupaG</dc:creator>
      <pubDate>Wed, 27 Aug 2025 16:47:01 +0000</pubDate>
      <link>https://dev.to/trenation/building-a-simple-server-monitoring-script-in-my-homelab-4d97</link>
      <guid>https://dev.to/trenation/building-a-simple-server-monitoring-script-in-my-homelab-4d97</guid>
      <description>&lt;p&gt;*&lt;em&gt;Why monitoring matters *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Monitoring matters because it provides a shared feedback loop, necessary visibility in the system metrics, performance, security, it also enables rapid issue detection, and continous improvement&lt;/p&gt;

&lt;p&gt;See my code in my github here:- &lt;a href="https://github.com/KithupaG/Homelab/blob/main/monitoring/server-stats.sh" rel="noopener noreferrer"&gt;https://github.com/KithupaG/Homelab/blob/main/monitoring/server-stats.sh&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I built it&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I used functions to house the processes, adhering to the laws of writing code, inside those functions I housed the shell commands such as &lt;code&gt;top&lt;/code&gt;, &lt;code&gt;free&lt;/code&gt;, &lt;code&gt;df&lt;/code&gt;, &lt;code&gt;ps&lt;/code&gt; etc to fetch the data and used &lt;code&gt;awk&lt;/code&gt; to tabularize the data.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Demo output.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fua3ojsivqlmrd2o6yat7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fua3ojsivqlmrd2o6yat7.png" alt=" " width="533" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Future plan&lt;/li&gt;
&lt;li&gt;Add &lt;strong&gt;logging to a file&lt;/strong&gt; → &lt;code&gt;server_stats.log&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;Output as &lt;strong&gt;JSON&lt;/strong&gt; so it integrates with Prometheus/ELK.
&lt;/li&gt;
&lt;li&gt;Connect to &lt;strong&gt;Grafana&lt;/strong&gt; and make dashboards.
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>devops</category>
      <category>beginners</category>
      <category>programming</category>
      <category>linux</category>
    </item>
  </channel>
</rss>
