무중단 배포?무중단 배포는 서비스 운영 중 서버나 애플리케이션 업데이트를 수행하면서도 사용자가 서비스 중단을 느끼지 않도록 하는 배포 방식입니다. 무중단 배포를 적용하지 않은 기본 CI / CD의 경우 웹훅이 발생하여 새롭게 파이프라인이 빌드 되면 기존 컨테이너를 내리고 변경사항이 적용된 새로운 컨테이너를 올리게 됩니다. 이 과정에서 새로운 컨테이너가 올라갈 때 까지 지연 시간이 존재하게되고 사용자 입장에서는 서비스를 일정시간 사용할 수 없게 됩니다. 무중단 배포를 사용하면 업데이트나 유지 보수 중에도 사용자에게 중단 없는 서비스를 제공할 수 있기에 사용자로 하여금 우수한 서비스 사용 경험을 제공할 수 있게 됩니다.Blue-Green 무중단무중단을 구현하는 방식에는 대표적으로 카나리, 롤링, 블루그린 3..
NPM BuildReact / Vue 프론트엔드 프로젝트를 빌드 하기 위해선 npm run build 명령어를 통해 프로젝트를 빌드하기 위한 정적 빌드파일을 만들어야 합니다. 로컬에서 간단하게 테스트를 해보겠습니다. NodeJS가 설치된 환경에서 React / Vue 프로젝트 루트에서 npm i로 의존성을 설치한 뒤 npm run build를 진행합니다.빌드 명령어를 실행하면 루트 디렉토리 / build 프로젝트안에 배포를 위한 index.html 및 정적 파일이 빌드 되는것을 확인할 수 있습니다. build 폴더를 배포하는 방법에 따라 배포 방식이 두가지로 나뉠 수 있습니다. 1. Docker 컨테이너로 배포빌드한 정적 파일을 Dockerfile을 통해 도커 이미지로 만들고 컨테이너로 프론트엔드를 띄우..
1. Jenkins란?Jenkins는 지속적인 통합과 배포를 지원하는 서버로, 개발팀이 빠르게 코드 변경 사항을 반영하고 애플리케이션을 자동으로 빌드, 테스트, 배포할 수 있게 합니다. Jenkins는 다양한 플러그인과 통합할 수 있어, 빌드 도구, 테스트 도구, 코드 품질 도구, 그리고 클라우드 서비스와도 쉽게 연결됩니다. CI/CD 환경에서 Jenkins는 매우 중요한 역할을 합니다. CI/CD의 핵심은 자동화입니다. Jenkins는 다음과 같은 장점을 가지고있습니다.코드 통합: 여러 개발자가 작업한 코드를 통합하여 빌드하고 테스트하는 과정을 자동화.자동 빌드: 코드가 변경될 때마다 자동으로 애플리케이션을 빌드하고 테스트.자동 배포: 빌드된 애플리케이션을 테스트 및 프로덕션 서버에 자동 배포.지속적인..
CI / CD를 구축하기 이전에 수동으로 도커이미지를 빌드하고 배포해보는 과정을 통해 배포의 전반적인 과정의 이해를 하는것이 매우 중요하다고 생각합니다. 단순히 블로그와 지피티를 통해서 코드를 복사 붙여넣기 하는것으로도 파이프라인을 구축할수는 있겠지만, 추후 트러블 슈팅이나 시스템 고도화과정에서 기본적인 배포에대한 이해가 없으면 해결하기 힘든 문제들에 직면할것입니다. 저 또한 수동배포를 한번 진행해본것이 도커에 대한 기본적인 이해와 CI / CD의 이해를 높이는데 많은 도움이 되었기에 먼저 수동으로 배포를 진행해보려고 합니다. 0. Docker란?도커의 정의는 컨테이너 기반으로하는 오픈소스 가상화 플랫폼입니다. 흔히 생각하는 실제 컨테이너는 물건을 하나의 단위로 모아서 안전하게 운반하는 도구입니다. 컨..