피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Zero-Dependency 및 Flat JSON 기반 초경량 Linux Fleet Manager 설계
I built a self-hosted Linux fleet manager with no database and zero pip dependencies
AI 요약
Context
Ansible의 대시보드 부재와 Grafana/Zabbix의 과도한 리소스 점유로 인한 관리 오버헤드 발생. 소규모 서버 플릿 환경에서 복잡한 데이터베이스와 프레임워크 없이 동작하는 효율적인 제어 평면 필요성 대두.
Technical Solution
- Python standard library만 활용한 Zero-pip dependency 설계를 통한 Supply Chain Risk 제거 및 배포 단순화
- RDBMS 대신 Flat JSON Storage를 채택하여 백업 효율성 확보 및 수백 대 규모 장비의 빠른 데이터 조회 구현
- Agent가 Server로 상태를 전송하는 Push-based Heartbeat 구조를 통한 인바운드 포트 개방 최소화 및 보안성 강화
- nginx와 CGI server 조합으로 Stateless한 요청 처리 구조를 설계하여 Raspberry Pi 수준의 저사양 하드웨어 구동 가능 환경 구축
- Bash 스크립트 기반의 Custom Monitoring과 Edge-triggered Webhook을 결합한 Alert Fatigue 방지 메커니즘 구현
- OSV.dev 기반의 CVE Scanning과 파일 해시 기반 Configuration Drift Detection을 통한 보안 가시성 확보
실천 포인트
1. 소규모 데이터셋 처리 시 RDBMS 도입 전 Flat File 기반의 단순 저장소 검토
2. 외부 라이브러리 의존성을 제거하여 런타임 환경의 일관성 및 배포 속도 최적화
3. 불필요한 반복 알림을 방지하기 위해 상태 변경 시점에만 작동하는 Edge-triggered 방식 적용
4. 보안상 서버가 클라이언트에 접속하는 방식보다 클라이언트가 서버로 보고하는 Push 구조 우선 고려