read

배포 프로세스는 개발 환경 혹은 로컬 환경에서 개발을 진행한 후, 테스트 결과에 이상이 없으면 서비스 서버에 코드에 반영하는 일련의 과정을 의미합니다.

여기서 중요한 문제는 “로컬에서 개발한 소스코드를 각 서버에 어떻게 적용시킬까?” 입니다

위의 문제를 해결하기 위하여 가장 단순하게 서비스를 배포하던 경험부터 시작하여 적용한 다양한 배포 방식을 글로 정리하려고 합니다.

  1. Git 없이 서비스 배포
  2. Git과 함께 서비스 배포
  3. Docker + Git을 이용한 서비스 배포
  4. docker-compose를 이용한 서비스 배포
  5. 클라우드 환경에서의 서비스 배포
  6. docker-compose + Jenkins + Git을 이용한 서비스 배포
  7. Kubernetes를 이용한 서비스 배포 (준비 중)

Git 없이 서비스 배포

로컬 개발 환경에 있던 소스코드를 서비스 서버에 적용시키기 위한 가장 단순한 방법은 Ctrl + CCtrl + V 입니다. 단순하게 로컬 개발 환경과 같은 디렉토리에 해당 소스코드를 옮겨놓기만 하면 배포가 완료됩니다.

배포 방법

  1. 로컬 환경에서 sFTP 등을 이용하여 파일을 서비스 서버에 업로드한다.
  2. 서비스 서버에 ssh로 접속한다.
  3. 해당 소스코드를 실행시킨다.

문제점

  1. 서비스 서버에 적용된 소스코드의 버전과 히스토리 관리가 어렵다.
  2. 로컬 환경과 서비스 환경의 차이에 따라 코드가 동작하지 않을 수도 있다.
  3. 소스코드를 실행시키는 방법이 다양할 수 있다.

Git을 이용한 서비스 배포

Git을 이용한다면 로컬 환경에서 sFTP등을 이용하여 파일을 전송하는 대신 서버에서 Remote Repository로부터 소스코드를 pull하여 서비스 서버에서 실행시킵니다.

배포 방법

  1. 로컬 환경에서 remote repository에 소스코드를 push합니다.
  2. 서비스 서버에 ssh로 접속한다.
  3. 서비스 서버에서 remote repository 소스코드를 pull합니다.
  4. 해당 소스코드를 실행시킨다.

문제점

  1. 로컬 환경과 서비스 환경의 차이에 따라 코드가 동작하지 않을 수도 있다.
  2. 소스코드를 실행시키는 방법이 다양할 수 있다.
  3. 서비스 서버에 소스코드의 git history 정보가 남을 수 있다.

git을 이용하여 배포하면 서비스 서버에 적용된 해당 소스코드의 버전을 확인하여 히스토리 관리가 가능해지지만, 소스코드의 전체 이력이 서비스 서버에 남을 수 있습니다.

Conclusion

로컬 환경에 있던 소스코드를 서비스 서버에 배포하기 위한 가장 단순한 방법에 대해서 요약하였습니다. 다음장에서는 Docker를 이용한 서비스 배포에 대해 예제와 함께 소개하도록 하겠습니다.

Blog Logo

Taekyung Han


Published

Image

SHEPHEXD

CAN MACHINES THINK LIKE HUMANS?

Back to Overview