일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- CVE
- AWS
- 네트워크
- 트랜잭션
- 보안이슈
- 프로토콜
- 보안
- tcp
- 클라우드
- 러시아
- 네관사2급
- 개발자
- 오답노트
- 스프링부트
- SSO
- security
- db
- Cloud
- 네트워크관리사
- Java
- Linux
- 오늘의 오답노트
- 리눅스 마스터
- 리마2급2차
- 제로 트러스트
- 스프링
- 리눅스
- 깃허브
- 악성코드
- 기업간의 협업 중요성
Archives
- Today
- Total
일단 진행시켜
CI와 CD는 왜 분리되어야 하는 가? 본문
1. Why CI and CD Need to Go Their Separate Ways
https://thenewstack.io/why-ci-and-cd-need-to-go-their-separate-ways/
[ 요약 ]
1. CI / CD의 진화
- CI/CD는 소프트웨어 개발에 필수적이며, 애플리케이션 배포 속도와 안정성을 위해 설계되었다.
- 초기에는 코드 빌드 → 테스트 → 배포의 순서로 작동했다. 따라서, 배포 환경이 비교적 정적인 기존 가상 머신이나 물리적 서버에서 잘 작동했다.
- 그러나 컨테이너(ex. 도커), 쿠버네티스의 등장으로 변화가 생겼다. 쿠버네티스는 동적이고 비동기적인 배포 메커니즘을 제공하여 기존 CI/CD 프로세스의 동기적 특성과 충돌을 일으키게 되었다.
- 전통적인 CI/CD 방식이 쿠버네티스의 유연한 배포 환경과 잘 맞지 않게 되었다. 이러한 불일치를 해결하기 위해 GitOps가 도입되었지만, 다양한 환경에서의 배포 관리가 비효율적이고 복잡하여 또 다른 방안을 찾는 것이 필요했다.
2. 쿠버네티스와 GitOps의 도입 이후
- 쿠버네티스와 기존 CI/CD 프로세스의 동기적/비동기적 특성의 충돌로 인한 단절이 가장 큰 문제다.
- GitOps는 최종 배포 상태에만 집중하므로, 복잡한 다중 환경 *오케스트레이션(여러 IT 자동화 태스크 또는 프로세스를 조정하여 실행하는 것)을 처리할 수 없다.
3. 그래서 어떻게? ➡️ Continuous Promotion
- CI와 CD 사이의 간극을 메우기 위해 고안된 개념
- 특히 쿠버네티스와 GitOps와 같은 최신 기술을 사용하는 경우 전통적인 CI/CD 파이프라인의 한계를 해결한다
- 사전에 정의된 규칙과 조건에 따라 아티팩트를 프로모션 하는 중가 단계를 추가한다
- 더 세밀한 배포 프로세스 제어, CI와 CD 역할 분리 → 전체 프로세스의 신뢰성과 효율성을 높임
- ex. Kargo
결론
CI와 CD가 분리되어야 하는 이유는 아래와 같다.
CI는 코드 변경을 자주 통합하여 문제를 빨리 발견하는 데 중점을 두는 반면에, CD는 코드 변경을 프로덕션에 배포하는 과정에 중점을 둔다.
이 둘의 요구사항과 복잡성은 점점 달라지고 있고, 각각의 기능을 최적화하기 위해 CI와 CD를 분리할 필요성이 커지고 있음을 강조한다.
➕
CI(Continuous Integration) & CD(Continuous Delivery)?
- 지속적인 통합과 지속적인 전달
- 코드 변경 사항을 자동으로 테스트하고 배포하여 개발 속도를 높이고 품질을 유지하는 프로세스
컨테이너: 애플리케이션과 그 종속성을 격리해 일관된 환경에서 실행할 수 있도록 함쿠버네티스: 컨테이너화된 애플리케이션을 자동으로 배포, 확장, 관리하는 플랫폼으로 복잡한 인프라를 효율적으로 운영할 수 있게 도와줌
🤔 이에 대한 나의 생각
기술이 점점 발전하고 있음을 느낀다. 특히 CI/CD와 관련된 새로운 접근 방식, Continuous Promotion과 같은 개념은 현대의 복잡한 배포 환경에서 더 나은 자동화와 효율성에 도움을 준다.
Kargo와 같은 도구를 통해 우리는 더욱 정교하고 신뢰성 있는 배포 프로세스를 구축할 수 있게 되었고, 이는 기술이 계속해서 진화하고 있다는 확실한 증거라고 생각한다.
'🗞️ 보안 동향 파악 및 나의 생각 정리' 카테고리의 다른 글
BOM, DevSecOps: 소프트웨어 공급망 보안의 중요성 (0) | 2024.09.05 |
---|---|
나쁜 리팩토링은 나쁘다. 리팩토링은 좋다. (0) | 2024.09.04 |
Linux: SSH 및 Key-Based 인증 (0) | 2024.09.02 |
리눅스 xz 결함: 기술적 문제가 아닌 윤리적 문제 (0) | 2024.08.30 |
Java 동시성: 가시성 및 동기화 (0) | 2024.08.29 |