290570
Docker & CI/CD - 1 본문
# OT
1) 커리큘럼 명 : Docker 기반 CI/CD 파이프라인 구축하기
2) 기간 : 4주(5주)
3) 특강 날짜 : 3/20, 4/3
# Chapter
1. GitLab 기반 CI/CD 소개 및 학습 환경 구축
2. GitLab 설정, 첫번째 Docker Application 빌드
3. GitLab으로 Python Flask 지속적인 빌드 환경 만들기 -> CI
4. GitLab으로 AWS Cloud로의 지속적인 배포 환경 만들기 -> CD
5. Review
Source > Build > Test > Deploy
CI = Continuous Integration 지속적인 통합 (Source > Build)
CD = Continuous Delivery, Continuous Deployment (Test > Deploy)
Automation 이 핵심 <자동화>
# Continuous Integration
자동 빌드 : 새로운 변경사항이 있을때 자동으로 빌드 수행
자동 테스트 : 빌드 후에 자동으로 테스트가 실행
개발자들이 git 에 변경사항 push -> Build (의존성 설치, 컴파일) -> Test (Unit Test, Test Coverage, 정적/동적 분석) -> Dockerizing(Docker Image 생성)
# Continuous Delivery
자동 테스트 : 배포 전 품질을 보장하기 위한 자동화된 테스트
자동 배포 : 테스트 후 자동으로 목표지점으로 배포
CI 성공적으로 완료하면 패키지 생성됨 -> 패키지 전달 -> 전체 제품 레벨의 Test 실행 -> Test 성공적으로 완료 후 자동 배포
# GitLab
CI/CD 프로세스를 자동화하기 위한 오픈소스 자동화 도구
자동 빌드, 자동 테스트, 자동 배포, 웹 기반 사용자 인터페이스, 자동화 스크립트 제공
시각화 할 수 있는 툴 제공
유사한 다른 툴 : Jenkins, argo, circleci 등
# GitLab 선택 이유
오픈소스, 자체 Git 저장소, 통합된 환경, 다양한 플러그인 제공, 활성화된 커뮤니티, 안전성과 안정성, 자체 호스팅, issue 관리 툴
# Cloud
클라우드를 이용하면 네트워크, 컴퓨터 시스템, 운영체제, 데이터베이스, 스토리지, AI, ML, 모니터링 등을 직접 구축하지 않고, 클라우드로부터 빌려서 사용하여 애플리케이션 개발에 집중 할 수 있음
속도와 유연성이 중요한 스타트업에서 사용, 시장 속도에 대응하기 위해 대기업도 도입 증가