Hybrid Cloud Build Farm Architecture
About 193 wordsLess than 1 minute
2025-12-19
- Status: Accepted
- Date: 2025-12-19
- Author: Vasu Grover
- Context: The Yocto Build Farm
Context and Problem Statement
I need a Continuous Integration (CI) system capable of building large Embedded Linux (Yocto/QNX) images.
- Yocto Reality: A single build requires 50GB+ of disk space, 4-8+ CPU cores, and 16GB+ RAM.
- Cloud Constraints: Renting a cloud server with these specs costs hundreds of dollars per month. Free tier runners (GitHub Actions) time out after 6 hours and lack disk space.
Decision Drivers
- Cost Efficiency: Minimize recurring cloud costs.
- Performance: maximize CPU availability for BitBake.
- Security: Expose the UI securely without port forwarding.
The Decision
I will implement a Hybrid Cloud Architecture:
- The "Brain" (Cloud): A lightweight Jenkins Master on a cheap Cloud VPS (Coolify). Handles orchestration/webhooks.
- The "Muscle" (Local): A high-performance Home PC acting as a Permanent Jenkins Agent.
- Connectivity: Connected via Cloudflare Zero Trust Tunnel (outbound WebSocket).
Consequences
- Positive: Utilizing owned hardware ($0/month) for compute. High performance.
- Negative: Dependency on home power/internet availability.