서비스에 k8s 적용 간, 배포 방식에 관하여 관련 레퍼런스를 읽어볼 기회가 생겼습니다.현대 어플리케이션은 높은 가용성과, 빠른 피드백 루프를 요구하기에,이를 위하여 단일 서비스에 대한 전면적 배포방식보다는, 점진적이고 제어 가능한 배포 전략을 채택하는 것이 일반적이게 되었습니다.이번 글에서는 이러한 배포의 대표적인 전략인 Canary, Rolling, Blue-Green을 살펴보도록 하겠습니다. 1. Canary - Canary 배포는 전체 신규 버전을 소수의 인스턴스 혹은 소수의 사용자 그룹에게 먼저 릴리즈하여, 정상 동작 여부와 안정성을 검증한 후 점차 배포 범위를 확대하는 전략입니다.- 이름과 비슷하게 과거, 카나리아 새를 광산에 데리고 갔던 것에서 유래하여 장애 가능성을 사전에 탐지하기 위한 접..
Programming/Infra
서론상용 IT서비스를 개발하기 위해서는 코드의 품질, 비즈니스적인 면도 중요하지만, 운영또한 매우 중요한 요소입니다.토이프로젝트로 끝날 프로젝트라면 infra 관련한 부분에 힘을 덜 주어도 되겠지만, 24시간 상용 서비스를 만들어야 하는 저의 경우에는 지속적인 운영, 실시간 트러블 슈팅을 위해 도커와 Github Action을 적용한 CI / CD를 도입하도록 하였습니다. 오늘은 여기서 이 CI / CD란 무엇인지 짚고 넘어가도록하겠습니다. CI (Continuous Integration)CI는 영문 단어 자체를 직역해보자면, '지속적인 통합'이라는 의미를 갖고있습니다.여기서 지속적인 통합은, 개발자 단에서 애플리케이션의 코드 수정이나 추가적인 기능이 구현되었을 경우 새로운 변경 사항들이 정기적으로..