CI/CD 파이프라인은 소프트웨어 릴리스의 자동화를 도와줍니다. 배포 및 롤백 과정을 자동화하면 신속하고 안정적인 배포가 가능합니다.이번 글에서 TypeScript 프로젝트를 대상으로 CI/CD 파이프라인을 구축하고, 배포 과정에서의 롤백 방법을 살펴보겠습니다.
CI/CD 파이프라인 구성하기
CI/CD 파이프라인을 구성할 때 가장 먼저 고려해야 할 것은 지속적 통합 (CI, Continuous Integration)와 지속적 배포 (CD, Continuous Deployment)가 원활하게 이뤄질 수 있도록 환경을 설정하는 것입니다. 아래는 Github Actions를 사용하여 TypeScript 프로젝트의 CI/CD 파이프라인을 설정하는 예시입니다.
name: CI/CD Pipeline
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install dependencies
run: npm install
- name: Build
run: npm run build
- name: Deploy
run: |
npx now --prod
위 코드는 main 브랜치로의 push 이벤트 발생 시, 빌드 및 배포를 자동으로 수행하는 GitHub Actions 워크플로우를 정의한 것입니다. 이제 CI/CD 파이프라인이 구성되었으니, 배포 과정에서의 롤백 방법을 살펴보겠습니다.
롤백 시나리오
롤백은 배포된 애플리케이션의 이전 버전으로 되돌아가는 것을 말합니다. 배포한 애플리케이션이 예상치 못한 이슈를 일으키거나 불안정한 상태일 때, 이전 버전으로의 롤백은 매우 중요합니다. TypeScript 프로젝트에서는 이전 버전의 코드를 배포하여 롤백을 수행할 수 있습니다.
name: Rollback
on:
push:
branches:
- rollback
jobs:
rollback:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Rolling back to previous version
run: |
npx now deploy <previous_deployment_url> --prod
위의 코드는 rollback 브랜치로의 push 이벤트 발생 시, 이전 버전의 애플리케이션으로 롤백하는 GitHub Actions 워크플로우를 정의한 것입니다. 이제 배포된 애플리케이션을 롤백하기 위해 rollback 브랜치로 코드를 푸시하면, 이전 버전의 애플리케이션이 배포됩니다.
이렇게 CI/CD 파이프라인을 구축하고 롤백 시나리오를 설정하여 TypeScript 프로젝트의 지속적인 배포와 롤백을 자동화할 수 있습니다.
결론
지속적인 배포와 롤백은 애플리케이션의 안정성을 유지하기 위해 매우 중요합니다. CI/CD 파이프라인을 구축하고 롤백 시나리오를 설정함으로써, 개발팀은 안정적인 배포 및 신속한 롤백을 보장할 수 있습니다.
이상으로 TypeScript 프로젝트의 CI/CD 파이프라인을 구축하고, 배포 과정에서의 롤백 방법에 대해 알아보았습니다.
[참고 자료]
- Github Actions 문서: https://docs.github.com/en/actions
- Now 배포 도구: https://vercel.com/docs/now
관련 주제: TypeScript, CI/CD, 지속적 통합, 지속적 배포, 롤백