<?xml version="1.0" encoding="UTF-8" ?> <?xml-stylesheet type="text/xsl" href="rss.xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title>agfian&#39;s space</title><description>Notes on AI engineering, MLOps, DevOps, and whatever I&#39;m learning.</description><link>https://agfianf.github.io/</link><atom:link href="https://agfianf.github.io/feed_rss_created.xml" rel="self" type="application/rss+xml" /> <managingEditor>M Agfian</managingEditor><language>en</language> <pubDate>Wed, 28 Oct 2026 05:41:15 -0000</pubDate> <lastBuildDate>Wed, 28 Oct 2026 05:41:15 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.19.0</generator> <image> <url>https://agfianf.github.io/assets/logo.png</url> <title>agfian's space</title> <link>https://agfianf.github.io/</link> </image> <item> <title>Hands On Auto Scaling FastAPI with Kubernetes</title> <author>M Agfian</author> <category>deployment</category> <category>devops</category> <category>docker</category> <category>fastapi</category> <category>kubernetes</category> <description>Autoscale a FastAPI service on Minikube with the Horizontal Pod Autoscaler on CPU usage, load-tested with Locust.</description> <link>https://agfianf.github.io/blog/2025/05/02/hands-on-auto-scaling-fastapi-with-kubernetes/</link> <pubDate>Fri, 02 May 2025 00:00:00 +0000</pubDate> <source url="https://agfianf.github.io/feed_rss_created.xml">agfian's space</source><guid isPermaLink="true">https://agfianf.github.io/blog/2025/05/02/hands-on-auto-scaling-fastapi-with-kubernetes/</guid> <enclosure url="https://agfianf.github.io/assets/images/social/blog/2025/05/02/hands-on-auto-scaling-fastapi-with-kubernetes.png" type="image/png" length="214912" /> </item> <item> <title>Hands-on FastAPI Simple Deployment with Kubernetes</title> <author>M Agfian</author> <category>deployment</category> <category>devops</category> <category>docker</category> <category>fastapi</category> <category>kubernetes</category> <description>Deploy a FastAPI image from Docker Hub to a Minikube cluster with a Deployment and a ClusterIP Service, then reach it with kubectl port-forward.</description> <link>https://agfianf.github.io/blog/2025/04/22/hands-on-fastapi-simple-deployment-with-kubernetes/</link> <pubDate>Tue, 22 Apr 2025 00:00:00 +0000</pubDate> <source url="https://agfianf.github.io/feed_rss_created.xml">agfian's space</source><guid isPermaLink="true">https://agfianf.github.io/blog/2025/04/22/hands-on-fastapi-simple-deployment-with-kubernetes/</guid> <enclosure url="https://agfianf.github.io/assets/images/social/blog/2025/04/22/hands-on-fastapi-simple-deployment-with-kubernetes.png" type="image/png" length="213158" /> </item> <item> <title>Hands-On Gitlab CI/CD</title> <author>M Agfian</author> <category>automation</category> <category>ci/cd</category> <category>cloud</category> <category>devops</category> <category>gcp</category> <category>gitlab</category> <category>terraform</category> <description>Self-host GitLab and a runner on GCP with Terraform, then build a pipeline that tests a FastAPI app, pushes it to Docker Hub and deploys it over SSH.</description> <link>https://agfianf.github.io/blog/2025/04/13/hands-on-gitlab-cicd/</link> <pubDate>Sun, 13 Apr 2025 00:00:00 +0000</pubDate> <source url="https://agfianf.github.io/feed_rss_created.xml">agfian's space</source><guid isPermaLink="true">https://agfianf.github.io/blog/2025/04/13/hands-on-gitlab-cicd/</guid> <enclosure url="https://agfianf.github.io/assets/images/social/blog/2025/04/13/hands-on-gitlab-cicd.png" type="image/png" length="199859" /> </item> <item> <title>Hands-on with Jenkins</title> <author>M Agfian</author> <category>automation</category> <category>ci/cd</category> <category>cloud</category> <category>devops</category> <category>gcp</category> <category>jenkins</category> <category>terraform</category> <description>Install a Jenkins controller and agent on GCP VMs with Terraform startup scripts, connect the agent over WebSocket, and run a disk-space check job.</description> <link>https://agfianf.github.io/blog/2025/03/25/hands-on-with-jenkins-fontawesome-brands-jenkins/</link> <pubDate>Tue, 25 Mar 2025 00:00:00 +0000</pubDate> <source url="https://agfianf.github.io/feed_rss_created.xml">agfian's space</source><guid isPermaLink="true">https://agfianf.github.io/blog/2025/03/25/hands-on-with-jenkins-fontawesome-brands-jenkins/</guid> <enclosure url="https://agfianf.github.io/assets/images/social/blog/2025/03/25/hands-on-with-jenkins-fontawesome-brands-jenkins.png" type="image/png" length="198303" /> </item> <item> <title>Hands-On Terraform</title> <author>M Agfian</author> <category>devops</category> <category>gcp</category> <category>terraform</category> <category>vm</category> <description>Provision a GCP VM running NGINX with Terraform, including the VPC, subnet and firewall rules, through init, plan, apply and destroy, then scale it to 3.</description> <link>https://agfianf.github.io/blog/2025/03/09/hands-on-terraform-material-terraform/</link> <pubDate>Sun, 09 Mar 2025 00:00:00 +0000</pubDate> <source url="https://agfianf.github.io/feed_rss_created.xml">agfian's space</source><guid isPermaLink="true">https://agfianf.github.io/blog/2025/03/09/hands-on-terraform-material-terraform/</guid> <enclosure url="https://agfianf.github.io/assets/images/social/blog/2025/03/09/hands-on-terraform-material-terraform.png" type="image/png" length="201639" /> </item> <item> <title>Hands-On Setup NginX with Ansible</title> <author>M Agfian</author> <category>ansible</category> <category>devops</category> <category>gcp</category> <category>vm</category> <description>Use Ansible from a control node on GCP to install NGINX on two managed VMs with an inventory and a playbook, then install Docker from Ansible Galaxy.</description> <link>https://agfianf.github.io/blog/2025/03/08/hands-on-setup-nginx-with-ansible/</link> <pubDate>Sat, 08 Mar 2025 00:00:00 +0000</pubDate> <source url="https://agfianf.github.io/feed_rss_created.xml">agfian's space</source><guid isPermaLink="true">https://agfianf.github.io/blog/2025/03/08/hands-on-setup-nginx-with-ansible/</guid> <enclosure url="https://agfianf.github.io/assets/images/social/blog/2025/03/08/hands-on-setup-nginx-with-ansible.png" type="image/png" length="208869" /> </item> <item> <title>Optimizing Satellite Maps: Efficiently Rendering 700K++ Object Polygons and Their Attributes</title> <author>M Agfian</author> <category>GIS</category> <category>backend</category> <category>maps</category> <category>satellite</category> <description>How I got 700,000 satellite-derived polygons onto a web map by moving from GeoJSON to vector tiles, packed as PMTiles and served by Martin.</description> <link>https://agfianf.github.io/blog/2025/03/04/optimizing-satellite-maps-efficiently-rendering-700k-object-polygons-and-their-attributes/</link> <pubDate>Tue, 04 Mar 2025 00:00:00 +0000</pubDate> <source url="https://agfianf.github.io/feed_rss_created.xml">agfian's space</source><guid isPermaLink="true">https://agfianf.github.io/blog/2025/03/04/optimizing-satellite-maps-efficiently-rendering-700k-object-polygons-and-their-attributes/</guid> <enclosure url="https://agfianf.github.io/assets/images/social/blog/2025/03/04/optimizing-satellite-maps-efficiently-rendering-700k-object-polygons-and-their-attributes.png" type="image/png" length="223753" /> </item> <item> <title>Task 12: Hands-On Monitoring &amp;amp; Alerting with Node Exporter, Prometheus, and Grafana Dashboards</title> <author>M Agfian</author> <category>devops</category> <category>digital-skola</category> <category>grafana</category> <category>homework</category> <category>monitoring</category> <category>prometheus</category> <description>Monitor a server&#39;s CPU and memory with Node Exporter, Prometheus and Grafana, build a custom or imported dashboard, and send alerts to Discord.</description> <link>https://agfianf.github.io/blog/2025/03/03/task-12-hands-on-monitoring--alerting-with-node-exporter-prometheus-and-grafana-dashboards/</link> <pubDate>Mon, 03 Mar 2025 00:00:00 +0000</pubDate> <source url="https://agfianf.github.io/feed_rss_created.xml">agfian's space</source><guid isPermaLink="true">https://agfianf.github.io/blog/2025/03/03/task-12-hands-on-monitoring--alerting-with-node-exporter-prometheus-and-grafana-dashboards/</guid> <enclosure url="https://agfianf.github.io/assets/images/social/blog/2025/03/03/task-12-hands-on-monitoring--alerting-with-node-exporter-prometheus-and-grafana-dashboards.png" type="image/png" length="216351" /> </item> <item> <title>Task 7: Docker Compose with To Do App</title> <author>M Agfian</author> <category>devops</category> <category>digital-skola</category> <category>docker</category> <category>homework</category> <category>rust</category> <description>Run a to-do app with Docker Compose, with a Rust actix-web API, PostgreSQL on a persistent volume and a static frontend on one bridge network.</description> <link>https://agfianf.github.io/blog/2025/03/02/task-7-docker-compose-with-to-do-app/</link> <pubDate>Sun, 02 Mar 2025 00:00:00 +0000</pubDate> <source url="https://agfianf.github.io/feed_rss_created.xml">agfian's space</source><guid isPermaLink="true">https://agfianf.github.io/blog/2025/03/02/task-7-docker-compose-with-to-do-app/</guid> <enclosure url="https://agfianf.github.io/assets/images/social/blog/2025/03/02/task-7-docker-compose-with-to-do-app.png" type="image/png" length="211552" /> </item> <item> <title>Task 11: Monitoring Server Memory Usage with Prometheus Node Exporter</title> <author>M Agfian</author> <category>devops</category> <category>digital-skola</category> <category>homework</category> <category>prometheus</category> <description>Run Node Exporter and Prometheus with Docker Compose to read a server&#39;s total, available, free and used memory, and why available beats free.</description> <link>https://agfianf.github.io/blog/2025/03/02/task-11-monitoring-server-memory-usage-with-prometheus-node-exporter/</link> <pubDate>Sun, 02 Mar 2025 00:00:00 +0000</pubDate> <source url="https://agfianf.github.io/feed_rss_created.xml">agfian's space</source><guid isPermaLink="true">https://agfianf.github.io/blog/2025/03/02/task-11-monitoring-server-memory-usage-with-prometheus-node-exporter/</guid> <enclosure url="https://agfianf.github.io/assets/images/social/blog/2025/03/02/task-11-monitoring-server-memory-usage-with-prometheus-node-exporter.png" type="image/png" length="215496" /> </item> <item> <title>Task 5: Shell Scripting</title> <author>M Agfian</author> <category>devops</category> <category>digital-skola</category> <category>homework</category> <category>shell-scripting</category> <description>A Bash script that copies the .log files from /var/log into a timestamped backup folder, zips it, reports the space saved, and runs from cron.</description> <link>https://agfianf.github.io/blog/2025/02/27/task-5-shell-scripting/</link> <pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate> <source url="https://agfianf.github.io/feed_rss_created.xml">agfian's space</source><guid isPermaLink="true">https://agfianf.github.io/blog/2025/02/27/task-5-shell-scripting/</guid> <enclosure url="https://agfianf.github.io/assets/images/social/blog/2025/02/27/task-5-shell-scripting.png" type="image/png" length="200392" /> </item> <item> <title>Task 4: Linux and Unix Administration 2</title> <author>M Agfian</author> <category>devops</category> <category>digital-skola</category> <category>homework</category> <category>linux</category> <description>Set up two Ubuntu VMs with passwordless SSH in both directions, then use cron and scp to copy a file from one server to the other every 5 minutes.</description> <link>https://agfianf.github.io/blog/2025/02/25/task-4-linux-and-unix-administration-2/</link> <pubDate>Tue, 25 Feb 2025 00:00:00 +0000</pubDate> <source url="https://agfianf.github.io/feed_rss_created.xml">agfian's space</source><guid isPermaLink="true">https://agfianf.github.io/blog/2025/02/25/task-4-linux-and-unix-administration-2/</guid> <enclosure url="https://agfianf.github.io/assets/images/social/blog/2025/02/25/task-4-linux-and-unix-administration-2.png" type="image/png" length="203187" /> </item> <item> <title>Monitoring FastAPI Applications with RED Metrics</title> <author>M Agfian</author> <category>fastapi</category> <category>grafana</category> <category>prometheus</category> <description>Instrument a FastAPI app with RED metrics (rate, errors, duration) using prometheus-client middleware and expose them on /metrics for Prometheus.</description> <link>https://agfianf.github.io/blog/2025/02/24/monitoring-fastapi-applications-with-red-metrics/</link> <pubDate>Mon, 24 Feb 2025 00:00:00 +0000</pubDate> <source url="https://agfianf.github.io/feed_rss_created.xml">agfian's space</source><guid isPermaLink="true">https://agfianf.github.io/blog/2025/02/24/monitoring-fastapi-applications-with-red-metrics/</guid> <enclosure url="https://agfianf.github.io/assets/images/social/blog/2025/02/24/monitoring-fastapi-applications-with-red-metrics.png" type="image/png" length="209780" /> </item> <item> <title>Task Sesi 3: Linux and Unix Administration 1</title> <author>M Agfian</author> <category>devops</category> <category>digital-skola</category> <category>homework</category> <category>linux</category> <description>Linux admin homework. Create users and a group, lock a shared folder to it with chmod 070, then install NGINX and verify it with curl, netstat and ps.</description> <link>https://agfianf.github.io/blog/2025/02/22/task-sesi-3-linux-and-unix-administration-1/</link> <pubDate>Sat, 22 Feb 2025 00:00:00 +0000</pubDate> <source url="https://agfianf.github.io/feed_rss_created.xml">agfian's space</source><guid isPermaLink="true">https://agfianf.github.io/blog/2025/02/22/task-sesi-3-linux-and-unix-administration-1/</guid> <enclosure url="https://agfianf.github.io/assets/images/social/blog/2025/02/22/task-sesi-3-linux-and-unix-administration-1.png" type="image/png" length="207703" /> </item> </channel> </rss>