피드로 돌아가기
Node.js BlogDevOps
원문 읽기
fleet이 git 기반 배포와 프로세스 관리를 통합해 마이크로서비스 다중 서버 배포 자동화
multi-server continuous deployment with fleet
AI 요약
Context
마이크로서비스 아키텍처에서 여러 서버의 서브시스템을 실행하고 관리하는 것이 복잡했다. 새로운 코드를 프로덕션의 다중 서버에 배포하고 모든 프로세스를 동시에 관리해야 하는 운영 오버헤드가 있었다.
Technical Solution
- fleet hub와 fleet drone 아키텍처: 중앙 hub 서버(포트 7000)가 git 저장소(포트 7001) 운영, 여러 worker drone이 hub에 연결되어 프로세스 실행
- 설정 파일 기반 원격 관리: fleet remote add 명령으로 hub 주소와 시크릿을 저장하여 반복 입력 제거
- git push 기반 배포: fleet deploy 명령이 hub의 git http 서버에 푸시하고, hub가 모든 drone에 풀 명령 실행
- 커밋 해시 기반 격리 배포: 각 배포마다 git 커밋 해시 기반 새 디렉토리 생성으로 기존 서비스 영향 없음
- npm install -g fleet로 CLI 설치하고 fleet help의 git 스타일 도움말 지원
Key Takeaway
마이크로서비스 환경에서는 코드 배포와 프로세스 생명주기 관리를 분리하고, 커밋 기반 격리 배포를 통해 무중단 배포와 점진적 롤아웃이 가능하다.
실천 포인트
다중 서버에서 마이크로서비스를 운영하는 팀에서 fleet을 도입하면 fleet deploy와 fleet spawn 명령만으로 코드 푸시와 프로세스 시작을 자동화할 수 있으며, seaport 같은 서비스 레지스트리와 조합하면 새로운 버전을 스테이징 환경에서 검증한 후 구 버전을 중단할 수 있다.