📚요약
지난 시간까지 프로젝트를 마무리했습니다. 이번 시간부터 과정의 이름인 풀 사이클은 어떤 의미이고, 파이프라인이란 무엇을 말하는지, CI/CD는 어떤 것인지, 도커, 쿠버네티스, 젠킨스와 같은 도구들은 어떤 것이고 어떻게 사용하는 것인지에 대한 답을 찾아보겠습니다.
📖웹 개발 파이프 라인 구축
📄배포와 인도 자동화의 중요성
📑전통적인 인도 프로세스
| Development | → | QA | → | Operation |
| Analysis, Planning, Implementation, Unit Testing, Demo | Integration Test, Acceptance Testing, Non-functional analysis | Release, Monitoring |
단점
- 느린 인도 기간
- 느린 피드백 주기
- 자동화 미비
- 핫픽스 위험성
- 개발문화 건전성 제한
위 단점들을 보완하기 위해 각 단계를 자동화시킬 수 있습니다.
📑지속적 인도/배포 박싱
위에서 나온 단계를 자동화시키는 것을 CI/CD라고 부릅니다.
- CI: Continuouse Integration(지속적 통합), 코드의 빌드 및 통합이 잘 이루어지는지를 자동으로 확인한다.
- 빌드
- 테스트
- 코드 병합
- CD : Continuous Delivery(지속적 인도) or Continuouse Deploymenet(지속적 배포)
- 인수 테스트(UAT)를 포함한 전통적인 인도 프로세스에서 진행하던 QA팀의 역할을 포함한다.
- 운영(Operation) 팀의 역할이었던 구성 관리 또한 포함한다.
CD를 구현하기 위한 전제조건
- 자동 빌드, 테스트, 패키징, 배포
- 신속한 파이프라인 실행
- 신속한 장애 복구
- 무중단 배포
- 트렁크 기반 개발
📄웹 개발 파이프라인 구성 도구
- 컨테이너 가상화 및 클러스터 운용 : Docker + Kubernetes
- 소프트웨어 개발 파이프라인 자동화 서버 : Jenkins
- 구성 관리 자동화 : Ansible
- 소프트웨어 버전 관리 : Github
- 그 외 : 빌드 도구, 단위 테스트 프레임워크, 정적 코드 분석기, 인수 테스트 프레임워크 등
📑컨테이너화(Containerization)
응용 프로그램, 설정 파일, 라이브러리와 이들 간의 의존성 관계를 묶어 덩어리로 관리하는 것을 말합니다. 해당 덩어리를 컨테이너라고 합니다.
컨테이너화를 통해 개발 및 배포의 효율과 안정성이 향상됩니다. 시스템 의존성이 최소화되어 소프트웨어 시스템의 이식이 용이해집니다. 이를 활용해 예측 가능하고 유연한 소프트웨어 실행 환경을 제공해 클라우드 컴퓨팅 인프라(AWS, Goolg Azure 등)에서 활용되고 있습니다.
📖컨테이너 가상화와 도커
📄컨테이너 가상화
서버 가상화 기술에는 VM 기반으로 하는 경우와 컨테이너 기반으로 하는 경우가 있습니다.
컨테이너 가상화는 컨테이너를 기반으로 하는 경우입니다. 컨테이너 엔진이 가상의 런타임 환경을 제공해 주고 애플리케이션이 격리된 환경에서 실행됩니다. 하드웨어를 모사한 VM과 다르게 OS를 모사한 컨테이너는 하이퍼바이저를 이용하는 가상화에 비해 가볍고 빠릅니다.
📑가상화
가상화란 컴퓨터 리소스의 추상화를 일컫는 광범위한 용어로 물리적인 컴퓨터 리소스의 특징을 다른 시스템, 응용 프로그램, 최종 사용자들이 리소스와 상호 작용하는 방식으로부터 감추는 기술로 정의할 수 있습니다.
가상화 - 위키백과
더 쉽게 이해하려면 하나의 컴퓨터에서 여러 컴퓨터가 있는 것처럼 사용할 수 있는 VirtualBox를 상상하면 편합니다. 실제로 컴퓨터가 늘어난 것은 아니지만 여러 환경의 컴퓨터를 만들어서 사용해 볼 수 있는 이유가 가상화를 활용했기 때문입니다.
장점
- 시스템
- 이용률 향상
- 설정의 구성과 복원의 용이성
- 비즈니스
- 자본 및 운영 비용 절감
- 다운타임 최소화(제거)
- 비즈니스 연속성 및 재해 복구 향상
- 데이터 센터 관리 간소화
장점들이 있어서 사용하지만 CI/CD에서 가상화를 사용하는 이유는 통일된 환경을 제공해 주기에 자동화에 적용하기 좋기 때문입니다.
기존 가상화와 공통적인 장점은 일관성 있는 런타임 환경과 애플리케이션의 샌드박스화가 있습니다. 컨테이너 가상화는 디스크 용량을 절감하고 낮은 오버헤드를 가지고 있다는 추가적인 장점이 있습니다.
📄도커
도커에 대한 설명은 다음 글에서 진행하겠습니다.
다음 시간에 계속...
출처 & 참고
이시윤 강사님의 강의
'개발 > 프로그래머스 데브코스' 카테고리의 다른 글
| 프로그래머스 데브코스 82일차 with. TS 웹 풀스택 (0) | 2024.07.30 |
|---|---|
| 프로그래머스 데브코스 17주차 회고 with. TS 웹 풀스택 (0) | 2024.07.30 |
| 프로그래머스 데브코스 16주차 회고 with. TS 웹 풀스택 (3) | 2024.07.26 |
| 프로그래머스 데브코스 80일차 with. TS 웹 풀스택 (0) | 2024.07.26 |
| 프로그래머스 데브코스 79일차 with. TS 웹 풀스택 (0) | 2024.07.25 |