<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>DevOps with Umar blog</title><description>Hands-on DevOps tutorials: AWS, Terraform, CI/CD and Kubernetes.</description><link>https://devopswithumar.com/</link><item><title>gp2 vs gp3: switch EBS volumes, save 20%, no downtime</title><link>https://devopswithumar.com/blog/gp2-vs-gp3-ebs/</link><guid isPermaLink="true">https://devopswithumar.com/blog/gp2-vs-gp3-ebs/</guid><description>gp2 vs gp3 compared: gp3 costs 20% less per GB and gives 3,000 IOPS at any size. Find every gp2 volume, switch it live, and avoid the big-volume IOPS trap.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate></item><item><title>Base64 is not encryption: Kubernetes Secrets and JWT mistakes</title><link>https://devopswithumar.com/blog/base64-is-not-encryption-jwt/</link><guid isPermaLink="true">https://devopswithumar.com/blog/base64-is-not-encryption-jwt/</guid><description>Base64 is encoding, not encryption, so Kubernetes Secrets and JWT payloads are readable by anyone. What that means, how to decode safely, and safer options.</description><pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate></item><item><title>EventBridge cron expressions vs cron: the 6-field trap</title><link>https://devopswithumar.com/blog/cron-vs-eventbridge-schedules/</link><guid isPermaLink="true">https://devopswithumar.com/blog/cron-vs-eventbridge-schedules/</guid><description>An EventBridge cron expression has 6 fields, a required question mark and different day numbers. How it differs from cron, CronJobs and GitHub Actions.</description><pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate></item><item><title>How to plan VPC CIDR ranges so you never have to rebuild</title><link>https://devopswithumar.com/blog/vpc-cidr-subnet-planning/</link><guid isPermaLink="true">https://devopswithumar.com/blog/vpc-cidr-subnet-planning/</guid><description>VPC CIDR planning in plain steps: pick a range and subnet sizes that leave room to grow, avoid overlaps, and allow for the 5 IPs AWS reserves per subnet.</description><pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate></item><item><title>3 YAML mistakes that break Kubernetes and GitHub Actions deploys</title><link>https://devopswithumar.com/blog/yaml-mistakes-kubernetes-github-actions/</link><guid isPermaLink="true">https://devopswithumar.com/blog/yaml-mistakes-kubernetes-github-actions/</guid><description>Three YAML mistakes that break Kubernetes and GitHub Actions deploys: tabs and indentation, values that turn into the wrong type, and files nobody validated.</description><pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Does AWS charge for stopped instances? 3 hidden charges</title><link>https://devopswithumar.com/blog/aws-charges-billing-you-for-nothing/</link><guid isPermaLink="true">https://devopswithumar.com/blog/aws-charges-billing-you-for-nothing/</guid><description>Does AWS charge for stopped instances? Not for compute, but their EBS volumes and public IPs keep billing. Find them, and idle IPs, with three CLI commands.</description><pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Case study: GitHub Actions OIDC replaced a startup&apos;s AWS keys</title><link>https://devopswithumar.com/blog/case-study-github-actions-oidc-startup/</link><guid isPermaLink="true">https://devopswithumar.com/blog/case-study-github-actions-oidc-startup/</guid><description>A GitHub Actions OIDC case study: a small team kept long-lived AWS keys in CI and never rotated them. How I moved them to OIDC in one day, and what changed.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate></item><item><title>AWS alerts: know about outages before your customers do</title><link>https://devopswithumar.com/blog/aws-monitoring-alerts-before-customers/</link><guid isPermaLink="true">https://devopswithumar.com/blog/aws-monitoring-alerts-before-customers/</guid><description>Set up AWS alerts that reach you first. No alerts, alerts nobody sees, no dashboard: a small CloudWatch, SNS and Slack setup fixes all three, no new tool.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate></item><item><title>How to reduce your AWS bill: 3 quick wins that break nothing</title><link>https://devopswithumar.com/blog/cut-your-aws-bill-quick-wins/</link><guid isPermaLink="true">https://devopswithumar.com/blog/cut-your-aws-bill-quick-wins/</guid><description>Reduce AWS costs without touching your app: delete idle resources that still bill you, let old data expire, and set a budget alert before the invoice.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Why your GitHub Actions pipeline is slow, and the fix</title><link>https://devopswithumar.com/blog/github-actions-slow-pipeline/</link><guid isPermaLink="true">https://devopswithumar.com/blog/github-actions-slow-pipeline/</guid><description>GitHub Actions slow? Cache your dependencies, run only when the right files change, cancel stale runs, and put a real gate in front of production.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate></item><item><title>3 AWS IAM mistakes I find in almost every account</title><link>https://devopswithumar.com/blog/iam-mistakes-every-aws-account/</link><guid isPermaLink="true">https://devopswithumar.com/blog/iam-mistakes-every-aws-account/</guid><description>Three AWS IAM mistakes in most accounts: daily work as root, admin rights for everyone, no audit trail. The fixes: roles with MFA, read-only, CloudTrail.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate></item><item><title>3 Kubernetes mistakes that crash your pods (and the fix for each)</title><link>https://devopswithumar.com/blog/kubernetes-mistakes-crash-pods/</link><guid isPermaLink="true">https://devopswithumar.com/blog/kubernetes-mistakes-crash-pods/</guid><description>Three Kubernetes mistakes behind real outages: missing resource requests and limits, no readiness probe, and the latest image tag. Each is a few lines to fix.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate></item><item><title>S3 Block Public Access: why a bucket should never be public</title><link>https://devopswithumar.com/blog/s3-bucket-never-public/</link><guid isPermaLink="true">https://devopswithumar.com/blog/s3-bucket-never-public/</guid><description>Public S3 buckets keep making headlines. My three-step setup instead: S3 Block Public Access, CloudFront with Origin Access Control, presigned URLs.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate></item><item><title>3 Terraform mistakes that cost me hours</title><link>https://devopswithumar.com/blog/terraform-mistakes-that-cost-hours/</link><guid isPermaLink="true">https://devopswithumar.com/blog/terraform-mistakes-that-cost-hours/</guid><description>Three Terraform mistakes that cost me hours: local state, hardcoded secrets and unpinned providers. What each one cost and the small fix that prevents it.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate></item><item><title>How to unlock Terraform state (force-unlock) and recover it</title><link>https://devopswithumar.com/blog/terraform-state-lock-version-recover/</link><guid isPermaLink="true">https://devopswithumar.com/blog/terraform-state-lock-version-recover/</guid><description>Stuck on &quot;Error acquiring the state lock&quot;? Find the lock ID, check it is safe, run terraform force-unlock, and roll back a bad state from S3 versioning.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Deploy to AWS from GitHub Actions without access keys (OIDC)</title><link>https://devopswithumar.com/blog/github-actions-aws-oidc/</link><guid isPermaLink="true">https://devopswithumar.com/blog/github-actions-aws-oidc/</guid><description>Stop storing AWS keys in GitHub secrets. With GitHub Actions and AWS OIDC, each workflow run gets short-lived credentials for a locked-down IAM role.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Host a static website on AWS S3 + CloudFront with Terraform</title><link>https://devopswithumar.com/blog/s3-cloudfront-terraform-static-site/</link><guid isPermaLink="true">https://devopswithumar.com/blog/s3-cloudfront-terraform-static-site/</guid><description>A private S3 bucket, CloudFront with Origin Access Control, a free ACM certificate and Route 53 records, all in Terraform. The exact setup behind this site.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Terraform S3 backend: remote state with KMS and state locking</title><link>https://devopswithumar.com/blog/terraform-remote-state-s3-kms/</link><guid isPermaLink="true">https://devopswithumar.com/blog/terraform-remote-state-s3-kms/</guid><description>Set up a Terraform S3 backend for remote state: an encrypted, versioned bucket with a KMS key, native state locking, and a clean layout per environment.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item></channel></rss>