[쿠버네티스 어나더 클래스 (지상편) - Sprint 2] 09. DevOps 한 방 정리 (강의를 보고)Tech/Kubernetes(K8s)2025. 6. 9. 11:44
Table of Contents
* 본 게시물은쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2강의와 강의 자료를 바탕으로 작성되었습니다.

DevOps의 핵심은 CI/CD를 통해 실행 할 수 있는 파일을 만들어 배포하는데 있다.
- 기존 구성
Github에서 통합된 소스를 가져와 Jenkins에서 Build하여 실행파일을 만들고 인프라 환경에 배포하는 방식 - 컨테이너 구성
소스를 가져와 실행파일을 만드는 과정까지는 동일하고 실행파일을 Container Build를 통해 이미지 파일을 만들어 Container Registry에 올리고 K8s에 배포 명령 -> K8s는 Container Registry에서 이미지를 다운받고 Container Runtime에 Container를 만들어 실행하도록 함

DevOps는 개발부터 운영까지를 의미하고 크게 8단계로 구분
(여기서 CI는 통합된 소스로 빌드와 테스트를 자동화하는 과정이고 CD는 배포를 자동화하는 과정)
DevOps를 구성하는 오픈소스

계획
- Jira, Notion, Slack 등을 활용하여 일정/이슈 공유와 같은 커뮤니케이션을 통해 협업
(Slack이 다른 툴과 연동이 쉬워 주로 사용)
개발
- 개발환경에서 사용되는 언어, 툴, 프레임워크, 테스트 코드 등을 사용
- 테스트 코드는 기존에 구현한 로직은 시간이 지남에 따라 잊혀질 수 있기 때문에, 테스트 코드를 통해 어떻게 동작하는 지 실제로 확인하는 것으로 이해를 도움
빌드
- Gradle, Maven과 같은 툴을 통해 소스를 실행파일로 Build할 수 있으며, Docker를 통해 Base 이미지 위에 실행파일을 올려 만든 새로운 이미지로 배포
(현재는 Gradle를 많이 사용하지만, Gradle도Maven Central Repository에서 라이브러리를 가져옴)
테스트
- 개발 단계에서 충분히 테스트를 진행하지만, 협업에서 다른 사람의 코드와 통합되고 동작이 달라질 수 있음
- 때문에, JUnit과 Jacoco를 통해 테스트를 한 번 더 진행
(Jacoco의 경우, 이 로직이 앱 전체의 어느정도 범위를 테스트를 해보고 통과한 건지 알려줌 -> 수치가 높을 수록 신뢰도가 올라감)
릴리즈
- 배포를 하기 위해 별도의 패키지를 만드는 작업으로 DockerFile과 k8s의 YAML 파일은 개발 소스와 같이 Github와 같은 곳에서 버전 관리가 필요
배포
- kustomize, argoCD, HELM 등을 이용해 배포가 이루어짐
운영
- Container Runtime, Network, DataBase 등이 이용되는 영역으로 실제 환경에 배포되어 운영되는 영역
모니터링
- 운영 환경에 올라간 프로세스의 자원 사용량, 앱 로그, 트래픽 흐름 등을 지속적으로 모니터링

'Tech > Kubernetes(K8s)' 카테고리의 다른 글
@ONE_ :: 정호원
잘못된 정보가 있다면 말씀해주세요!