Jenkins란?
Jenkins는 지속적인 통합(Continuous Integration, CI) 및 지속적인 전달(Continuous Delivery, CD)를 지원하는 오픈 소스 자동화 도구입니다. 소프트웨어 개발에서 CI/CD는 개발자들이 애플리케이션의 변경 사항을 빠르게 통합하고, 테스트 및 배포를 자동화하여 품질을 유지하고 소프트웨어를 신속하게 제공하는 데 도움을 줍니다.
Jenkins는 다양한 개발 언어와 프레임워크를 지원하며, 유연하고 확장 가능한 플러그인 아키텍처를 갖추고 있어 다양한 개발 환경에 맞춰 사용자 정의 파이프라인을 구성할 수 있습니다. Jenkins를 사용하면 소스 코드의 변경 사항을 감지하고, 빌드, 테스트, 정적 코드 분석, 패키징, 배포 등의 작업을 자동화할 수 있습니다.
Jenkins는 웹 기반 사용자 인터페이스를 제공하며, 강력한 스케줄링, 알림, 로깅 등의 기능을 제공합니다. 또한, 다양한 플러그인과 통합하여 자동화된 빌드, 테스트, 배포 프로세스를 구성할 수 있습니다.
Jenkins의 핵심 개념 및 용어 정리
지속적인 통합(Continuous Integration, CI)
CI는 여러 개발자들이 동시에 작업한 코드 변경 사항을 정기적으로 통합하는 개발 방법론입니다. Jenkins는 CI를 지원하여, 코드 변경이 발생할 때마다 자동으로 빌드와 테스트를 수행하여 코드의 품질을 확인하고 문제를 조기에 발견합니다.
지속적인 배포(Continuous Deployment, CD)
CD는 빌드와 테스트를 통과한 코드를 자동으로 운영 환경으로 배포하는 개발 방법론입니다. Jenkins는 CD를 지원하여, 빌드가 성공적으로 완료되면 자동으로 배포 작업을 수행하여 소프트웨어의 신속한 배포를 가능하게 합니다.
잡(Job)
Jenkins에서 실행할 작업 단위를 나타냅니다. 잡은 빌드, 테스트, 배포 등의 작업 단위로 정의되며, 특정 조건에 따라 자동으로 실행되도록 설정할 수 있습니다. 보통 소스 코드 관리, 빌드 스크립트, 테스트 명령 등을 구성합니다.
빌드(Build)
소스 코드를 컴파일하고, 테스트하고, 패키징하는 과정을 의미합니다. Jenkins는 다양한 빌드 도구(Maven, Gradle 등)와 통합하여 사용할 수 있습니다.
파이프라인(Pipeline)
Jenkins에서 CI/CD 워크플로우를 정의하는 방법입니다. 파이프라인은 여러 단계와 태스크로 구성되며, 소스 코드 변경부터 배포까지의 흐름을 자동화합니다.
빌드 파이프라인(Build Pipeline)
빌드 파이프라인은 CI/CD 작업을 단계별로 구성한 것을 말합니다. Jenkins는 빌드 파이프라인을 구성하여 소스 코드의 빌드, 테스트, 배포 등의 단계를 자동화하고, 각 단계에서 수행되어야 할 작업을 스크립트로 정의할 수 있습니다.
플러그인(Plugin)
Jenkins의 기능을 확장하고 사용자 정의 작업을 추가하기 위해 사용되는 확장 기능입니다. 플러그인은 다양한 도구, 서비스, 리포지터리와 통합하여 CI/CD 파이프라인을 구성할 수 있습니다.
에이전트(Agent)
Jenkins 에이전트는 Jenkins 서버에서 분리된 머신 또는 컨테이너로, 실제로 빌드나 테스트 작업을 수행하는 역할을 합니다. 에이전트는 Jenkins 서버에 등록되고, 서버와의 통신을 통해 작업을 받아 수행합니다. 에이전트는 독립적인 실행 환경을 갖추고 있으며, 필요한 소프트웨어, 라이브러리, 도구 등을 설치하여 작업을 수행할 수 있습니다. 이를 통해 여러 종류의 에이전트를 구성하여 다양한 환경에서 작업을 실행할 수 있습니다.
'DevOps' 카테고리의 다른 글
AWS Route 53 (+DNS) (0) | 2023.08.12 |
---|---|
EC2란 무엇인가 (0) | 2023.05.27 |
Bastion 서버란 무엇인가 (0) | 2023.05.13 |
Grafana, Loki, Prometheus (0) | 2023.02.19 |