프로그래머스 데브코스 웹 풀사이클 18주차 - 1

geun·2024년 3월 10일
0

데브코스

목록 보기
64/79
post-thumbnail

Jenkins

  • 자바로 작성된 오픈소스 자동화 서버
  • 지속적 인도 프로세스를 구척 하는데 널리 사용됨 (장점 : 유연성과 확장성)

CI 단계

  • 일반적으로 개발자가 소스 코드를 커밋,푸시하는 것으로 시작
  • 응용 소프트웨어를 자동으로 빌드, 통합
  • 테스트를 통하여 배포할 수 있는 상태임을 확인

CD 단계

  • CI단계에서 소프트웨어가 배포 가능한 상태임을 확임하는 것으로 시작
  • 응용 소프트웨어를 컨테이너 이미지로 만들어 냄
  • 포드, 디플로이먼트, 서비스 등 다양한 오브젝트 조건에 맞춰 배포

젠킨스의 특징

다양한 프로그래밍 언어 지원

플러그인을 통한 확장

  • 사용자가 직접 플러그인을 작성해 젠킨스의 기능을 확장하는 것도 가능

이식성

  • 여러 종류의 컴퓨터에서 뿐만 아니라 컨테이너 및 클러스터 환경에도 부드럽게 적용

대부분의 소스 관리 시스템 지원

분산 처리 지원

  • 마스터/슬레이브 구조를 채택하여 여러 노드에서 작업 수행

마스터 슬레이브 구조

  • 슬레이브는 에이전트라 부르기도 함
  • 마스터는 빌드 시작 및 트리거를 포착하고 알린 후 클라이언트와 통신하여 HTTP 요청을 처리
  • 에어전트에서 실행중인 작업의 우선순위 조정 등 빌드 환경을 관리
  • 에이전트는 마스터에 의한 개시 후 모든 작업 처리

코드를 파이프라인 구성

  • 프로세스 자동화에 적합

수평적 확장

조직이 늘어날 때 마다 마스터 인스턴스 수를 늘려가는 방식

  • 비교 : 수직적 확장 - 마스터에 대한 부하가 증가함에 따라 마스터 시스템에 자원을 추가하는 방식

통합 자동화가 복잡해진다는 단점이 있으나, 다음과 같은 중요한 이점이있음

  • 마스터 역할을 하는 컴퓨터의 하드웨어 사양에 대한 부담 감소
  • 팀마다 다른 설정 가능
  • 팀 전용 마스터 인스턴스가 있으므로 팀워크, 업무 효율 증가
  • 마스터 인스터스 하나에 문제가 생겨도 다른 팀에 영향 최소화

테스트 인스턴스 vs 프로덕션 인스턴스

젠킨스 인스턴스는 항상 테스트, 프로덕션 용으로 분리 운용해야 함

  • 개발팀보단 운영팀에서 주의를 기울여야 하는 부분

다음과 같은 시스템 설정 변경이 일어날 경우 프로덕션에 적용하기 이전 철저한 검증이 필요

  • 젠킨스 소프트웨어 업데이트
  • 신규 플러그인 적용
  • CI/CD 파이프라인의 변경 및 유지보수

Helm

  • 대표적인 쿠버네티스용 패키지 매니저
  • 오브젝트 배포에 필요한 사양이 이미 정의된 차트를 이용해 패키지 검색 후 설치
  • 공개되어있는 소프트웨어 패키지를 쿠버네티스에 배포하는 것 외에도 배포 효율화를 위해 많이 이용
  • RedHat 계열의 npm, yum나 Debian계열의 apt와 비슷한 방식으로 동작

0개의 댓글