멘토링 과정에서 젠킨스에 대한 힌트를 얻고 도커강의 간략히 훑으며 도커 설치 후
검색시작
달록은 CI/CD 도구로 Jenkins를 선정하였습니다. 위 사진은 시중에 배포되어있는 여러 CI/CD 도구의 구글 트렌드 분석 결과입니다. 파란색이 Jenkins 인데요, 압도적으로 높은 관심도를 유지하고 있습니다.
아무래도 달록팀 모두가 CI/CD에 익숙하지 않아 가장 사람들이 많이 사용하고, 그에 따라 생태계가 넓고 레퍼런스가 많은 도구를 선정하는 것이 좋다고 판단하였습니다. 레퍼런스가 많아 초기 학습 비용이 적게 들고, 이슈가 발생했을때에도 트러블슈팅이 비교적 쉽다고 생각했습니다.
달록팀은 EC2 인스턴스에 도커를 사용하여 젠킨스 컨테이너를 띄웠습니다. 도커를 사용하지 않고 젠킨스를 우분투에 직접 설치한다면 해주어야할 환경 설정이 가득합니다. 젠킨스를 돌리기 위한 JDK 설치, 젠킨스 설치, 젠킨스 포트 설정, 방화벽 설정 등등...
하지만 도커를 사용하면 이런 환경 설정 없이 간단한 명령어 몇가지로 젠킨스를 설치하고 서버에 띄울 수 있습니다.
도커는 서비스를 운용하는데 필요한 실행환경, 라이브러리, 소프트웨어, 코드 등을 컨테이너라는 단위로 가상화하는 컨테이너 기반 가상화 플랫폼입니다. 도커를 사용하면 EC2 인스턴스에는 미리 도커라이징(Dockerizing)된 이미지를 다운로드 받고 도커를 통해 실행하기만 하면되며, 해당 컨테이너가 어떤 환경을 필요로 하는지 전혀 알 필요가 없습니다.
출처 : https://hudi.blog/install-jenkins-with-docker-on-ec2/
EC2 환경에서 도커를 활용한 젠킨스 설치하기
이 글은 우아한테크코스 4기 달록팀의 기술 블로그에 게시된 글 입니다. 안녕하세요, 우테코 달록팀 후디입니다. 이번 스프린트에서는 저는 배포와 CI/CD와 같이 인프라와 관련된 태스크에 집중
hudi.blog
음 역시 젠킨스로 하는 게 좋을 것 같군!이라는 확신을 얻고
다음 글에서 아래 문장을 읽고 응..? 싶었다.
그건 멍청하게 프리티어 사양의 서버를 사용해서.. 빌드시간이 40분을 넘겼...
출처 : https://crispyblog.kr/development/common/8
Crispy's Blog
crispyblog.kr
나도 프리티어 쓸 건데..?
실전프젝에서야 프리티어아닌 서버 쓸지도 모르겠다만..
뭐지 이거..? 다음주부터 적용해봐야하나..?
CI Tool 로 젠킨스를 택한 것은 예전 모 은행 프로젝트에서 접해 봤던 것이 큽니다.
안정성을 보장 받는 느낌이랄까요? 지원하는 플러그인도 다양합니다.
설정이 다른 CI Tool 보다는 까다롭다고 하는데... 깃허브액션이나 CircleCI 를 사용해보진 않아서 모르겠네요.
출처 : https://crispyblog.kr/development/common/10
Crispy's Blog
crispyblog.kr
위 블로그는 NoSQL인 망고DB로 진행했으므로 그냥 참고만 했다. 우린 아무래도 SQL을 사용할 것 같아서 전체적인 흐름만 훑어봄.
음.. 사실 항해에서 제공해준 강의들의 CI/CD는 하나같이 깃허브액션을 이용한 것이었다.
다만 파이썬기반으로 하는 것이어서 강의를 보고 그대로 따라하는 건 자바로 백작업을 진행하는 우리에겐 다소 에로사항이 있어서 어차피 검색해서 따라 해야했다.
다른 CI가 아닌 젠킨스를 사용했는지에 대한 이유를 찾아보라던 매니저님 말씀이 생각났다.
이전 포스트의 내용까지 완료하였다면, 클릭한번으로 빌드/배포를 하게 되었습니다.
현재 상태만으로도 충분히 편리해졌습니다. 하지만 아직 부족합니다...
완전 자동화를 위해, 깃허브 푸시만으로 끝내보겠습니다.
드디어 긴 여정(?)이 끝이 났습니다.
저는 '개인 블로그' 답게 심플한 CI/CD 를 구현해 보았습니다.여러개의 서비스를 운영중이라면...
젠킨스 잡을 마스터와 슬레이브로 나누고, 도커허브 단계와 쿠버네티스를 도입하여 배포를 할 수 있겠죠.무중단 배포를 원한다면...
로드밸런스를 배치하고, 프로젝트를 '블루-그린' 으로 나누어 순차적으로 배포시키면 됩니다.추가적으로 상황에 맞는 방법을 택하면 될 것 같습니다.
도움이 되셨기를 !
출처 : https://crispyblog.kr/development/common/11
Crispy's Blog
crispyblog.kr
다들 CI/CD를 하셨다고 했고 무중단 배포는 아니었던 것 같은데.. 아닌가? 음 이유가 있는 걸까?
'항해99 > 클론 코딩' 카테고리의 다른 글
SQLException (0) | 2022.11.01 |
---|---|
6주차 WIL (2) | 2022.10.30 |