본문 바로가기
728x90

DevOps/CI.CD7

Jenkins pipeline 소개 및 Java 애플리케이션 CI/CD pipeline 작성 Jenkins pipeline은 CI / CD 파이프라인을 구현하고 Jenkins에 통합하는 것을 지원하는 플러그인 모음이다. Jenkins Pipeline은 Pipeline 도메인별 언어 (DSL)을 통해 간단한 파이프라인부터 복잡한 파이프라인을 코드로 모델링할 수 있는 확장 가능한 도구들을 제공한다. 즉, Jenkins pipeline에서 제공하는 DSL을 활용하여 애플리케이션 CI/CD 파이프라인을 포함한 여러가지 자동화 파이프라인 기능을 구현할 수 있다. Jenkins Pipeline의 정의 부분은 jenkinsfile 이라고 불리는 텍스트 파일에 작성된다. 이 파일은 Git과 같은 소스코드 레포지토리에서 관리할 수도 있다. Jenkinsfile은 pipeline as code의 기초로써, 파이프.. 2024. 2. 4.
Jenkins 소개 및 Kubernetes에 설치 Jenkins Jenkins는 소프트웨어 빌드, 테스트 및 배포와 관련된 모든 종류의 작업을 자동화 하는 데 사용하는 독립형 오픈소스 자동화 서버이다. 보통은 Jenkins를 CI / CD 도구로 잘 알려져 있으며, 회사와 같이 여러 조직에서 사용하기 좋다. 2023.11.04 - [DevOps/CI.CD] - CI / CD란 무엇일까? CI / CD란 무엇일까? CI / CD 개발자가 애플리케이션을 개발하고나면 애플리케이션을 실제 서버로 배포해야 한다. 보통 배포를 할 때는 애플리케이션을 빌드하고, 작성한 테스트코드를 돌려서 테스트를 진행한 후 모 beer1.tistory.com Jenkins 기능 Jenkins의 기능은 여러가지가 있다. Jenkins Job을 사용하여 스크립트 실행 Jenkins J.. 2023. 11. 7.
CI / CD란 무엇일까? CI / CD 개발자가 애플리케이션을 개발하고나면 애플리케이션을 실제 서버로 배포해야 한다. 보통 배포를 할 때는 애플리케이션을 빌드하고, 작성한 테스트코드를 돌려서 테스트를 진행한 후 모든 테스트가 통과되면 빌드 결과물을 패키징한 후 실제 서버로 배포를 하게 된다. Java 애플리케이션의 경우, 먼저 빌드를 해서 외부 의존성 라이브러리를 설치하고, 코드를 자바 클래스파일로 컴파일한다. 그리고 테스트 과정에는 애플리케이션 유닛 테스트를 마친 후 패키지 단계에서는 .jar 파일이나 .war 파일으로 패키징하거나 컨테이너로 배포하는 경우 컨테이너 이미지를 빌드한다. 그 다음 실제 서버로 배포를 하게 된다. 그런데 이러한 일련의 과정들을 새로운 기능을 추가할 때마다 해야하므로 애플리케이션 배포를 하는 것이 여.. 2023. 11. 4.
ArgoCD 아키텍처 이해하기 및 여러가지 옵션 ArgoCD는 쿠버네티스 환경에서의 GitOps 기반의 CD(Continuously Delivery) 도구이다. 주요 역할은 Git에 저장된 매니페스트를 쿠버네티스 클러스터로 동기화한다. ArgoCD는 이러한 동기화 기능을 마이크로서비스 형태로 제공하고 있으며 ArgoCD를 구성하는 컴포넌트들이 여러가지가 있다. 이번 장에서는 각각의 컴포넌트가 어떤 기능을 담당하는지, ArgoCD가 전반적으로 어떻게 돌아가는지에 대해 알아보자. Architecture ArgoCD application ArgoCD Application은 매니페스트가 저장된 Git 또는 Helm 차트와 동기화시킬 쿠버네티스 클러스터 정보를 저장하는 ArgoCD만의 CR(Custom Resource)이다. Application에는 크게 so.. 2023. 10. 14.
ArgoCD를 사용하여 Helm chart 배포하기 이전 시간에는 ArgoCD에서 Git Repository에 있는 매니페스트 파일을 사용하여 쿠버네티스로 배포하는 방법에 대해서 알아보았다. 이번 시간에는 ArgoCD에서 매니페스트 파일이 아닌 Helm chart를 배포하는 방법에 대하여 알아보자. Prerequisites Helm chart, Helm repository에 대해 잘 모른다면 아래 포스팅을 참고하자. 2023.09.17 - [DevOps/Kubernetes] - Helm Chart 소개 Helm Chart 소개 Helm 보통 쿠버네티스에서 리소스 관리는 yaml 파일로 저장하여 관리한다. 그리고 하나의 애플리케이션을 쿠버네티스 환경으로 배포할 때는 Deployment와 같은 워크로드를 생성하는 것이 전부가 아 beer1.tistory.co.. 2023. 10. 13.
ArgoCD 소개와 설치 ArgoCD는 쿠버네티스에서 구동되는 대표적인 GitOps 기반의 CD(Continuous delivery) 도구이다. (GitOps에 대한 설명은 아래 포스트에서 정리를 했는데 개념이 생소하다면 참고자료로 봐주시면 감사하겠습니다.) GitOps란 무엇인가? GitOps는 Weaveworks에서 처음으로 정의한 용어이며, Git을 활용하여 쿠버네티스 기반의 클라우드 네이티브 환경에서 소프트웨어 애플리케이션 배포하고 인프라를 관리하는 방식이다. GitOps의 관리 beer1.tistory.com ArgoCD의 기능은 GitOps의 핵심 원칙 중 승인된 변경사항은 자동으로 시스템에 반영을 제공한다고 보면 된다. ArgoCD는 특정 Git 레포지토리에 저장된 매니페스트 파일들을 주기적으로 확인한 후, 변경사항.. 2023. 9. 3.
GitOps란 무엇인가? GitOps는 Weaveworks에서 처음으로 정의한 용어이며, Git을 활용하여 쿠버네티스 기반의 클라우드 네이티브 환경에서 소프트웨어 애플리케이션 배포하고 인프라를 관리하는 방식이다. GitOps의 관리 방식과, 이점 및 실제로 어떤 방식으로 GitOps를 구성하는지에 대해 알아보자. GitOps는 애플리케이션 코드부터 시작해서 인프라, 네트워킹, CI/CD 파이프라인 등 전체적인 애플리케이션 생태계에 대한 구성들을 모두 Git에 저장하여 관리하는 방식이다. 애플리케이션 코드야 보통 Git으로 관리하지만, 인프라 환경과 네트워킹, CI/CD 파이프라인의 구성 등을 어떻게 Git으로 관리할까? 이런 구성들을 모두 Git으로 관리할 수 있는 이유는 쿠버네티스 때문이다. 쿠버네티스는 yaml 파일으로 작성.. 2023. 9. 3.
728x90