본문 바로가기
DevOps/CI_CD

[CI/CD] CI/CD 구현하기 젠킨스(JenKins)/도커(docker)/Node.js/Ubunto (1)

by 개발이 체질인 나그네 2022. 4. 11.
반응형

CI/CD 란?

CI : Continuous Integration(지속적 통합)

CD : Continuous Deployment/Delivery(지속적 베포)

 

둘은 서로 다른 개념이지만, 서로 같이 구현하기 때문에 , CI/CD라고 불립니다.

개발자들이 코드를 통해 백엔드/프론트엔드를 구현한 후, 최종적으로 배포라는 과정을 하게 됩니다.

최종적 배포 과정에서 CI/CD를 적용하게됩니다.

배포의 과정에서 CI/CD를 적용함에 득이 되는 부분은 바로 자동화 입니다.

 

과거 배포 방식은

팀을 이룬 개발자들이 각 분야를 담당하며 코드를 짜고, GitHub같은 저장고에 merge를 하고, 헤더급 개발자가, 합쳐지는 과정에서, 애러는 안나는지, 코드 끼리 서로 연결은 잘됬는지, 확인 후 에 확장자파일(.jar 도는 .war)파일로 만든 후 

서버에 배포하는 방식이였습니다.

 

개발 -> 코드 푸쉬 -> 검토 -> 압축 -> 배포

만약 프로젝트 단위가 거대해지고, 분야도 다양해지고, 코드의 양도 많아진다면, 이걸 관리하고 확인하고 하는 과정에 시간과 인적자원이 많이 사용이 됩니다. 특히, 이런 과정에서 잘못된 부분을 놓친 후, 배포를 하게 되면, 어디에서 애러가 발생했는지 확인이 힘들어질수도 있습니다.

 

또 다른 문제는, 확장자 배포 방식입니다. 거대한 양의 코드를 확장자로 베포한 후, 지속적인 업데이트가 진행되면서, 기존의 확장자를 다시 새로운 확장자로 만들고, 기존에 배포된 코드를 없애로 새로 업로드하고, 굉장히 비효율적인 방식이였습니다.

 

이런 비효율적인 작업을 자동화 시키기 위해 나타난게 CI/CD 라는 배포방식입니다.

 

지속적 베포,지속적 통합,

기존의 베포 방식은 수작업이 많이 들어갔지만,

이 두 부분을 자동화 시킴으로써 전반적 과정을 줄여주는 CI/CD구축 툴이 있습니다.

 

저는 이번 실습을 통해 젠킨스(JenKins)라는 툴을 이용해 보겠습니다.

 

 

 

⚙ 서버 - 우분투 ubuntu

 

⚙ 아키텍처 구축 - 도커 docker

 

⚙ 파이프라인 - 젠킨스 JenKins

 

 

 백엔드 - Node.js express

 

 

⚙ DB - MariaDB(mysql)

 

 

 

이번에 실습을 통해 구현해볼 아키텍처의 DevOps 입니다.

 

CI/CD가 가지고 있는 장점을 실제로 구현하여, 제가 가진 서비스에 적용 시켜볼 예정입니다.

 

 

반응형

댓글