read
배포 프로세스는 개발 환경 혹은 로컬 환경에서 개발을 진행한 후, 테스트 결과에 이상이 없으면 서비스 서버에 코드에 반영하는 일련의 과정을 의미합니다.
여기서 중요한 문제는 “로컬에서 개발한 소스코드를 각 서버에 어떻게 적용시킬까?” 입니다
위의 문제를 해결하기 위하여 가장 단순하게 서비스를 배포하던 경험부터 시작하여 적용한 다양한 배포 방식을 글로 정리하려고 합니다.
- Git 없이 서비스 배포
- Git과 함께 서비스 배포
- Docker + Git을 이용한 서비스 배포
- docker-compose를 이용한 서비스 배포
- 클라우드 환경에서의 서비스 배포
- docker-compose + Jenkins + Git을 이용한 서비스 배포
- Kubernetes를 이용한 서비스 배포 (준비 중)
Git 없이 서비스 배포
로컬 개발 환경에 있던 소스코드를 서비스 서버에 적용시키기 위한 가장 단순한 방법은 Ctrl + C
와 Ctrl + V
입니다. 단순하게 로컬 개발 환경과 같은 디렉토리에 해당 소스코드를 옮겨놓기만 하면 배포가 완료됩니다.
배포 방법
- 로컬 환경에서 sFTP 등을 이용하여 파일을 서비스 서버에 업로드한다.
- 서비스 서버에 ssh로 접속한다.
- 해당 소스코드를 실행시킨다.
문제점
- 서비스 서버에 적용된 소스코드의 버전과 히스토리 관리가 어렵다.
- 로컬 환경과 서비스 환경의 차이에 따라 코드가 동작하지 않을 수도 있다.
- 소스코드를 실행시키는 방법이 다양할 수 있다.
Git을 이용한 서비스 배포
Git을 이용한다면 로컬 환경에서 sFTP등을 이용하여 파일을 전송하는 대신 서버에서 Remote Repository로부터 소스코드를 pull하여 서비스 서버에서 실행시킵니다.
배포 방법
- 로컬 환경에서 remote repository에 소스코드를 push합니다.
- 서비스 서버에 ssh로 접속한다.
- 서비스 서버에서 remote repository 소스코드를 pull합니다.
- 해당 소스코드를 실행시킨다.
문제점
- 로컬 환경과 서비스 환경의 차이에 따라 코드가 동작하지 않을 수도 있다.
- 소스코드를 실행시키는 방법이 다양할 수 있다.
- 서비스 서버에 소스코드의 git history 정보가 남을 수 있다.
git을 이용하여 배포하면 서비스 서버에 적용된 해당 소스코드의 버전을 확인하여 히스토리 관리가 가능해지지만, 소스코드의 전체 이력이 서비스 서버에 남을 수 있습니다.
Conclusion
로컬 환경에 있던 소스코드를 서비스 서버에 배포하기 위한 가장 단순한 방법에 대해서 요약하였습니다. 다음장에서는 Docker를 이용한 서비스 배포에 대해 예제와 함께 소개하도록 하겠습니다.
Image