"이 글의 저자는 과거 단순한 버전 업데이트가 재앙으로 변했던 경험을 회상하며, 더 나은 배포 방식의 필요성을 강조합니다. 저자는 과거에는 "유지보수 시간"이라는 것이 당연하게 여겨졌으며, 서비스는 중단되고, 파일이 교체되고, 모든 것이 순조롭게 진행되기를 바라는 수밖에 없었다고 말합니다. 저자는 이러한 접근 방식을 결과가 불확실한 "위험한 도박"이라고 묘사합니다. 기술이 발전하면서 배포를 개선하기 위해 셸 스크립트, 프로세스 관리자, 컨테이너화와 같은 도구가 도입되었지만, 여전히 완벽하고 중단 없는 업데이트를 달성하는 데는 미흡했습니다.
저자는 PM2 및 systemd와 같은 외부 도구 사용의 한계를 논의합니다. 이러한 도구는 강력하지만 외부 의존성, 특정 언어 또는 생태계에 종속되는 문제, 그리고 "블랙 박스" 작동 방식으로 인해 완벽한 해결책이 될 수 없습니다. 그런 다음 저자는 애플리케이션이 자체적으로 관리할 수 있도록 Rust 라이브러리인 server-manager를 사용하여 서비스 관리를 애플리케이션의 일부로 내재화하는 개념을 소개합니다. 이 접근 방식은 코드 기반 구성, 라이프사이클 후크, 크로스 플랫폼 호환성과 같은 여러 가지 이점을 제공합니다.
저자는 업데이트 로직을 애플리케이션에 내장하여 달성할 수 있는 중단 없는 핫 리스타트의 중요성을 강조합니다. 여기에는 재시작 신호 수신, 재시작 전 후크 실행, 새 버전 컴파일, 새 프로세스에 대한 제어권 이양이 포함됩니다. 저자는 배포는 기도가 아닌 자신감 있는 선언이어야 하며, Rust 생태계는 소프트웨어 구축 및 유지 관리에 대한 새롭고 더 신뢰할 수 있는 철학을 제공했다고 결론짓습니다. 저자는 더 나은 도구와 더 구성된 개발 경험의 필요성을 강조하며, 과거의 "무법 시대"에서 벗어나 새로운 배포 시대로 나아가는 변화를 나타냅니다. 이 글은 궁극적으로 애플리케이션 자체에 통합된 보다 우아하고 신뢰할 수 있는 배포 방식을 옹호합니다."
dev.to
Your-Deployments-Are-Stuck-in-the-Past-The-Lost-Art-of-the-Hot-Restart
Create attached notes ...
