2011-08-18 3 views
7

토네이도 기반 웹 응용 프로그램 배포를위한 표준 코드 배포 전략이 있습니까? 우리의 현재 구성은 NginX 뒤에서 실행되는 4 개의 토네이도 프로세스입니까?토네이도 코드 배포

우리는 현재 4 개의 토네이도 프로세스를 시작하고/tmp /에있는 파일에 PID를 저장하는 데 충분한 솔루션을 가지고 있습니다. 새 코드를 배포 할 때 패브릭을 통해 다음 시퀀스를 실행합니다.

  1. 찌르다 지점에서 git pull을 수행합니다.
  2. 부하 분산 장치에서 시스템을 제거하십시오.
  3. 비행 중 연결이 잠자기 될 때까지 기다리십시오.
  4. pid 파일에서 모든 토네이도를 죽이고 모든 * .pyc 파일을 제거하십시오.
  5. 토네이도를 다시 시작하십시오.
  6. 부하 분산 장치에 기계를 다시 연결하십시오.

    http://agiletesting.blogspot.com/2009/12/deploying-tornado-in-production.html이 밖에 다른 완벽한 솔루션이 있습니다

우리는이에서 영감을 촬영했습니다?

답변

0

프로덕션 환경에서는 Tornado를 배포하지 않았지만 Gevent + Nginx를 사용하고 있으며 프로세스 관리를 위해 Supervisord을 사용하고 있습니다. - 시작/중지/다시 시작, 로깅, 모니터링 - supervisorctl은 매우 편리합니다. 내가 말했듯이, 배포 솔루션이 아니라 사용 가치가있는 도구 일 것입니다.

1

관리자가 supervisord를 사용하여 Tornado + Nginx를 실행합니다.

샘플 구성

[program:server] 
process_name = server-%(process_num)s 
command=/opt/current/vrun.sh /opt/current/app.py --port=%(process_num)s 
stdout_logfile=/var/log/server/server.log 
stderr_logfile=/var/log/server/server.err 
numprocs = 6 
numprocs_start = 7000 

내가 일을 다시 시작하기 위해 "최고"방법을 찾아 아직했습니다 (이름 변경), 내가 마지막으로 할 아마 것은 Nginx에 인 "활성"파일이있을 것입니다 HAProxy가 우리가 구성을 망친다는 것을 알게하고 주변을 바꾸고 모든 것을 다시 사용하도록 알려주도록 업데이트했습니다.

Capistrano (Fabric으로 이전하려면 백 로그 작업이 있음)를 사용하고 있지만 * .pyc 파일을 제거하는 대신 release 식별자에/opt/current 심볼릭 링크를 사용합니다.

관련 문제