issues
search
tonykang22
/
study
0
stars
0
forks
source link
[클라우드 기반 컨테이너 운영] CI/CD의 의해
#108
Open
tonykang22
opened
1 year ago
tonykang22
commented
1 year ago
CI/CD의 의해
CI/CD란?
소프트웨어 제공 단계를 자동화하는 방식
목표 : 속도, 정확성 및 생산성을 높여 고객에게 새로운 기능, 향상된 기능 및 수정 사항을 릴리스
Continuous Integration (지속적 통합)
자동화된 빌드 및 테스트가 수행된 후, 코드 변경 사항을 중앙 리포지토리에 정기적으로 병합
자동화 구성 요소(예, CI 또는 빌드 서비스)와 문화적 구성 요소(예, 빈번하게 통합하도록 학습) 모두를 포함
Continuous Delivery (지속적 전달)
프로덕션에 릴리스하기 위한 코드 변경이 자동으로 준비되는 소프트웨어 개발 방식
개발자가 단순한 유닛 테스트 외에도 다양한 테스트를 자동화
(UI 테스트, 로드 테스트, 통합 테스트, API 안정성 테스트 등) : 클라우드에서는 테스트 환경 구성이 용이
빌드 단계 이후의 모든 코드 변경을 테스트 환경 및 프로덕션 환경에 배포함
Continuous Deployment (지속적 배포)
명시적 승인 없이 자동으로 배포가 진행.
Continuous Delivery와 Continuous Deployment의 차이점은 프로덕션에 업데이트에 대한 수동 승인 존재 여부
Continuous Delivery 의 경우 실제 배포는 선택적.
클라우드 벤더사에서 제공하는 도구들
타겟 서비스의 볼륨이나 요구사항에 맞춰서 도구 선택
AWS Code Series
CodeCommit, CodeBuild, CodeDeploy, CodePipeline
CI
개발자가 코드 작성 후 CodeCommit에 코드 push (CodeCommit : git repository)
CodePipeline이 자동으로 트리거 되어 CodeBuild 호출 후
컨테이너 이미지 빌드하고, 테스트 진행하고 ECR에 이미지 저장
보안 프로세스 때문에 자동화가 안된다?
DevSecOps (위와 같은 이유로 나온 개념)
DevOps + Security
소프트웨어 개발 주기의 모든 단계에서 자동으로 보안을 구현
DevOps의 속도를 떨어뜨리지 않으면서 보안을 확보
쉬프트 레프트 (문제를 뒤늦게 발견할 수록 비용이 크기 때문이다.)
보안 위험과 노출을 조기에 파악
보안 위협을 즉시 해결하도록 보장
개발 팀은 효율적인 제품 빌드에 대해 생각함은 물론, 이를 빌드하면서 보안도 함께 구현
초기 설계에서부터 통합, 테스트, 배치 및 소프트웨어 딜리버리를 거치면서 소프트웨어 개발 주기의 모든 단계에서 보안의 통합을 자동화
CI/CD의 의해
CI/CD란?
클라우드 벤더사에서 제공하는 도구들
AWS Code Series
보안 프로세스 때문에 자동화가 안된다?