2022 07 07
2022-07-07
젠킨스
- 젠킨스
- 자바 런타임 위에서 동작하는 자동화 서버
- 빌드, 테스트, 배포 등 자동화
- 이점
- 프로젝트 표준 컴파일 환경에서의 컴파일 오류 검출
- 자동화 테스트 수행
- 정적 코드 분석에 의한 코딩 규약 준수여부 체크
- 프로파일링 툴을 이용한 소스 변경에 따른 성능 변화 감시
- 결합 테스트 환경에 대한 배포작
- 주요 플러그인
- Credentials Plugin : 각종 리소스에 접근하기 위해 중요 정보 저장
- Pipeline Plugin
- Docker Plugin
- Pipeline 구성하는 요소
- 파이프라인이란 CI/CD 파이프라인을 젠킨스에 구현하기 위한 일련의 플러그인들의 집합이자 구성
- 여러 플러그인들을 파이프라인에서 용도에 맞게 사용하고 정의함으로써 파이프라인을 통한 서비스 배포
- Pipeline syntax
- Declarative Pipeline => 더 가독성 좋은 문법
- Scripted Pipeline
- Pipeline Syntax
- Sections
- Agent Section
- 젠킨스는 많은 일들을 해야하기 때문에 혼자하기 버거움
- 여러 slave node를 두고 일을 시킬 수 있는데, 이처럼 어떤 젠킨스가 일을 하게 할 것인지 지정
- 젠킨스 노드 관리에서 새로 노드 띄우거나 docker 이미지 등을 통해 처리 가능
- Post Section
- 스테이지가 끝난 이후의 결과에 따라 후속 조치를 취할 수 있음
- Stages Section
- 어떤 일들을 처리할 건지 일련의 stage 정의
- Steps Section
- 한 스테이지 안에서의 단계로 일련의 스텝 보여줌
- 여러 배포 환경의 관리
- 인프라를 모듈화하여 어떤것이 변수인지 잘 설정하고 이를 잘 설계하는 것
- APP_ENV => 현재 배포하고자 하는것이 무슨 환경인지 설정하고 앱 내에서 사용하는 다양한 변수들을 APP_ENV에 맞게 잘 가져다 쓸 것
- aws의 parameter store 키 관리 서비스 쓸 것
- ECR & ECS
- ECR
- ECS
- 도커 컨테이너 기반으로 서비스 운영 가능케 함
- 롤링 업데이트, 스케일업, 로드 밸런싱 싹다 알아서 해줌