
데브옵스 한방 정리
내가 데브옵스 엔지니어라면 어떻게 할까?
데브옵스에서 가장 중요한 것은 '개발을 하고 빌드하며실행가능한 파일들로 만든다'
✅개발환경: 내PC, intellJ 개발 툴킷 OpenJDK, spring framework
빌드 Gradle, jar 실행 파일--> OpenJDK에 있는 JVM 위에서 실행
중요한 점! 빌드하고 실행하는데 OpenJDK 항상 필요하다.
✅인프라 환경: 실행파일과 JVM 필요, OpenJDK 만 있어도 된다.
✅CI/CD : 배포 과정 추가
dev: App이 하나만 있는것은 아니다. 여러개가 있기에 개발자 통합 테스트용이다.
qa: 전문 테스트 담당자용이다. 이 환경은 실제 운영할때처럼 세팅해야한다.
prod: 이중화 필수!서버 다운이나 여러 장애가 발생했을 때를 대비한다.
2가지 케이스
기존 구성: 컨테이너 도입 이전(jenkins, gradle로 빌드하겠다고 세팅) /만들어진 jar파일 인프라 환경으로 복사, 실행하라고 명령 보내기
인프라 환경: 개발환경(무료OS+OpenJDK)과 운영환경(Redhat+OpenJDK)/ 개발환경에는 여러 개발자들이, 운영환경에는 외부 사용자들이 들어올 수 있다.
데브옵스를 구성하는 오픈소스
CI: 통합된 소스를 가지고 테스트 자동화 시키는 기능을 만든다. / CD: 배포를 자동화 시킴
계획
주로 노션 , slack
기업은 내부 데이터를 외부에서 사용하려고 하는것을 꺼려한다. 그래서 기업 내부에 GitLab, 도커 레지스토리 제품 설치함.
개발
JUnit: test용
빌드
Gradle. Maven,docker 소스/컨테이너
테스트
Junit 통합된 코드에서 오류가 생기거나 다른 결과가 나올 수 있으니까..기능/성능/커버리지
릴리즈
배포가능한 패키지 만들기
yaml파일 사전에 만들기, 깃허브에 미리 올리기
배포
커스터마이즈 helm, Argo CD
운영
NGINX, lstio
모니터링
트래픽 흐름, Grafana, ZIPKIN (트래픽 확인)
데브옵스 외 다른 Ops
GitOps: 데브옵스 파이프라인을 Git 하나로 통일,이슈, 협업관리,빌드, 테스트, 배포
DevSecOps: 보안적인 요소까지 고려 및 자동화, 취약점 검사 체크
MLOps: 머신러닝 상품추천 사용자 행동 예측
LLMOps: GPT 처럼 방대한 규모 머신너링에 특화된 데브옵스 파이라인 필요
FinOps: 클라우드 환경 비용 절감 포커스
댓글을 작성해보세요.