본문 바로가기
ACC Ewha

[ACC 4주차] - CI/CD AWS Code Series

by leko 2024. 5. 5.

CI ? 

continuous integration 지속적 통합

새로운 코드 변경사항이 공유 소스 리포지토리에 자주 통합되는 것

-> 빌드 테드트 자동화 과정

CI 목표?

버그를 신속하게 찾아 해결

소프트웨어 품질 개선

새로운 소프트웨어 업데이트를 검증및 릴리즈하는데 걸리는 시간을 단축 

CI 왜 필요?

과거에는 팀의 개발자가 장기간 격리된 상테로 작업하고 작업이 완료된 후에야 변경사항을 마스터 브랜치에 병합했지만 시간이 많이 걸려서 신속하게 업데이트하기 어려움

CI가 필요한 환경?

1) 다수의 개발자가 형상관리 툴을 공유하여 사용하는 환경 - 기능별로 빌드/테스트/병합을 자동화해 원래 소스코드와 충돌을 방어 

2) msa 환경 (micro service architecture) 환경 : 작은 기능별로 서비스를 잘게 쪼개어 개발하는 형태 

CI 장점? 

개발자 생산성 향상 , 버그를 더 빠르게 발견 및 해결, 업데이트를 더 빠르게 제공

+ 고객의 프로덕션 환경까지 릴리즈

 

 

CD?

continuous delivery & deployment

두가지 모두 파이프라인의 추가 단계를 자동화하는 것이지만 자동화가 얼마나 많이 진행되고 있는지를 나타내기 위해 별도로 사용됨(prodcution update에 대한 수동 승인 존재 여부, 지속적 배포의 경우 명시적 승인 없이 자동으로 prodcution일어남)

CD 목표?

코드 변경사항을 안정적으로 신속하게 고객에게 전달

CD 장점

버그를 더 빠르게 , 개발자 생산성 향상

CD 종류?

jenins, github actions