일관되고시기 적절하게 프로덕션 환경에 일부 웹 서비스를 배포하는 방법을 찾고 있습니다.NodeJS 프로덕션 배포 모범 사례
저는 현재 Anagers가 제공 한 여러 가상 시스템에 대한 특정 소프트웨어 버전의 수동 배포 작업으로 끝나는 배포 파이프 라인을 구현 중입니다. 아이디어는 버전 A를 사용하는 x 개의 인스턴스를 제공하고 이미 버전 B를 실행중인 인스턴스를 y 개 갖는 것입니다. 그런 다음 트래픽을 이미지화하고 가볍게 훑어보십시오. 동일한 메커니즘을 통해 내가 이미 만든 이미지를 사용하여 세트에서 새로운 VM을 확장 할 수 있습니다.
- TGZ
CI를 환경을 단위 테스트 등을 통과 한 프로젝트에서 타르볼을 구축 할 것이다 : 나는 다음과 같은 옵션을 고려했지만 프로그래머 뭔가 내가 바라 보는거야 궁금했다
통합 테스트. 선택적으로 depednencies가 번들로 제공됩니다 (프로덕션 시스템에서 npm install을 실행하지 않고 공용 또는 개인 npm 저장소에 네트워크 연결을 사용하지 않아도 됨).
여기에서 가장 중요한 문제는 시스템 라이브러리에 의존하는 모든 종속 항목이 다른 컴퓨터 (동일한 이미지 임에도 불구하고)에 구축된다는 것입니다. 나는 이것을 좋아하지 않는다.
- NPM
CI를 환경 프로비저닝 후 특정 버전을 체크하는 개인 NPM 저장소와 Ansible 배포 스크립트에 게시 할 것입니다. 다시 말하지만 배포하려는 경우 외부 서비스에 의존해야합니다. 나는 이것을 좋아하지 않는다. 될
- 힘내
모든 시스템에 의존 모듈은 세계적으로 프로비저닝의 일부로 설치 및 기타 모든 종속 저장소에 확인됩니다. 이것은 델타가 푸시되고 응용 프로그램 데몬이 프로세스 관리자에 의해 거의 즉시 자동으로 재시작 될 수있는 차별화 된 배치를 수행 할 수있는 유연성을 제공합니다. 종속성은 절대적으로 제한됩니다.
이것은 확장 할 때까지 새 VM을 돌릴 필요가 없음을 의미합니다. 배치는 모든 활성 인스턴스로 곧장 푸시 될 수 있습니다.