티스토리 뷰

회고

[오늘 하루 회고] 2019-11-12

묵지수 2019. 11. 13. 20:51

🌈 어제 한 일

  • docker를 이용한 개발환경 구축 prototype(reverse proxy + client server + api server + db server)

  • travis를 이용한 CI flow 파악(build - test - deploy)

 

🌈 할 일

  • travis CI와 docker hub에 docker image 배포를 통한 CI/CD flow prototyping

    • travis로 코드 test

    • travis로 docker hub에 image push

  • docker와 travis에 대한 기술 공유 글 작성하기

 

⚡️ 우리 프로젝트에 적용할 효율적인 CI/CD 전략에 관한 고민 (1) - 전반적인 흐름

  • 한눈에 알아 볼 수 있도록 흐름을 그림으로 그려보자!

  1. 개발자가 github repository에 자신이 작성한 코드에 대한 pull request를 보냄

  2. github에서 Travis CI server로 코드를 전송(Continuous Integration)

    • 작성되어있는 .travis.yml 파일의 내용으로 build와 test를 진행

  3. 테스트가 성공적으로 수행되면 docker hub에 변경된 내용을 기반으로 다시 만들어진 docker image를 push

  4. image를 push 한 후, 실제 가동 중인 서버에 배포(ssh 접속)

 

⚡️ 우리 프로젝트에 적용할 효율적인 CI/CD에 관한 고민 (2) - 우리 프로젝트에서 반영되어야 할 것

  • 일반적인 프로젝트와는 달리 우리 팀은 하나의 repository에서 최소 6개의 서비스가 관리될 예정임.

  • CI 작업을 진행 한 후 변경사항이 일어난 서비스만 docker hub에 이미지를 다시 빌드하고 해당 서버에만 배포를 하면 쓸모 없는 작업을 줄이므로 시간 단축이 가능할 것 같음.

  • 변경사항이 일어난 서비스에 한해서만 build를 진행하는 script를 따로 작성하여 배포를 진행하여야 하는지?(방법이 가늠이 안간다)

  • 자료조사!

 

⚡️ 우리 프로젝트에 적용할 효율적인 CI/CD에 관한 고민 (3) - travis 환경변수 이용

  • PR을 날린 브랜치를 검사하여 특정 브랜치에 해당하는 디렉토리의 dockerfile만 배포할 수 있지 않을까?

  • travis에서 제공하는 환경변수 목록을 보고 제공하는지 확인해봄

  • 직접적으로 제공하는 것은 없는 것 같고 조작해서 사용할 수 는 있음 => 링크

  • travis의 내부 동작을 알면 더 잘 이해할 수 있을 것으로 생각.

  • 일단 프로토타입을 완성해보고 공부하자!

 

⚡ Dockerhub에서 image 관리

  • DockerHub에 image 배포하는 명령어

# dockerfile이 있는 디렉토리로 일단 이동
docker build --tag {계정이름}/{이미지이름}:{태그} .
docker push {계정이름}/{이미지이름}:{태그}
  • travis CI를 진행하면서 ssh요청으로 물리 서버에 docker container 재빌드(배포)를 실행하도록 할 수 있음

  • 하지만 travis CI는 우리가 운영하는 서버가 아닌 서드파티 서비스임. 즉, 보안상 좋지 않다.

  • 그렇다면 기존에 존재하는 서비스를 이용하거나 배포를 담당하는 서버를 만들면 해결 가능.

 

⚡️ CD(Continuous Deployment) 작업에서 travis에서 ssh로 서버에 직접 접속하는 것에 대한 문제

  • 이미 많은 자료가 있다! 일단 돌아가게 한 뒤 최적화하는 방식으로 해보자.

 

⚡ [ 심화 ] Docker image 크기 줄이기

  • 이미 많은 자료가 있다! 일단 돌아가게 한 뒤 최적화하는 방식으로 해보자.

 

⚡️ CD(Continuous Deployment) 작업에서 travis에서 ssh로 서버에 직접 접속하는 것에 대한 문제

  • travis CI를 진행하면서 ssh요청으로 물리 서버에 docker container 재빌드(배포)를 실행하도록 할 수 있음

  • 하지만 travis CI는 우리가 운영하는 서버가 아닌 서드파티 서비스임. 즉, 보안상 좋지 않다.

  • 그렇다면 기존에 존재하는 서비스를 이용하거나 배포를 담당하는 서버를 만들면 해결 가능.

'회고' 카테고리의 다른 글

[2019.12.31] 1년 회고  (5) 2019.12.31
[오늘 하루 회고] 2019-11-11  (0) 2019.11.12
[TIL] 19.09.04  (0) 2019.09.05
[TIL] 19.08.28  (2) 2019.08.29
[TIL] 19.08.25  (0) 2019.08.26
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함