bosh를 통한 cloud 환경에 VM 배포 시 canary와 max_in_flight라는 개념 있다.
manifest 파일에서 해당 값을 어떻게 조절하냐에 따라서 배포 완료 시간에 차이가 생길텐데...
1. canary : VM 생성 이후 JOB에 설정 된 SW 배포 시 검증을 하는 Instance
2. max_in_flight : canary Instance를 제외하고 동시에 update 하는 Instance의 숫자
처음엔.. 이 2가지 개념이 도무지 이해가 안되던데...
결론은 해당 값들을 수정할 필요는 거의 없겠지만... 사용하고 있는 Cloud IaaS 인프라가 성능상에 문제가 있다면 max_in_flight 값을 수정할 필요가 있지 않을까 싶다.
아래 ntp sample deploy를 테스트 결과를 보고 이해에 도움이 되었다.
job : 6
canary : 1
max_in_flight : 3
Started updating job ntpd
Started updating job ntpd > ntpd/0 (canary). Done (00:00:44)
Started updating job ntpd > ntpd/1
Started updating job ntpd > ntpd/2
Started updating job ntpd > ntpd/3
Done updating job ntpd > ntpd/1 (00:00:50)
Started updating job ntpd > ntpd/4
Done updating job ntpd > ntpd/3 (00:00:50)
Started updating job ntpd > ntpd/5
Done updating job ntpd > ntpd/2 (00:00:50)
Done updating job ntpd > ntpd/4 (00:00:48)
Done updating job ntpd > ntpd/5 (00:00:47)
Done updating job ntpd (00:02:22)
job: 6
canary : 2
max_in_flght : 4
Started updating job ntpd
Started updating job ntpd > ntpd/0 (canary)
Started updating job ntpd > ntpd/1 (canary). Done (00:00:48)
Done updating job ntpd > ntpd/0 (canary) (00:00:49)
Started updating job ntpd > ntpd/2
Started updating job ntpd > ntpd/3
Started updating job ntpd > ntpd/4
Started updating job ntpd > ntpd/5
Done updating job ntpd > ntpd/3 (00:00:51)
Done updating job ntpd > ntpd/4 (00:00:51)
Done updating job ntpd > ntpd/2 (00:00:51)
Done updating job ntpd > ntpd/5 (00:00:53)
Done updating job ntpd (00:01:42)
job: 6
canary : 1
max_in_flght : 6
Started updating job ntpd
Started updating job ntpd > ntpd/0 (canary). Done (00:00:44)
Started updating job ntpd > ntpd/1
Started updating job ntpd > ntpd/2
Started updating job ntpd > ntpd/3
Started updating job ntpd > ntpd/4
Started updating job ntpd > ntpd/5
Done updating job ntpd > ntpd/4 (00:00:54)
Done updating job ntpd > ntpd/5 (00:00:54)
Done updating job ntpd > ntpd/2 (00:00:55)
Done updating job ntpd > ntpd/1 (00:00:55)
Done updating job ntpd > ntpd/3 (00:00:56)
Done updating job ntpd (00:01:40)