DevOps에서 가장 중요한 것
Spring Boot Application 기준의 개발 환경에서는,
Gradle을 통해 빌드하고, 빌드된 실행 파일을 가지고 실행하여 접속한다.
또한 이 두 과정 모두 JDK가 필요하다.
반면 인프라 환경에서는 App 실행만을 위한 실행 파일과 JDK만 있으면 되고,
CI/CD 환경에서는 빌드만을 위한 Gradle과 JDK만 있으면 된다.
인프라 환경에서는 dev, qa, prod 등으로 각각의 환경을 구성하게 되고,
개발 환경의 테스트용 구성이나, 운영 환경의 이중화 등의 추가적인 구성이 요구된다.
CI/CD 환경에서는 인프라 환경으로 실행 파일을 넘겨주기 위한 배포라는 과정이 추가되는데,
혼자 App을 개발하는 것이 아니기 때문에 GitHub 등의 소스 통합 관리 툴을 이용하여 소스를 받아서 빌드하고 배포한다.
쿠버네티스 환경에서는 컨테이너 빌드 및 다운로드 등의 추가적인 작업이 수행되지만,
결국 중요한 건 개발하고 빌드한 뒤 실행 파일을 만든다는 건 항상 동일하다는 데 있다.
DevOps를 구성하는 도구들
DevOps가 개발에서 운영까지의 원활한 흐름을 만드는 데 목적이 있는데,
중간에 통합된 소스를 가지고 빌드 및 테스트를 자동화하는 CI, 배포를 자동화하는 CD가 존재한다.
세부적으로 나누면 계획, 개발, 빌드, 테스트, 릴리즈, 배포, 운영, 모니터링으로 나눌 수 있다.
이 단계를 최대한 실무적으로 이해하기 위해 각 단계에 대표적으로 사용되는 도구들을 알아보자.
- 계획
- Jira, Notion: 개발 일정을 공유하거나 이슈 사항들을 기록하는 목적
- Slack: 협업을 위한 메신저 역할 및 모든 단계의 알림 연동
- 개발
- JUnit: 테스트 코드 자동화 라이브러리
- FindBug, PMD: 코드 패턴의 버그 검사
- GitHub, GitLab: 소스 코드의 통합. 보안이 중요한 기업에서는 내부에 설치해서 사용하기도 한다.
- 빌드
- Gradle, Maven, Docker: 소스 코드의 빌드
- Maven Repository, Nexus Repository: 라이브러리를 가져올 외부 저장소.
- 테스트
- JMeter: 성능 테스트
- Jacoco: 테스트 커버리지 검사
- 릴리즈
- Dockerfile: Docker 빌드를 하기 위한 스크립트
- 쿠버네티스 Yaml: 쿠버네티스 배포를 하기 위한 설정 파일
- 배포
- Kustomize, Helm, ArgoCD: 쿠버네티스 배포를 도와주는 도구
- 운영
- NginX, Istio: 네트워크 트래픽 관리 도구
- 모니터링
- Grafana, Loki, Prometheus: 자원 사용량 및 로그 등을 모니터링하기 위한 도구
- Jaeger, Zipkin: 트래픽 흐름을 보기 위한 도구
DevOps에 엮인 IT 직군들
DevOps에 엮인 IT 직군들로는 개발자, DevOps 엔지니어, SRE 등이 있다.
연차가 쌓이게 되면 PM, PL, 아키텍트, 컨설턴트 등의 직책을 하게될 확률이 커지는데,
해당 역할들로 업무에서 인정받기 위해서는 모든 단계를 알아두어야 한다.
따라서 어떤 직책이라 하더라도 이후 실력을 인정받기 위해서는 연차가 쌓일 수록 영역을 넓혀나가는 것이 좋다.
DevOps 외 다른 Ops들
- GitOps
- 파이프라인을 Git 하나로 통일하고자 하는 Ops.
- GitHub Actions 등을 이용해 이슈/협업 관리, 빌드/테스트/배포까지 모두 Git으로 통일한다.
- Git을 도입하고 유지하는데 비용이 들지만, 도입만 한다면 GitOps로 구성을 많이 한다.
- DevSecOps
- 빠른 배포와 보안을 동시에 잡고자 하는 Ops.
- DevOps에 추가로 보안적인 요소까지 자동화시키는 것이 핵심이다.
- 코드 보안을 위한 SonarQube, 이미지 보안을 위한 Trivy 등의 툴을 이용한다.
- 통상 보안 솔루션을 가지고 있는 업체에서 자사의 보안 툴들을 홍보하기 위한 목적으로 많이 언급한다.
- MLOps
- AI 분야를 위한 DevOps.
- AI의 핵심인 데이터 분석가들이 만든 AI 모델을 시스템까지 원활하게 서빙하기 위한 Ops.
- DevOps는 운영자와 개발자 간의 협업이 중심이라면, MLOps는 개발자와 데이터 분석가의 협업이 중심이다.
- 이 분야를 위한 전문 툴들이 많아 머신러닝 분야에서 개발을 해본 사람이 MLOps를 하는 것이 유리하다.
- LLMOps
- MLOps와 비슷한 AI 분야이지만, 훨씬 방대한 규모의 머신러닝을 위한 특화된 DevOps.
- 현재 MLOps의 끝판왕쯤 되는 위치에 있다.
- FinOps
- 클라우드 환경 비용 절감에 포커스를 둔 DevOps.
- 아직 나온지 얼마 되지 않아 인식을 만드는 단계에 있다.
출처
https://www.inflearn.com/course/쿠버네티스-어나더-클래스-지상편-sprint1
쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2 강의 | 일프로 - 인프런
일프로 | , ✅ 광범위한 쿠버네티스 기술을 A~Z까지 넓고 얇게 훑기보다 하나의 개념을 배우더라도 왜 사용하는지 부터 실무에서 어떻게 사용되는지 까지를 다루는 강의✅ 시작은 초급자지만강
www.inflearn.com
'Kubernetes' 카테고리의 다른 글
[Kubernetes] 배포를 시작하기 전에 반드시 알아야 할 것들 (0) | 2025.06.12 |
---|---|
[Kubernetes] 손쉽게 CI/CD 환경을 구축하는 방법 (1) | 2025.06.08 |
[Kubernetes] Component 동작으로 이해하기 (1) | 2025.06.06 |
[Kubernetes] Application 기능으로 이해하는 PV/PVC, Deployment, Service, HPA (1) | 2025.06.05 |
[Kubernetes] Application 기능으로 이해하는 ConfigMap, Secret (2) | 2025.06.04 |