해당 포스팅은 인프런강의 [쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2] 를 기반으로 작성했습니다.
DevOps에서 가장 중요한 것
1. 개발 환경
- 개발자는 Windows/Mac 환경에서 작업.
- 개발 언어 및 프레임워크: Java (예: Spring)
- JDK: OpenJDK 사용
- 개발 툴: IntelliJ 등 빌드/실행 도구
- 출력물: JAR 파일 (code + lib 포함)
- 빌드 도구: Gradle or Maven 사용
- 소스 관리: GitHub
2. CI/CD 환경
- 개발자가 GitHub에 Push한 코드를 기준으로 자동 빌드/배포 수행
- 소스 빌드
- 컨테이너 빌드: Docker를 사용하여 컨테이너 이미지 생성
- 이미지 업로드: Docker Hub에 업로드
- 배포: Kubernetes 클러스터에 배포
3. 인프라 환경
- dev(개발환경
- qa(테스트 환경)
- prod(운영환경)
기존 방식과의 차이
- 기존: JAR 파일을 직접 복사하여 실행
- 변경: 컨테이너 기반 배포로 전환
전체 흐름 요약
- 개발자가 Java로 코드 작성 → JAR 생성
- GitHub에 Push → CI/CD에서 소스 빌드 & Docker 컨테이너 빌드
- Docker Hub에 이미지 업로드
- 운영환경(dev/qa/prod)에 Kubernetes로 배포 또는 파일 복사
- 외부 사용자는 실행 파일(JAR) 또는 컨테이너를 통해 서비스 이용
DevOps를구성하는 오픈소스들
DevOps를구성하는 오픈소스들
- GitOps : 파이프라인을 Git 하나로 통일 하는 Ops
- DevSecOps : 보안까지 자동화 (Sonarqube) 많이 씀
- MLOps: 머신러닝 을 위한 DevOps
- LLMops : Chatgpt 같은 방대한 규모에 특화된 Ops
- FinOps : 클라우드 환경 비용 절감에 포커스