<?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: Madialagan Ajith kumara</title>
    <description>The latest articles on DEV Community by Madialagan Ajith kumara (@ajithkumara).</description>
    <link>https://dev.to/ajithkumara</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4067624%2F21020bee-eb5a-4e2d-8643-b3f7620d01d8.jpg</url>
      <title>DEV Community: Madialagan Ajith kumara</title>
      <link>https://dev.to/ajithkumara</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ajithkumara"/>
    <language>en</language>
    <item>
      <title>How I Upgrade Amazon EKS in Production Without Downtime (Step-by-Step Runbook)</title>
      <dc:creator>Madialagan Ajith kumara</dc:creator>
      <pubDate>Mon, 02 Nov 2026 03:06:49 +0000</pubDate>
      <link>https://dev.to/ajithkumara/how-i-upgrade-amazon-eks-in-production-without-downtime-step-by-step-runbook-43g6</link>
      <guid>https://dev.to/ajithkumara/how-i-upgrade-amazon-eks-in-production-without-downtime-step-by-step-runbook-43g6</guid>
      <description>&lt;p&gt;I run production workloads on Amazon EKS. EKS versions reach end of standard support roughly every 14 months, so upgrades aren't optional. Here's the exact runbook I follow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Check upgrade readiness
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws eks describe-cluster &lt;span class="nt"&gt;--name&lt;/span&gt; my-cluster &lt;span class="nt"&gt;--query&lt;/span&gt; &lt;span class="s2"&gt;"cluster.version"&lt;/span&gt;
aws eks list-insights &lt;span class="nt"&gt;--cluster-name&lt;/span&gt; my-cluster
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;EKS Upgrade Insights flags deprecated APIs your workloads still use. Fix every "ERROR" before you move on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Scan your manifests for deprecated APIs
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pluto detect-helm &lt;span class="nt"&gt;-o&lt;/span&gt; wide
pluto detect-files &lt;span class="nt"&gt;-d&lt;/span&gt; ./k8s-manifests
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 3: Protect your workloads
&lt;/h2&gt;

&lt;p&gt;Make sure critical apps have at least 2 replicas and a PodDisruptionBudget:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;apiVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;policy/v1&lt;/span&gt;
&lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;PodDisruptionBudget&lt;/span&gt;
&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;app-pdb&lt;/span&gt;
&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;minAvailable&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
  &lt;span class="na"&gt;selector&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;matchLabels&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;app&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;my-app&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 4: Upgrade the control plane (one minor version at a time)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;eksctl upgrade cluster &lt;span class="nt"&gt;--name&lt;/span&gt; my-cluster &lt;span class="nt"&gt;--version&lt;/span&gt; 1.XX &lt;span class="nt"&gt;--approve&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 5: Upgrade managed add-ons
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws eks describe-addon-versions &lt;span class="nt"&gt;--addon-name&lt;/span&gt; vpc-cni &lt;span class="nt"&gt;--kubernetes-version&lt;/span&gt; 1.XX
aws eks update-addon &lt;span class="nt"&gt;--cluster-name&lt;/span&gt; my-cluster &lt;span class="nt"&gt;--addon-name&lt;/span&gt; vpc-cni &lt;span class="nt"&gt;--addon-version&lt;/span&gt; &amp;lt;version&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Repeat for &lt;code&gt;coredns&lt;/code&gt;, &lt;code&gt;kube-proxy&lt;/code&gt; and &lt;code&gt;aws-ebs-csi-driver&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Upgrade node groups
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;eksctl upgrade nodegroup &lt;span class="nt"&gt;--name&lt;/span&gt; ng-1 &lt;span class="nt"&gt;--cluster&lt;/span&gt; my-cluster &lt;span class="nt"&gt;--kubernetes-version&lt;/span&gt; 1.XX
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Managed node groups drain and replace nodes one by one, respecting your PDBs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Verify
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;kubectl get nodes
kubectl get pods &lt;span class="nt"&gt;-A&lt;/span&gt; | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-v&lt;/span&gt; Running
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Lessons learned
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Never skip Upgrade Insights&lt;/li&gt;
&lt;li&gt;PDBs + 2 replicas = zero downtime&lt;/li&gt;
&lt;li&gt;Upgrade add-ons right after the control plane&lt;/li&gt;
&lt;li&gt;Do it in a non-prod cluster first&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What's your biggest EKS upgrade pain? Let me know in the comments.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>kubernetes</category>
      <category>eks</category>
      <category>devops</category>
    </item>
    <item>
      <title>How I Passed AWS Solutions Architect Associate (SAA-C03) in 4 Weeks</title>
      <dc:creator>Madialagan Ajith kumara</dc:creator>
      <pubDate>Fri, 16 Oct 2026 10:05:42 +0000</pubDate>
      <link>https://dev.to/ajithkumara/how-i-passed-aws-solutions-architect-associate-saa-c03-in-4-weeks-36c0</link>
      <guid>https://dev.to/ajithkumara/how-i-passed-aws-solutions-architect-associate-saa-c03-in-4-weeks-36c0</guid>
      <description>&lt;p&gt;I'm a DevOps/Platform Engineer from Sri Lanka, and I passed the AWS Certified Solutions Architect - Associate exam after 4 weeks of preparation. In this post I'll share the exact plan I followed, so you can skip the confusion I had at the start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exam at a glance
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Exam code&lt;/td&gt;
&lt;td&gt;SAA-C03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Questions&lt;/td&gt;
&lt;td&gt;65 (multiple choice / multiple response)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Time&lt;/td&gt;
&lt;td&gt;130 minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Passing score&lt;/td&gt;
&lt;td&gt;720 / 1000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;150 USD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Validity&lt;/td&gt;
&lt;td&gt;3 years&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The 4 domains:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Design Secure Architectures – 30%&lt;/li&gt;
&lt;li&gt;Design Resilient Architectures – 26%&lt;/li&gt;
&lt;li&gt;Design High-Performing Architectures – 24%&lt;/li&gt;
&lt;li&gt;Design Cost-Optimized Architectures – 20%&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Notice that security is the biggest chunk. Don't skip IAM.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Read the official exam guide (30 minutes)
&lt;/h2&gt;

&lt;p&gt;Download the exam guide from the AWS Certification page. Highlight the in-scope services. This is your syllabus; anything outside it, don't stress about.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Create a free-tier account and set a budget alert FIRST
&lt;/h2&gt;

&lt;p&gt;Before touching any service, protect yourself from surprise bills:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Billing → Budgets → Create budget&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Zero spend budget&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Add your email&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Also enable MFA on the root user and create an IAM user for daily work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Learn the core services (2–3 weeks)
&lt;/h2&gt;

&lt;p&gt;Focus your time here, in this order:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IAM&lt;/strong&gt; – users, roles, policies, least privilege&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VPC&lt;/strong&gt; – subnets, route tables, IGW, NAT Gateway, security groups vs NACLs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EC2&lt;/strong&gt; – instance types, pricing models (On-Demand, Reserved, Spot, Savings Plans)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ELB + Auto Scaling&lt;/strong&gt; – ALB vs NLB, scaling policies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;S3&lt;/strong&gt; – storage classes, lifecycle rules, versioning, encryption&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RDS &amp;amp; Aurora&lt;/strong&gt; – Multi-AZ vs Read Replicas (this comes up a LOT)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DynamoDB&lt;/strong&gt; – when to pick NoSQL&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Route 53&lt;/strong&gt; – routing policies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CloudFront&lt;/strong&gt; – caching and edge&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQS, SNS, EventBridge&lt;/strong&gt; – decoupling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lambda &amp;amp; API Gateway&lt;/strong&gt; – serverless basics&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CloudWatch, CloudTrail&lt;/strong&gt; – monitoring vs auditing&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 4: Get hands-on (don't skip this!)
&lt;/h2&gt;

&lt;p&gt;Reading alone won't stick. Build these mini labs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Launch a web server in a custom VPC&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a VPC with 2 public and 2 private subnets&lt;/li&gt;
&lt;li&gt;Launch EC2 in a public subnet, install nginx&lt;/li&gt;
&lt;li&gt;Put an ALB in front with an Auto Scaling group&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Host a static website on S3 + CloudFront&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create an RDS database in a private subnet&lt;/strong&gt; and connect from EC2&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Build a serverless API&lt;/strong&gt;: API Gateway → Lambda → DynamoDB&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Delete everything after each lab.&lt;/strong&gt; Watch out for NAT Gateways and RDS; they cost money even when idle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Learn the "keywords" pattern
&lt;/h2&gt;

&lt;p&gt;SAA questions are scenario-based. The keyword usually tells you the answer:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;If the question says...&lt;/th&gt;
&lt;th&gt;Think...&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;"Most cost-effective"&lt;/td&gt;
&lt;td&gt;S3 lifecycle, Spot, right-sizing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Highly available"&lt;/td&gt;
&lt;td&gt;Multi-AZ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Read-heavy workload"&lt;/td&gt;
&lt;td&gt;Read Replicas, ElastiCache&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Decouple components"&lt;/td&gt;
&lt;td&gt;SQS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Least operational overhead"&lt;/td&gt;
&lt;td&gt;Managed / serverless services&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Disaster recovery across regions"&lt;/td&gt;
&lt;td&gt;Cross-region replication, Aurora Global&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Static content, global users"&lt;/td&gt;
&lt;td&gt;CloudFront&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Temporary credentials"&lt;/td&gt;
&lt;td&gt;IAM Roles, STS&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Step 6: Practice exams (1–2 weeks)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Do at least 4–6 full-length practice exams&lt;/li&gt;
&lt;li&gt;Aim for &lt;strong&gt;80%+ consistently&lt;/strong&gt; before booking&lt;/li&gt;
&lt;li&gt;Review EVERY wrong answer, and the right ones you guessed&lt;/li&gt;
&lt;li&gt;Keep a "mistakes notebook" sorted by domain&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 7: Exam day tips
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Book via Pearson VUE (online or test center)&lt;/li&gt;
&lt;li&gt;If taking it online, clear your desk completely and check your webcam the day before&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;flag for review&lt;/strong&gt;; don't get stuck on one question&lt;/li&gt;
&lt;li&gt;Eliminate obviously wrong answers first; usually 2 options are clearly out&lt;/li&gt;
&lt;li&gt;There's no penalty for wrong answers, so never leave a question blank&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My biggest lessons
&lt;/h2&gt;

&lt;p&gt;1.Networking was my weakest area until I built a VPC by hand&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hands-on practice beats watching videos at 2x speed&lt;/li&gt;
&lt;li&gt;Understand &lt;em&gt;why&lt;/em&gt; an answer is right, not just memorizing it&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;SAA isn't about memorizing every service; it's about thinking like an architect: secure, resilient, fast and cost-effective. Follow these steps, stay consistent, and you'll get there.&lt;/p&gt;

&lt;p&gt;If you're preparing right now, drop a comment with your exam date. Happy to answer questions! 🚀&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I'm Ajith, a DevOps/Platform Engineer and visiting lecturer. I share DevOps and cloud content&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Connect with me on LinkedIn: &lt;a href="https://www.linkedin.com/in/ajithkumara-madialagan/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/ajithkumara-madialagan/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>certification</category>
      <category>cloud</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
