기록

DevOps/CICD 본문

DevOps

DevOps/CICD

youngyin 2023. 7. 17. 10:00

시작하면서

이전에 DevOps 교육을 들으면서, CICD 도구를 활용을 배웠다. 기존에는 CICD를 이론으로만 알고 있어서, 그게 왜 필요하고 도대체 어디에 써야 하는건지 이해하지 못했었는데, 교육을 들으면서 나름대로 CICD를 이렇게 쓰면 되겠구나~라고 생각을 정리하게 되었다. 그래서 배운걸 정리할 겸 이게 어떤 의미가 있고, 어떻게 활용할 수 있을지 적기 시작했다.

몇년 전에 해커톤에서 직접 서버를 구성하고 배포를 했었던 경험이 있다. 다음과 같은 프로세스를 통해 배포를 진행했다.

  1. 개발자가 수정한 소스 코드를 commit한다.
  2. 개발자가 가상서버에 접속하여 백업파일을 만든다.
  3. 개발자가 가상 서버에서 기존에 실행되고 있는 프로젝트를 중지시킨다.
  4. 개발자가 가상 서버에 접속하여 깃에 있는 프로젝트를 내려받는다.
  5. 개발자가 가상 서버에서 node 명령어로 프로젝트를 실행한다.
  • 참고 : 기존프로젝트 구조

저 프로젝트를 하면서 매번 가상서버에 접속해서, 서버를 재시작하는게 매우 귀찮았었다.... 저 프로젝트는 nodeJS라 그나마 배포 과정이 수월했지만, 스프링을 썼었다면 프로젝트를 빌드하여 WAR파일을 만들고, 가상서버로 WAR 파일을 가지고 와서 압축을 해제하고 실행하는.. 긴 과정이 되었을 것이다.

CI/CD 도구

CI/CD 도구는 소프트웨어 개발 프로세스를 자동화하고 지속적인 통합, 배포를 가능하게 해주는 도구입니다. 대표적인 CI/CD 도구로는 Jenkins, GitLab CI/CD, CircleCI, Travis CI, Bamboo, Azure DevOps 등이 있습니다. 이 도구들은 빌드, 테스트, 배포 등의 작업을 자동화하고 개발자와 운영팀 간의 협업을 강화하여 소프트웨어 개발과 배포를 효율적으로 관리합니다.
- CHAT CPT 답변

CI/CD 도구를 사용하면 배포 자동화를 할 수 있는데, 배포과정의 번거로움을 줄일 수 있다는 장점이외에도 소스코드가 변경될때마다 빠른 주기로 배포가 가능하다는 장점이 있다.

젠킨스

Jenkins는 오픈 소스 CI/CD 도구중 하나이다. 교육에서 Jenkins의 활용 방법을 배우기도 했고, 무료 오픈소스라는 점에서 해당 도구를 활용해보고자 한다.

젠킨스를 사용하여 배포 자동화가 된다면, 다음과 같은 배포 시나리오를 예상할 수 있다.

  1. 개발자가 수정한 소스 코드를 commit한다.
  2. 특정 시점에 젠킨스가 최신 프로젝트를 가져와 빌드한다.
  3. 빌드에 성공하면 젠킨스가 가상서버에 프로젝트를 배포한다. 
  • 젠킨스 공식 사이트
 

Jenkins

Easy installation Jenkins is a self-contained Java-based program, ready to run out-of-the-box, with packages for Windows, Linux, macOS and other Unix-like operating systems.

www.jenkins.io

마무리하면서

다음번 포스팅에서는 젠킨스에 깃과 가상서버를 연결하여 배포 자동화를 만들어 보려고 한다.

 
Comments