배포 자동화 - 개요

배포 자동화의 종류와 특징에 대해서 알아봅시다

작성자

홍세민

홍세민

MarcusHong

a.k.a CD(Continuous Delivery)

Spinnaker, Jenkins 등 좋은 툴 들이 많이 있지만, 이러한 툴들을 쓰기 위해서는 별도의 인프라 및 학습이 필요하다. 팀 규모가 크지 않다면 상당한 비용이 필요하기 때문에 인프라가 필요한 툴들은 지양하는 편이다. 간단한 환경 구축이나 툴만으로도 배포 자동화를 할 수 있는 방법을 알아보도록 하자.

1. ssh

  • scp로 복사 후 재시작
  • git push 후 ssh로 접속해 pull 후 재시작
  • 수작업

2. git hook

  • git에서 제공하는 hook 기능을 사용한다.
  • push가 되었을 때 자동으로 배포 스크립트가 동작되도록 한다. (https://gist.github.com/noelboss/3fe13927025b89757f8fb12e9066f2fa)
  • 특정 branch로 push 되었을 경우 무조건 배포

3. pm2

  • pm2는 프로세스 관리도구로 유명한 도구인데, 배포 기능까지 있다.
  • git push 후 원하는 시간에 배포 할 수 있다.
  • setup, deploy 기능이 있다.
  • pre-setup, post-setup, pre-deploy-local, post-deploy 스크립트를 만들 수 있다.

4. docker

  • pm2로 배포 후 docker image를 만든 후 docker run 으로 이미지를 실행한다.

5. docker registry + ecr

  • docker image를 버전닝해서 버전 관리를 하면서 배포를 관리한다.
  • docker registry를 만드려면 별도의 인프라가 필요한데, aws에서 제공하는 elastic container registry를 사용하면 저비용으로 docker-registry를 사용할 수

6. docker-machine

  • docker-machine은 원격으로 docker 명령어를 실행할 수 있다.
  • ssh 접속없이 로컬에서 docker image pull 후 배포한다.

Tags : cd 

comments powered by Disqus