<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>DevOps on Vinh Thang's AI Tech Notes</title><link>https://vinhthang.dev/tags/devops/</link><description>Recent content in DevOps on Vinh Thang's AI Tech Notes</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 27 Aug 2026 19:45:00 +0700</lastBuildDate><atom:link href="https://vinhthang.dev/tags/devops/index.xml" rel="self" type="application/rss+xml"/><item><title>🌐 Expanding to Multi-Cloud: Provisioning Oracle Linux 10 on Google Cloud's $0 Always Free Tier &amp; Joining K3s</title><link>https://vinhthang.dev/posts/gcp-always-free-oracle-linux-10-cross-cloud/</link><pubDate>Thu, 27 Aug 2026 19:45:00 +0700</pubDate><guid>https://vinhthang.dev/posts/gcp-always-free-oracle-linux-10-cross-cloud/</guid><description>&lt;p&gt;Why settle for one free cloud provider when you can build an automated, resilient &lt;strong&gt;multi-cloud Kubernetes cluster across Oracle Cloud (OCI) and Google Cloud Platform (GCP)&lt;/strong&gt; — completely for &lt;strong&gt;$0/month&lt;/strong&gt;?&lt;/p&gt;
&lt;p&gt;In this post, I walk through the end-to-end process of:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Provisioning an &lt;strong&gt;Oracle Linux Server 10.1&lt;/strong&gt; instance on Google Cloud&amp;rsquo;s &lt;strong&gt;Always Free Tier (&lt;code&gt;gce10&lt;/code&gt;)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Applying kernel and daemon memory hardening to reclaim ~250 MB of RAM.&lt;/li&gt;
&lt;li&gt;Joining &lt;code&gt;gce10&lt;/code&gt; as a worker node into our central &lt;strong&gt;K3s Kubernetes cluster&lt;/strong&gt; across a secure &lt;strong&gt;WireGuard mesh&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Running a head-to-head performance benchmark comparing &lt;strong&gt;Apple Silicon M1&lt;/strong&gt;, &lt;strong&gt;OCI Ampere ARM (&lt;code&gt;arm10&lt;/code&gt;)&lt;/strong&gt;, &lt;strong&gt;GCP Intel Xeon (&lt;code&gt;gce10&lt;/code&gt;)&lt;/strong&gt;, and &lt;strong&gt;OCI AMD EPYC (&lt;code&gt;amd10&lt;/code&gt;/&lt;code&gt;amd11&lt;/code&gt;)&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="-1-multi-cloud-k3s-kubernetes-fleet-architecture"&gt;🏛️ 1. Multi-Cloud K3s Kubernetes Fleet Architecture&lt;/h2&gt;
&lt;p&gt;Our fleet previously lived entirely in OCI Tokyo. Adding &lt;strong&gt;&lt;code&gt;gce10&lt;/code&gt;&lt;/strong&gt; in GCP Iowa (&lt;code&gt;us-central1&lt;/code&gt;) creates a geo-distributed cross-cloud presence with a dedicated US edge outpost.&lt;/p&gt;</description></item><item><title>🛠️ Building a Production-Grade Home Cloud on Oracle's $0 Always Free Tier</title><link>https://vinhthang.dev/posts/building-my-always-free-cloud/</link><pubDate>Fri, 21 Aug 2026 00:21:00 +0700</pubDate><guid>https://vinhthang.dev/posts/building-my-always-free-cloud/</guid><description>&lt;p&gt;What can you actually run on a &lt;strong&gt;$0/month Always Free cloud server&lt;/strong&gt;?&lt;/p&gt;
&lt;p&gt;In this post, I document the end-to-end journey of turning an Oracle Cloud &lt;strong&gt;1 GB AMD Micro instance (&lt;code&gt;amd10&lt;/code&gt;)&lt;/strong&gt; in Tokyo into a multi-service personal cloud hub — complete with &lt;strong&gt;Dual-Stack DNS ad-blocking&lt;/strong&gt;, &lt;strong&gt;Google Single Sign-On (SSO)&lt;/strong&gt;, &lt;strong&gt;lossless Hi-Res music streaming&lt;/strong&gt;, a &lt;strong&gt;Rust-powered REST &amp;amp; AI MCP API&lt;/strong&gt;, and a &lt;strong&gt;Hugo static blog&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-architecture--network-blueprint"&gt;🏗️ Architecture &amp;amp; Network Blueprint&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-mermaid" data-lang="mermaid"&gt;graph TD
Internet[&amp;#34;🌐 Internet / Home Network / Mobile&amp;#34;] --&amp;gt; Caddy[&amp;#34;🔒 Caddy (Auto Let&amp;#39;s Encrypt SSL)&amp;#34;]
subgraph OCI Cloud Instance (amd10 - Tokyo)
Caddy --&amp;gt;|/| VietCal[&amp;#34;📅 VietCalendar REST &amp;amp; MCP (Rust :8080)&amp;#34;]
Caddy --&amp;gt;|files.*| Oauth[&amp;#34;🔑 OAuth2-Proxy (Google SSO :4180)&amp;#34;]
Oauth --&amp;gt; FileBrowser[&amp;#34;📁 FileBrowser Cloud Drive (:8082)&amp;#34;]
Caddy --&amp;gt;|music.*| Navidrome[&amp;#34;🎵 Navidrome Lossless FLAC (:4533)&amp;#34;]
Caddy --&amp;gt;|blog.*| Hugo[&amp;#34;📝 Hugo Static Site (:443)&amp;#34;]
Caddy --&amp;gt;|adguard.*| AdGuardWeb[&amp;#34;🛡️ AdGuard Dashboard (:3000)&amp;#34;]
Router[&amp;#34;🏠 Home Router (Fiber IPv4 &amp;amp; IPv6)&amp;#34;] --&amp;gt; AdGuardDNS[&amp;#34;🛡️ AdGuard DNS Server (:53 &amp;amp; :853 DoT)&amp;#34;]
end
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="-1-reclaiming-hardware-ram-the-crashkernel-discovery"&gt;⚡ 1. Reclaiming Hardware RAM (The &lt;code&gt;crashkernel&lt;/code&gt; Discovery)&lt;/h2&gt;
&lt;p&gt;On a standard 1 GB VM, Linux kdump can silently reserve up to &lt;strong&gt;448 MB RAM&lt;/strong&gt; (nearly half the server&amp;rsquo;s memory!).&lt;/p&gt;</description></item><item><title>Building an Ultra-Lightweight Cloud-Native Observability &amp; Analytics Stack: Metrics, Logs, Traces &amp; Status on OCI</title><link>https://vinhthang.dev/posts/complete-observability-stack-metrics-logs-traces-2026/</link><pubDate>Mon, 24 Aug 2026 23:35:00 +0700</pubDate><guid>https://vinhthang.dev/posts/complete-observability-stack-metrics-logs-traces-2026/</guid><description>&lt;p&gt;Running a complex fleet of microservices—spanning AI document assistants, vector databases, lossless audio streamers, private DNS resolvers, and astronomical APIs—demands complete, real-time visibility. But traditional enterprise observability suites (Elasticsearch, heavy Prometheus clusters, DataDog) frequently devour gigabytes of memory and CPU cycles just to monitor a small infrastructure.&lt;/p&gt;
&lt;p&gt;In this deep dive, I break down how we architected and deployed a &lt;strong&gt;complete, ultra-lightweight, 360-degree Observability, Logging, Analytics, and Uptime Stack&lt;/strong&gt; across our 3-node hybrid cloud fleet at &lt;a href="https://vinhthang.dev"&gt;&lt;strong&gt;&lt;code&gt;vinhthang.dev&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;, maintaining sub-millisecond query latencies while consuming &lt;strong&gt;less than 250 MB total RAM&lt;/strong&gt;!&lt;/p&gt;</description></item><item><title>Supercharging Self-Hosted Cloud Uploads: How Cloudflare WARP Turbocharges File Ingestion</title><link>https://vinhthang.dev/posts/supercharging-uploads-cloudflare-warp/</link><pubDate>Mon, 24 Aug 2026 19:14:00 +0700</pubDate><guid>https://vinhthang.dev/posts/supercharging-uploads-cloudflare-warp/</guid><description>&lt;p&gt;One of the most frustrating bottlenecks in self-hosting is &lt;strong&gt;uploading large files to overseas cloud servers&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Whether you are uploading a 45 GB lossless FLAC music collection to Navidrome, backing up 4K video files to FileBrowser, or transferring gigabytes of PDF datasets to an AI vector store, standard public internet routing often degrades performance to an agonizing crawl.&lt;/p&gt;
&lt;p&gt;In this post, I will explain why international cross-border uploads stall, and how we used &lt;strong&gt;Cloudflare WARP&lt;/strong&gt; and &lt;strong&gt;Anycast Edge Ingestion&lt;/strong&gt; to boost our file upload throughput by &lt;strong&gt;5x to 10x&lt;/strong&gt; directly into our cloud fleet at &lt;a href="https://vinhthang.dev"&gt;&lt;strong&gt;&lt;code&gt;vinhthang.dev&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>How to Snag the Elusive Oracle Cloud Always Free ARM64 Ampere A1 Instance</title><link>https://vinhthang.dev/posts/snagging-oracle-always-free-arm-ampere/</link><pubDate>Mon, 24 Aug 2026 18:45:00 +0700</pubDate><guid>https://vinhthang.dev/posts/snagging-oracle-always-free-arm-ampere/</guid><description>&lt;p&gt;If you have ever tried to launch an &lt;strong&gt;ARM64 Ampere A1 Flex&lt;/strong&gt; compute instance on &lt;strong&gt;Oracle Cloud Infrastructure (OCI) Always Free&lt;/strong&gt;, you have almost certainly encountered this dreaded error message:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;500-InternalError: Out of host capacity for shape VM.Standard.A1.Flex in availability domain...&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Oracle&amp;rsquo;s Always Free tier offers one of the most generous compute allowances in the industry—&lt;strong&gt;up to 4 OCPUs and 24 GB RAM&lt;/strong&gt; on enterprise-grade Ampere Altra ARM64 processors. Because of this, capacity in popular data centers (like Tokyo, Seoul, Ashburn, Frankfurt, and Singapore) is constantly saturated.&lt;/p&gt;</description></item><item><title>Autonomous AI Infrastructure: AnythingLLM, PostgreSQL 18 pgvector, and the Antigravity CLI (agy) System Agent</title><link>https://vinhthang.dev/posts/self-hosted-ai-agent-architecture/</link><pubDate>Mon, 24 Aug 2026 18:43:00 +0700</pubDate><guid>https://vinhthang.dev/posts/self-hosted-ai-agent-architecture/</guid><description>&lt;p&gt;Most self-hosted AI setups stop at running a basic chat UI connected to a remote API. But what if your self-hosted AI wasn&amp;rsquo;t just a conversational bot, but a &lt;strong&gt;fully empowered autonomous system agent&lt;/strong&gt; capable of managing your infrastructure, installing command-line tools, debugging services, and querying custom vector databases?&lt;/p&gt;
&lt;p&gt;In this post, I will explore our complete self-hosted AI architecture running on an Always Free cloud Kubernetes cluster—featuring &lt;strong&gt;AnythingLLM&lt;/strong&gt;, &lt;strong&gt;PostgreSQL 18 with &lt;code&gt;pgvector&lt;/code&gt;&lt;/strong&gt;, and the &lt;strong&gt;Google Antigravity CLI (&lt;code&gt;agy&lt;/code&gt;)&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Architecting a Multi-Node Hybrid K3s Kubernetes Fleet on Oracle Cloud Always Free</title><link>https://vinhthang.dev/posts/hybrid-k3s-kubernetes-architecture-2026/</link><pubDate>Mon, 24 Aug 2026 18:40:00 +0700</pubDate><guid>https://vinhthang.dev/posts/hybrid-k3s-kubernetes-architecture-2026/</guid><description>&lt;p&gt;How do you turn 3 separate Always Free cloud virtual machines into a resilient, production-grade, multi-architecture Kubernetes cluster capable of running high-performance relational databases, AI vector stores, lossless music streaming, and personal cloud storage?&lt;/p&gt;
&lt;p&gt;In this post, I will break down the complete architecture of our newly deployed &lt;strong&gt;3-Node Hybrid K3s Cluster&lt;/strong&gt; running on &lt;strong&gt;Oracle Cloud Infrastructure (OCI)&lt;/strong&gt; under our custom domain &lt;a href="https://vinhthang.dev"&gt;&lt;strong&gt;&lt;code&gt;vinhthang.dev&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-the-3-node-cluster-topology"&gt;🏛️ The 3-Node Cluster Topology&lt;/h2&gt;
&lt;p&gt;Oracle Cloud&amp;rsquo;s Always Free tier offers an incredible set of compute resources:&lt;/p&gt;</description></item><item><title>🚀 Welcome to my Self-Hosted Cloud on Oracle Always Free</title><link>https://vinhthang.dev/posts/welcome/</link><pubDate>Fri, 21 Aug 2026 00:18:00 +0700</pubDate><guid>https://vinhthang.dev/posts/welcome/</guid><description>&lt;p&gt;Welcome to my personal tech blog!&lt;/p&gt;
&lt;p&gt;This blog is built using &lt;strong&gt;&lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt;&lt;/strong&gt; with the &lt;strong&gt;&lt;a href="https://github.com/adityatelange/hugo-PaperMod"&gt;PaperMod&lt;/a&gt;&lt;/strong&gt; theme, served directly by &lt;strong&gt;Caddy&lt;/strong&gt; with automatic Let&amp;rsquo;s Encrypt SSL.&lt;/p&gt;
&lt;h3 id="-what-is-running-on-this-server"&gt;🌐 What is running on this server:&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;AdGuard Home&lt;/strong&gt;: Dual-stack network-wide ad &amp;amp; malware blocking (IPv4, IPv6, DoT).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VietCalendar&lt;/strong&gt;: High-performance Rust Lunar Calendar REST API &amp;amp; MCP Server.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Navidrome&lt;/strong&gt;: Bit-perfect lossless FLAC music streaming.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FileBrowser&lt;/strong&gt;: Private cloud storage with Google SSO.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hugo Blog&lt;/strong&gt;: Ultra-fast static site serving at sub-millisecond speeds with &lt;strong&gt;0 MB RAM overhead&lt;/strong&gt;!&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Built with ❤️ on Oracle Linux 10 (&lt;code&gt;amd10&lt;/code&gt; in Tokyo).&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>