소프트웨어 빌드?
개발한 소프트웨어를 최종적으로 출시하기 위한 형태(패키지)로 만드는 것 docker image
CI Continuous Integration, CD Continuous Delivery
테스트 test 가 빌드의 중요한 일부로 포함 (unit test, 통합테스트, acceptance test 등) 소프트웨어 안정성에 영향을 미침
개발자가 코드 추가, 커밋 등등을 할 때마다 test하는 과정을 CI라고 한다.
Software Engineering Practice의 하나
기본 원칙
- 코드 repo는 하나만 유지 (Master 혹은 Main)
- 새로운 branch를 두고 작업 후 merge
- 코드 변경을 최대한 자주 반영
- 한번에 merge 하기 보다는 기능별, 이슈별 조금씩 자주 하기
- 테스트를 최대한 추가
- Test Coverage
- 빌드를 계속적으로 수행 (자동화)
- Commit Build vs. Nightly Build
- 성공한 빌드의 프로덕션 릴리스 (자동화)
- CD: Continuous Delivery
코드의 품질을 관리하는 과정 CI, CD
빌드가 실패했다?!
새 코드의 커밋으로 테스트가 실패하는 경우
- 빌드 실패시 다시 성공할 때까지 코드 변경을 금지하도록 함
CI/CD 과정과 DevOps팀의 역할
(개발자가) code commit -> ci -> cd -> 프로덕션 서버에서 서비스
(다양한 종류의) 테스트 수행! (SW를 프로덕션에 배포하기 위한 형태로 패키징) 소프트웨어 배포
데브옵스 팀이 프로세스를 만들고 관리감독
배포자동화 배포후 모니터링 문제 발생시 롤백 등
코드변경이 생길때마다 반영됌
배포 자동화하는데 docker환경이 사용되고 있고
프로덕션 서버 환경을 가 K8s 환경으로 플랫폼이 쓰고 있음
'데브코스 데이터엔지니어링' 카테고리의 다른 글
[ETL] Airflow DAG 이슈 해결 Operator Executor (0) | 2024.11.19 |
---|---|
Git, Github 기본 용어 정리 (0) | 2024.11.18 |
Mac OS에서 node.js 개발환경 구축하기 with VS Code (1) | 2024.11.18 |
맥북(Mac M2) Node.js 설치하기 homebrew (1) | 2024.11.18 |
프로그래머스 문자 반복 출력하기 (1) | 2024.11.14 |