From eb465278ca88be8608a8c78a96c800bca9ad94f7 Mon Sep 17 00:00:00 2001 From: Story Crater Bot <19826264+Riotpiaole@users.noreply.github.com> Date: Wed, 9 Sep 2026 14:24:10 +0900 Subject: [PATCH] remove: delete article page (planned for later) --- app/homelab/article/page.tsx | 301 ----------------------------------- 1 file changed, 301 deletions(-) delete mode 100644 app/homelab/article/page.tsx diff --git a/app/homelab/article/page.tsx b/app/homelab/article/page.tsx deleted file mode 100644 index f4b353d..0000000 --- a/app/homelab/article/page.tsx +++ /dev/null @@ -1,301 +0,0 @@ -'use client' - -import Link from 'next/link' -import { ArrowLeft, Clock, Zap, BookOpen } from 'lucide-react' -import { motion } from 'framer-motion' - -const sections = [ - { - chapter: 'Chapter 1', - title: 'AWS Step Functions: The Foundation', - period: '2022–2024', - icon: '🏗️', - highlights: [ - 'Owned Distributed-Map end-to-end: design → production across 57+ regions', - 'Sub-100ms P99 latency, 20x burst handling', - 'Learned deployment alignment: frontend spec updates must sync with service deployments', - 'Built Checkpoint recovery: customers resume mid-workflow without re-runs', - 'Solved distributed edge cases: race conditions, concurrent updates, dedup', - 'Oncall mastery: CloudWatch dashboards, runbooks, production debugging' - ], - keyLearning: 'Backward compatibility is invisible until it breaks silently. A missed spec change cascades across regions.' - }, - { - chapter: 'Chapter 2', - title: 'RBC: Infrastructure as Code & Observability', - period: 'Nov 2024 – May 2025', - icon: '⚡', - highlights: [ - 'Problem: Unstable deployments with 500+ resource state files, API rate-limits, race conditions', - 'Solution: JFrog Artifactory backend + workspace prefixes, plan artifacts, -parallelism=5 throttle', - 'Result: Zero state corruption, zero pipeline blockage', - 'Problem: Configuration drift invisible for weeks, massive unreadable diffs', - 'Solution: Nightly terraform plan -refresh-only -detailed-exitcode → Slack webhook', - 'Result: Drift visibility from 3 weeks → <24 hours' - ], - keyLearning: 'Terraform wins for things that barely change. For K8s resources that churn (pods, configmaps), you need a different tool—GitOps.' - }, - { - chapter: 'Chapter 3', - title: 'Homelab: Building AWS from Scratch', - period: 'May 2025 – Present', - icon: '🚀', - highlights: [ - 'Question: How does LLM serving work at scale? Build it at home.', - '4 bare-metal machines: 1 GPU node, 1 Dell PowerEdge, 2 mini-desktops', - 'Discovery: Powerline adapters killed etcd consensus. Ran ethernet to garage.', - 'Wildcard DNS via Cloudflare, HTTPS for all subdomains (cert-manager + Let\'s Encrypt)', - 'GitOps split: Terraform for Talos machine config, ArgoCD for K8s resources', - '99.2% uptime with Talos Linux, Cilium CNI, Longhorn, PostgreSQL HA, Prometheus+Grafana+Loki' - ], - keyLearning: 'Design infrastructure so AI can modify it easily. GitOps + immutable OS = no surprises.' - }, - { - chapter: 'Chapter 4', - title: 'Poimen: AI Meets Workflows', - period: 'Building', - icon: '🤖', - highlights: [ - 'Insight: AI is powerful because of context, tool-calling, and memory.', - 'poimen-memory: Graph-RAG with wiki-link indexing, pgvector + OpenSearch hybrid search', - 'poimen-workflows: Natural language → executable Temporal workflows via reasoning model', - 'Activity Knowledge Base informs LLM about timeouts, retries, dependencies', - 'Generic state machine: JSON workflow spec + JSONPath parameter chaining', - '60% latency reduction for LLM serving (vLLM INT4 quantization, custom Go gateway)' - ], - keyLearning: 'Skill factory: each Temporal activity is independently refined. General-purpose workflow orchestration emerges.' - } -] - -const technologies = { - 'Infrastructure': ['Talos Linux', 'Kubernetes', 'Cilium CNI', 'Terraform', 'kustomize'], - 'Data': ['PostgreSQL + HA', 'pgvector', 'Kafka/Redpanda', 'MinIO', 'Longhorn'], - 'GitOps': ['ArgoCD', 'Forgejo', 'Docker-in-Docker'], - 'Identity': ['Authentik OIDC', 'RBAC', 'SOPS encrypted secrets', 'cert-manager'], - 'Observability': ['Prometheus', 'Grafana', 'Loki', 'Tempo', 'OpenTelemetry'], - 'AI/ML': ['vLLM', 'Ollama', 'TEI', 'KServe', 'Temporal', 'Qwen3-32B'], -} - -const keyInsights = [ - { - title: 'Deployment Alignment', - description: 'When frontend consumes the latest API, you need backward-compat checks. A missed spec change breaks customers silently across all regions.', - }, - { - title: 'Infrastructure as Code Split', - description: 'Terraform for things that rarely change (machine config). GitOps for things that churn (pods, configmaps). Different tools, different philosophies.', - }, - { - title: 'Network is Critical', - description: 'Powerline adapters killed etcd consensus at 200ms latency. Ethernet cable to garage solved it. Hardware matters.', - }, - { - title: 'AI-Friendly Infra', - description: 'Design systems so AI can modify them. Declarative configs + clear abstractions = easier for models to reason about.', - }, - { - title: 'Observability First', - description: 'Drift detection <24hr. Prometheus + Grafana dashboards before you have problems. Not post-mortem tools.', - }, -] - -export default function HomelabArticle() { - return ( -
- {/* Hero */} -
-
- - - Back to Homelab - - - -

- Building AWS at Home:
A 3-Year Journey -

-

- From Step Functions to LLM inference—how distributed systems knowledge compounds. -

-
-
- - 12 min read -
- - May 2025 -
-
-
-
- - {/* Main Content */} -
- {/* Intro */} - -

- There's a difference between knowing how systems work in theory and building them in production. I've spent the last 3 years learning this difference the hard way—first at AWS, then at RBC, and now at home. -

-

- This is the story of how I learned distributed systems by owning every layer: from workflow orchestration to hardware networking, from GitOps to AI agents. -

-
- - {/* Chapters */} -
- {sections.map((section, idx) => ( - -
- {section.icon} -
-
- {section.chapter} -
-

- {section.title} -

-
-
- -
- {section.period} -
- - {/* Highlights */} -
    - {section.highlights.map((highlight, i) => ( -
  • - - {highlight} -
  • - ))} -
- - {/* Key Learning */} -
-
Key Learning
-

- {section.keyLearning} -

-
-
- ))} -
- - {/* Key Insights */} - -
- -

- Core Insights -

-
- -
- {keyInsights.map((insight, idx) => ( - -

- {insight.title} -

-

- {insight.description} -

-
- ))} -
-
- - {/* Tech Stack */} - -
- -

- Technologies Mastered -

-
- -
- {Object.entries(technologies).map(([category, techs]) => ( - -

- {category} -

-
- {techs.map((tech) => ( - - {tech} - - ))} -
-
- ))} -
-
- - {/* CTA */} - -

- Want the full details? -

-

- Ask Poimen any technical question about the architecture, deployment strategies, or lessons learned. -

- - Ask Poimen → - -
-
-
- ) -}