<?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: Minh Tri Vo</title>
    <description>The latest articles on DEV Community by Minh Tri Vo (@minh_trivo_vmt).</description>
    <link>https://dev.to/minh_trivo_vmt</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%2F3065952%2F4ee5385c-fe20-4b16-a44f-2aa5864da8ef.jpg</url>
      <title>DEV Community: Minh Tri Vo</title>
      <link>https://dev.to/minh_trivo_vmt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/minh_trivo_vmt"/>
    <language>en</language>
    <item>
      <title>🧱 Deploying AKS the Right Way – No Scripts, Just Portal</title>
      <dc:creator>Minh Tri Vo</dc:creator>
      <pubDate>Tue, 08 Jul 2025 15:03:43 +0000</pubDate>
      <link>https://dev.to/minh_trivo_vmt/deploying-aks-the-right-way-no-scripts-just-portal-3c9k</link>
      <guid>https://dev.to/minh_trivo_vmt/deploying-aks-the-right-way-no-scripts-just-portal-3c9k</guid>
      <description>&lt;p&gt;🧱 Deploying AKS the Right Way – No Scripts, Just Portal&lt;/p&gt;

&lt;p&gt;If you've ever deployed an AKS cluster with a public IP and thought "this can't be production-ready," you were right.&lt;/p&gt;

&lt;p&gt;In this in-depth guide, I show you how to build a secure, scalable, and enterprise-grade AKS architecture — using only the Azure Portal.&lt;/p&gt;

&lt;p&gt;🔐 What you’ll get:&lt;/p&gt;

&lt;p&gt;Hub-and-Spoke VNet topology&lt;/p&gt;

&lt;p&gt;Azure Firewall &amp;amp; Bastion integration&lt;/p&gt;

&lt;p&gt;Private ACR + Key Vault with Private Link&lt;/p&gt;

&lt;p&gt;Application Gateway Ingress Controller (AGIC)&lt;/p&gt;

&lt;p&gt;System &amp;amp; user node pools&lt;/p&gt;

&lt;p&gt;Internal + External service exposure&lt;/p&gt;

&lt;p&gt;Azure Monitor with Prometheus&lt;/p&gt;

&lt;p&gt;Route tables, peering, and DNS setups explained&lt;/p&gt;

&lt;p&gt;✅ Everything is configured step by step, visually, and tested. No AI shortcuts — just real engineering decisions built on Azure best practices.&lt;/p&gt;

&lt;p&gt;🔗 Full Guide: &lt;a href="https://technostress.blog/aks-azure-enterprise-deployment-guide/" rel="noopener noreferrer"&gt;https://technostress.blog/aks-azure-enterprise-deployment-guide/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me know what you think — or share how you’re securing your own AKS setup!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>azure</category>
      <category>devops</category>
      <category>cloud</category>
    </item>
    <item>
      <title>See Inside Your Apps: Real-World Observability with ELK APM (Spring Boot &amp; Flask)</title>
      <dc:creator>Minh Tri Vo</dc:creator>
      <pubDate>Sun, 01 Jun 2025 12:03:04 +0000</pubDate>
      <link>https://dev.to/minh_trivo_vmt/see-inside-your-apps-real-world-observability-with-elk-apm-spring-boot-flask-2l1c</link>
      <guid>https://dev.to/minh_trivo_vmt/see-inside-your-apps-real-world-observability-with-elk-apm-spring-boot-flask-2l1c</guid>
      <description>&lt;p&gt;Have you ever shipped new code—only to get hit with mystery slowdowns or error reports, and your logs are just… silent?&lt;br&gt;
It’s time to stop flying blind!&lt;/p&gt;

&lt;p&gt;In my latest guide, I’ll show you how I turned Spring Boot and Flask apps from black boxes into crystal-clear dashboards using ELK APM.&lt;/p&gt;

&lt;p&gt;✨ What’s inside?&lt;/p&gt;

&lt;p&gt;🛠️ Step-by-step setup for the ELK stack &amp;amp; APM Server (with a real-world architecture map)&lt;/p&gt;

&lt;p&gt;💻 Hands-on instrumentation for Java and Python (Spring Boot &amp;amp; Flask)&lt;/p&gt;

&lt;p&gt;📊 Live tracing, resource metrics, and error monitoring in Kibana&lt;/p&gt;

&lt;p&gt;If you want to save hours debugging, spot bottlenecks before users do, or just flex your full-stack monitoring skills, this walkthrough is for you.&lt;/p&gt;

&lt;p&gt;👉 Dive into the complete guide here:&lt;br&gt;
&lt;a href="https://technostress.blog/monitor-spring-flask-elk-apm/" rel="noopener noreferrer"&gt;https://technostress.blog/monitor-spring-flask-elk-apm/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>devops</category>
      <category>monitoring</category>
      <category>elasticsearch</category>
    </item>
    <item>
      <title>🚀 Auto-Deploy a Flask App on Azure VM Using Cloud-Init</title>
      <dc:creator>Minh Tri Vo</dc:creator>
      <pubDate>Sat, 24 May 2025 14:02:27 +0000</pubDate>
      <link>https://dev.to/minh_trivo_vmt/auto-deploy-a-flask-app-on-azure-vm-using-cloud-init-5164</link>
      <guid>https://dev.to/minh_trivo_vmt/auto-deploy-a-flask-app-on-azure-vm-using-cloud-init-5164</guid>
      <description>&lt;p&gt;Tired of spinning up VMs and manually configuring everything afterward?&lt;br&gt;
This guide shows you how to automate the entire post-deployment process using Cloud-Init on Azure — from boot to running app, all in one go.&lt;/p&gt;

&lt;p&gt;In this post, you'll learn how to:&lt;/p&gt;

&lt;p&gt;Provision an Ubuntu VM with az CLI&lt;/p&gt;

&lt;p&gt;Use cloud-init.yaml to install system dependencies&lt;/p&gt;

&lt;p&gt;Clone a Flask app directly from GitHub&lt;/p&gt;

&lt;p&gt;Configure it as a systemd service&lt;/p&gt;

&lt;p&gt;Open port 8080 via UFW for external access&lt;/p&gt;

&lt;p&gt;🚀 The result? A fully working web app right after VM creation — no SSH, no setup hassle.&lt;/p&gt;

&lt;p&gt;👉 Read the full guide here:&lt;br&gt;
&lt;a href="https://technostress.blog/auto-deploy-flask-app-azure-vm-cloud-init/" rel="noopener noreferrer"&gt;https://technostress.blog/auto-deploy-flask-app-azure-vm-cloud-init/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>azure</category>
      <category>automation</category>
      <category>cicd</category>
    </item>
    <item>
      <title>🌿 Saving the Planet One Pod at a Time: Automating Sleep in Kubernetes with kube-green</title>
      <dc:creator>Minh Tri Vo</dc:creator>
      <pubDate>Thu, 22 May 2025 15:29:50 +0000</pubDate>
      <link>https://dev.to/minh_trivo_vmt/saving-the-planet-one-pod-at-a-time-automating-sleep-in-kubernetes-with-kube-green-m3m</link>
      <guid>https://dev.to/minh_trivo_vmt/saving-the-planet-one-pod-at-a-time-automating-sleep-in-kubernetes-with-kube-green-m3m</guid>
      <description>&lt;p&gt;Let’s face it—most of us leave our dev clusters running 24/7.&lt;br&gt;
Test workloads idle overnight. Staging pods sip cloud credits through the weekend.&lt;br&gt;
It’s easy to forget that “always on” often means “always wasting.”&lt;/p&gt;

&lt;p&gt;In this post, I’ll walk you through a hands-on demo using kube-green, an open-source controller that lets you automatically scale down Kubernetes Deployments after hours—and bring them back when it’s time to work.&lt;/p&gt;

&lt;p&gt;✅ No cron jobs&lt;br&gt;
✅ No custom scripts&lt;br&gt;
✅ Just clean, scheduled resource savings&lt;/p&gt;

&lt;p&gt;Whether you’re trying to cut cloud costs, reduce carbon usage, or build more responsible DevOps pipelines—this tool makes it dead simple.&lt;/p&gt;

&lt;p&gt;Let’s put your pods (and your wallet) to sleep—on purpose.&lt;/p&gt;

&lt;p&gt;👉 Read the full guide on: &lt;a href="https://technostress.blog/kube-green-kubernetes-auto-sleep-pods/" rel="noopener noreferrer"&gt;https://technostress.blog/kube-green-kubernetes-auto-sleep-pods/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>kubernetes</category>
      <category>cloudcomputing</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Your kubeadm certs expired, you renewed them… and now kubectl is broken?</title>
      <dc:creator>Minh Tri Vo</dc:creator>
      <pubDate>Sat, 10 May 2025 15:28:23 +0000</pubDate>
      <link>https://dev.to/minh_trivo_vmt/your-kubeadm-certs-expired-you-renewed-them-and-now-kubectl-is-broken-4m11</link>
      <guid>https://dev.to/minh_trivo_vmt/your-kubeadm-certs-expired-you-renewed-them-and-now-kubectl-is-broken-4m11</guid>
      <description>&lt;p&gt;Ran kubeadm certs renew all — and now locked out with:&lt;br&gt;
&lt;code&gt;memcache.go:265 – the server has asked for the client to provide credentials&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Yep, your kubeconfig is still using expired certs.&lt;/p&gt;

&lt;p&gt;🔧 This quick guide walks you through:&lt;/p&gt;

&lt;p&gt;Regenerating your admin kubeconfig&lt;/p&gt;

&lt;p&gt;Restarting the API server (static pod)&lt;/p&gt;

&lt;p&gt;Restoring full access to your Kubernetes cluster&lt;/p&gt;

&lt;p&gt;👉 Read the fix → &lt;a href="https://technostress.blog/technostress-blog-fix-kubernetes-cert-renewal-memcache-error/" rel="noopener noreferrer"&gt;https://technostress.blog/technostress-blog-fix-kubernetes-cert-renewal-memcache-error/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>devops</category>
      <category>sysadmin</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>🧠 Monitor Your Full LAMP Stack with ELK + Metricbeat (No Guesswork, Just Data)</title>
      <dc:creator>Minh Tri Vo</dc:creator>
      <pubDate>Sun, 04 May 2025 05:37:22 +0000</pubDate>
      <link>https://dev.to/minh_trivo_vmt/monitor-your-full-lamp-stack-with-elk-metricbeat-no-guesswork-just-data-34dd</link>
      <guid>https://dev.to/minh_trivo_vmt/monitor-your-full-lamp-stack-with-elk-metricbeat-no-guesswork-just-data-34dd</guid>
      <description>&lt;p&gt;If you’re running a traditional LAMP stack (Linux, Apache, MySQL, PHP), chances are you’ve dealt with “Is the server slow?” moments.&lt;/p&gt;

&lt;p&gt;But guessing is not monitoring.&lt;/p&gt;

&lt;p&gt;In this post, I break down how to get full-stack observability using the ELK Stack (Elasticsearch + Kibana) combined with Metricbeat — all open-source, and built for clarity.&lt;/p&gt;

&lt;p&gt;What You'll Learn:&lt;br&gt;
✅ How to monitor Apache, MySQL, and system-level metrics in real time&lt;br&gt;
✅ How to deploy Metricbeat agents on app and DB servers&lt;br&gt;
✅ How to visualize everything in beautiful Kibana dashboards&lt;br&gt;
✅ How to simulate load and validate that your stack can handle real-world traffic&lt;/p&gt;

&lt;p&gt;No expensive tools. No bloated monitoring suites. Just a clean, powerful setup you can build in a couple of hours.&lt;/p&gt;

&lt;p&gt;👉 Read the full tutorial here:&lt;br&gt;
&lt;a href="https://technostress.blog/lamp-stack-monitoring-elk-metricbeat/" rel="noopener noreferrer"&gt;https://technostress.blog/lamp-stack-monitoring-elk-metricbeat/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me know what tools you use to monitor your LAMP stack — or if you're moving to containers, I'd love to hear how you manage observability!&lt;/p&gt;

</description>
      <category>devops</category>
      <category>monitoring</category>
      <category>cloud</category>
    </item>
    <item>
      <title>"Stop Wasting Time on Manual Elasticsearch Backups — Automate It with Python &amp; S3"</title>
      <dc:creator>Minh Tri Vo</dc:creator>
      <pubDate>Sun, 27 Apr 2025 15:54:38 +0000</pubDate>
      <link>https://dev.to/minh_trivo_vmt/stop-wasting-time-on-manual-elasticsearch-backups-automate-it-with-python-s3-4dak</link>
      <guid>https://dev.to/minh_trivo_vmt/stop-wasting-time-on-manual-elasticsearch-backups-automate-it-with-python-s3-4dak</guid>
      <description>&lt;p&gt;Let’s be honest — nobody enjoys manual backups.&lt;br&gt;
Especially when it comes to managing Elasticsearch snapshots.&lt;/p&gt;

&lt;p&gt;I got tired of repetitive tasks, so I automated the entire process using Python and a lightweight S3-compatible storage. No fancy tools, no cloud bills — just simple, reliable automation.&lt;/p&gt;

&lt;p&gt;If you're spending more than a minute thinking about backups, you're doing it wrong.&lt;/p&gt;

&lt;p&gt;Here’s how to set it up once and forget about it forever 👇&lt;br&gt;
&lt;a href="https://technostress.blog/elasticsearch-backup-automation-python-s3/" rel="noopener noreferrer"&gt;https://technostress.blog/elasticsearch-backup-automation-python-s3/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>elasticsearch</category>
      <category>python</category>
      <category>devops</category>
      <category>s3</category>
    </item>
    <item>
      <title>🧩 Visualize Your Azure Dependencies in Real Time with Service Map</title>
      <dc:creator>Minh Tri Vo</dc:creator>
      <pubDate>Mon, 21 Apr 2025 14:31:29 +0000</pubDate>
      <link>https://dev.to/minh_trivo_vmt/visualize-your-azure-dependencies-in-real-time-with-service-map-490j</link>
      <guid>https://dev.to/minh_trivo_vmt/visualize-your-azure-dependencies-in-real-time-with-service-map-490j</guid>
      <description>&lt;p&gt;Troubleshooting across multiple Azure VMs and services?&lt;/p&gt;

&lt;p&gt;Instead of chasing logs and guessing connections, try visualizing them.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;Azure Service Map&lt;/strong&gt;, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automatically discover app-to-app &amp;amp; process-level dependencies
&lt;/li&gt;
&lt;li&gt;Spot hidden bottlenecks and ghost services
&lt;/li&gt;
&lt;li&gt;Visualize your entire infrastructure — in real time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🛠️ Includes a hands-on setup guide using Log Analytics + Dependency Agent.&lt;/p&gt;

&lt;p&gt;👉 Read the full post here:&lt;br&gt;&lt;br&gt;
&lt;a href="https://technostress.blog/azure-service-map-application-dependency-visualization/" rel="noopener noreferrer"&gt;https://technostress.blog/azure-service-map-application-dependency-visualization/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have you used Service Map or a similar tool? Curious how others handle dependency visibility in the cloud.&lt;/p&gt;

&lt;h1&gt;
  
  
  azure #devops #cloud #infrastructure #observability
&lt;/h1&gt;

</description>
      <category>sysadmin</category>
      <category>devops</category>
      <category>azure</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>🧩 Getting Started with Jinja2 Templates and Filters in Ansible (with Real Examples)</title>
      <dc:creator>Minh Tri Vo</dc:creator>
      <pubDate>Sun, 20 Apr 2025 16:01:04 +0000</pubDate>
      <link>https://dev.to/minh_trivo_vmt/getting-started-with-jinja2-templates-and-filters-in-ansible-with-real-examples-1fj1</link>
      <guid>https://dev.to/minh_trivo_vmt/getting-started-with-jinja2-templates-and-filters-in-ansible-with-real-examples-1fj1</guid>
      <description>&lt;p&gt;If you’re learning Ansible and want to go beyond static config files, this post walks through how to use Jinja2 templates and filters to make your automation more flexible and scalable.&lt;/p&gt;

&lt;p&gt;In this post, I cover:&lt;br&gt;
• What Jinja2 templates are and why they matter in real-world Ansible playbooks&lt;br&gt;
• How to create dynamic configuration files using variables, loops, and conditionals&lt;br&gt;
• Real examples: deploying MOTD banners, SSHD configs with different ports per group&lt;br&gt;
• Useful filters like default, replace, ipaddr, sort, and how they clean up data&lt;br&gt;
• Structure breakdown: Jinja2 file → YAML vars → output on managed hosts&lt;/p&gt;

&lt;p&gt;If you’ve been copy-pasting configs between servers — or building overly repetitive playbooks — this guide can help simplify that with templating and filtering.&lt;/p&gt;

&lt;p&gt;📎 Read the full tutorial here:&lt;br&gt;
👉 Beginner’s Guide to Jinja2 Templates and Filters in Ansible&lt;/p&gt;

&lt;p&gt;💬 I’d love to hear: how are you using Jinja2 in your Ansible projects? Or what’s your go-to filter in a messy variable situation?&lt;/p&gt;

&lt;h1&gt;
  
  
  ansible #jinja2 #devops #automation #linux #infrastructureascode #beginners
&lt;/h1&gt;

</description>
      <category>ansible</category>
      <category>devops</category>
      <category>sysadmin</category>
      <category>automation</category>
    </item>
    <item>
      <title>Automate Linux User Account Inventory with Ansible</title>
      <dc:creator>Minh Tri Vo</dc:creator>
      <pubDate>Sat, 19 Apr 2025 14:47:17 +0000</pubDate>
      <link>https://dev.to/minh_trivo_vmt/automate-linux-user-account-inventory-with-ansible-2n23</link>
      <guid>https://dev.to/minh_trivo_vmt/automate-linux-user-account-inventory-with-ansible-2n23</guid>
      <description>&lt;p&gt;I needed a quick way to get user account info from multiple Linux servers — without logging into each one.&lt;/p&gt;

&lt;p&gt;So I put together a small shell script + Ansible playbook that:&lt;/p&gt;

&lt;p&gt;Collects usernames, shells, UID, password expiry, etc.&lt;/p&gt;

&lt;p&gt;Runs across your server group&lt;/p&gt;

&lt;p&gt;Outputs CSV files for auditing&lt;/p&gt;

&lt;p&gt;No extra agents, just SSH and a few lines of YAML.&lt;/p&gt;

&lt;p&gt;👉 Full breakdown here:&lt;br&gt;
&lt;a href="https://technostress.blog/automate-user-account-inventory-across-linux-servers-using-ansible" rel="noopener noreferrer"&gt;https://technostress.blog/automate-user-account-inventory-across-linux-servers-using-ansible&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love to hear how others are handling user audits at scale.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>ansible</category>
      <category>sysadmin</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
