운영 및 성능 최적화: 도구와 전략 – CI/CD Pipelines

ㅁ 도구와 전략

ㅇ 정의:
소프트웨어 개발에서 코드의 통합(Continuous Integration)과 배포(Continuous Deployment/Delivery)를 자동화하는 프로세스와 도구의 조합.

ㅇ 특징:
– 코드 변경이 발생하면 자동으로 빌드, 테스트, 배포가 이루어짐
– Jenkins, GitLab CI, GitHub Actions, CircleCI 등 다양한 플랫폼 활용 가능
– 파이프라인 단계별로 품질 게이트(Quality Gate) 설정 가능
– 반복 가능하고 일관된 배포 환경 제공

ㅇ 적합한 경우:
– 빈번한 코드 변경과 빠른 배포가 필요한 애자일/데브옵스 환경
– 여러 개발자가 동시에 작업하는 대규모 프로젝트
– 테스트 자동화와 품질 보증이 중요한 서비스

ㅇ 시험 함정:
– CI와 CD의 차이를 혼동: CI는 통합, CD는 배포 자동화임
– Continuous Delivery와 Continuous Deployment의 차이: Delivery는 프로덕션 배포 전까지 자동화, Deployment는 프로덕션까지 자동화
– 단순히 버전 관리만 하면 CI/CD라고 오해

ㅇ 시험 대비 “패턴 보기” 예시:
O: “코드 변경 시 자동으로 빌드와 테스트가 수행되는 환경을 구축하는 것은 CI의 목적이다.”
X: “CI/CD는 수동 배포를 전제로 하며, 자동화는 선택 사항이다.”

ㅁ 추가 학습 내용

CI/CD 파이프라인 학습 시 각 단계별 주요 내용 정리

1. 각 단계와 대표 도구
– 빌드 단계: Maven, Gradle, npm 등
– 테스트 단계: JUnit, pytest, Selenium 등
– 배포 단계: Kubernetes, Docker, Ansible 등
– 스크립트 언어: Jenkinsfile(Groovy 기반), GitHub Actions YAML

2. CI와 CD의 정의 차이
– CI(Continuous Integration): 코드 변경 사항을 지속적으로 통합하고 자동 빌드 및 테스트 수행
– CD(Continuous Delivery / Continuous Deployment):
Continuous Delivery는 배포 가능한 상태까지 자동화, 실제 배포는 수동 승인
Continuous Deployment는 배포까지 전 과정이 자동화되어 운영 환경에 즉시 반영

3. 파이프라인 실패 시 롤백 전략
– Blue-Green 배포: 두 개의 동일한 환경(Blue, Green)을 운영, 전환 방식으로 롤백 가능
– Canary 배포: 일부 사용자에게만 새 버전을 배포하여 문제 발생 시 영향 최소화 후 롤백

4. 보안 스캔 및 품질 측정 통합
– SAST(Static Application Security Testing): 정적 코드 분석을 통한 보안 취약점 탐지
– DAST(Dynamic Application Security Testing): 실행 중인 애플리케이션의 보안 취약점 탐지
– 품질 측정 도구: SonarQube 등 코드 품질 및 유지보수성 평가

5. DevSecOps 개념
– DevOps 프로세스에 보안(Security)을 통합하여 개발, 운영, 보안을 동시에 고려하는 접근 방식

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*