Project description. Description
이 프로젝트에서는 Boot-Genie 개발을 위한 고도화된 CI/CD 파이프라인을 설계 및 구현했습니다. Jenkins를 활용하여 지속적 통합(CI)과 지속적 배포(CD) 프로세스를 자동화하였으며, Docker 컨테이너를 사용해 애플리케이션의 일관된 환경을 보장했습니다. 또한, DockerHub Public Repository를 통해 이미지 배포 및 관리를 효율적으로 수행했습니다. 더불어, Grafana를 활용하여 데이터를 시각화하고, 시스템 모니터링을 구축하여 실시간으로 애플리케이션의 성능과 상태를 파악할 수 있도록 했습니다.
Tags Skills
Technologies used in the development of the project.
Jenkins
Github
Docker
Grafana
Prometheus
cAdvisor
Screenshot Screen
Detalhes
Nome: Boot-Genie CI-CD PipeLine
Status: Complete
year: 2024
Preview
DevOps Workflow
DevOps Workflow는 GitHub을 사용한 소스 관리부터 Jenkins를 통한 CI/CD, Terraform으로 인프라 프로비저닝, Docker와 DockerHub를 이용한 컨테이너화 및 배포, 그리고 AWS에서의 실행까지 전체 개발 및 운영 과정을 보여줍니다. 배포된 애플리케이션은 Docker Swarm에서 실행되며, Grafana와 cAdvisor 등의 도구를 사용하여 모니터링됩니다.
Jenkins
이 Jenkins 대시보드는 Boot-Genie-APP-CI와 Boot-Genie-APP-CD 두 개의 파이프라인을 보여주고 있습니다. 이 Jenkins 인스턴스는 Docker 컨테이너로 실행되며 Docker Swarm으로 관리되고 있습니다. CI(Continuous Integration)와 CD(Continuous Delivery) 파이프라인을 위한 Jenkins 설정 코드는 GitHub 리포지토리에 업로드되어 있습니다. 해당 Jenkins 설정 및 파이프라인 코드의 자세한 내용은 GitHub 리포지토리를 확인하시면 됩니다.
DockerHub
Jenkins CI/CD 파이프라인을 구축하여 boot-genie-app 프로젝트의 자동화된 빌드 및 배포 시스템을 구현했습니다. GitHub 저장소와 연동하여 코드 변경 시 자동으로 Docker 이미지를 빌드하고, 버전 태그를 생성하여 Docker Hub에 푸시하는 과정을 자동화했습니다. 이를 통해 개발 효율성을 높이고, 버전 관리를 용이하게 하며, 지속적 통합 및 배포(CI/CD) 프로세스를 성공적으로 구현하여 프로젝트의 안정성과 신뢰성을 향상시켰습니다.
Grafana, Prometheus, Node Exporter
Grafana, Prometheus, Node Exporter를 활용하여 시스템 및 애플리케이션 성능 모니터링 인프라를 구축했습니다. Prometheus를 사용해 시스템 메트릭을 수집하고, Node Exporter를 통해 호스트 레벨의 상세 정보를 획득하여 종합적인 모니터링 데이터를 확보했습니다. Grafana 대시보드를 구성하여 수집된 메트릭을 시각화함으로써, 실시간 시스템 상태 파악과 성능 분석이 가능한 모니터링 환경을 조성했습니다.
Grafana, cAdvisor
Grafana와 cAdvisor를 연동하여 Docker 컨테이너의 상세한 리소스 사용 현황을 실시간으로 모니터링하는 시스템을 구축했습니다. cAdvisor를 활용해 각 컨테이너의 CPU, 메모리, 네트워크, 디스크 I/O 등의 성능 메트릭을 수집하고, 이를 Grafana 대시보드에 통합하여 직관적인 시각화를 구현했습니다. 이를 통해 개별 컨테이너의 성능 추이를 쉽게 파악하고, 잠재적인 문제를 신속히 식별하여 전체 시스템의 안정성과 효율성을 향상시켰습니다.
Grafana, Jenkins
Grafana와 Jenkins를 통합하여 CI/CD 파이프라인의 성능과 상태를 실시간으로 모니터링하는 대시보드를 구축했습니다. Jenkins의 빌드 시간, 성공률, 테스트 결과 등의 중요 메트릭을 Grafana로 시각화하여, 개발 프로세스의 효율성과 품질을 한눈에 파악할 수 있게 했습니다. 이 통합 모니터링 시스템을 통해 CI/CD 파이프라인의 병목 현상을 신속히 식별하고, 개선점을 도출하여 전체적인 개발 및 배포 프로세스의 최적화를 달성했습니다.