저희 회사 서비스는 마이크로 서비스 아키텍쳐를 선택하여 사용하고 있습니다.
https://programmerk.tistory.com/44
이 아키텍쳐의 설계상 백엔드는 기능별로 서비스가 쪼개져 있습니다.
정상적으로 동작하기 위해서 6~7개 프로젝트를 build 하고 동작시켜야합니다.
( 각각의 프로젝트가 각각의 기능을 담당하기때문에... )
아래 예시 )
그리고 이 서비스들은 현재 사정이 있어 .. 클라우드 서버를 사용하는게 아니라 각 지점 ( 체인점 ) 에서 직접 올려 사용하고 있습니다. ( 다음 개발단계에서 클라우드로 변경할 계획 )
각 지점마다 서비스를 올려서 사용하기 때문에 도커라는 프로그램을 사용하여 빌드& 배포 & 운영을 선택하고 있습니다.
도커를 사용하였을때 장점은 어떤 OS를 가진 PC든 상관없이 도커만 설치되어 잇다면 우리가 개발해서 배포해놓은 도커이미지를 가져다가 바로 서비스를 사용 할 수 있는 점입니다.
그런데 도커를 사용하여 6~7개 서비스를 사용하려고 했는데 변경이나 수정사항이 있는경우 각 지점마다 일일이 command를 입력하여 사용하는 것은 굉장한 노가다였습니다. 손도 꼬일수 있고 ..
그래서 이걸 해결할 수 있는 방법이 없을까 생각하다가 bat 파일로 만들어야하나 싶었는데 ...
그러다가 docker-compose에 대해서 알게되었습니다. 처음에는 쿠버네티스 관련된 자료를 찾아봣는데 잘 이해를 못하겟더라고요 ㅋㅋㅋㅋ 그다음 알게된 docker-compose를 통해 한번에 서비스를 실행하고 관리하는 방법을 알게 되었습니다.
docker-compose란 쉽게 말해서 개발자가 하나하나 관리하던 도커를 하나로 모아서 관리& 빌드 & 실행 & 구성등을 할 수 있는 파일 입니다 .
yaml 형식으로 작성한 이파일을 실행해주면 그안에 정의된 각각의 도커 실행 명령들이 실행되도록 되어있습니다.
이제 이 파일을 git에 올려놓고
개발하다가 수정사항이 있는경우 image를 push 하고
체인점 데스크탑으로 원격으로 들어가 git pull을 하여 docker-compose.yml 를 가져온 후
docker-compose up -d 만 실행해주면 수정된 사항이 반영됩니다.
물론 이과정도 매우 번거럽지만.. 지금은 더 좋은 방법이 생각나지 않네요..
추후에 cloud로 올리면 jenkins 같은거 사용해서 더 쉽게 관리 배포 할수있도록 해야겠습니다.