일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 리스트복사
- 10926번
- 우테코
- hoisting
- 빅오표기법
- 도커
- DevOps
- Python
- 객체지향의 사실과 오해
- 실행 컨텍스트
- 코어자바스크립트
- 10869번
- MSA
- 3003번
- v-on
- 백준
- v-model
- 배열파티션
- v-for
- vue
- 쿠버네티스
- JavaScript
- 젠킨스
- 이벤트버블링
- LeetCode
- 프리코스
- 2588번
- 이벤트캡쳐링
- v-if
- 파이썬
Archives
- Today
- Total
새오의 개발 기록
컨테이너 환경과 컨테이너 기반 기술(msa, docker, kubernetes) 개요 본문
배경
- 서비스의 대량화 + 요구사항이 자주 변경되고 점진적 개발을 하는 애자일 환경으로 변화
- 사용자가 요구하는 인프라를 즉각 제공하는 환경 필요 + MSA
- 컨테이너 인프라 환경 발전
- 도커, 쿠버네티스 같은 컨테이너 관리 도구 발전
MSA(Micro Service Architecture)
- 개념: 개별 기능을 하는 작은 서비스를 각각 개발해 연결
- 장점:
- 재사용이 쉬움
- 기능마다 독립적이라 각 서비스에 에러가 발생하거나 확장해야할 경우 다른 서비스에 미칠 가능성이 적음
- 단점:
- 모놀리식 아키텍처보다 복잡도가 높음
- 각 서비스가 서로 유기적으로 통신하는 구조로 설계되어 네트워크를 통한 호출횟수가 증가해 성능에 영향줄 수 있음
컨테이너 인프라 환경
- 컨테이너:
- 하나의 운영 체제 커널에서 다른 프로세스에 영향을 받지 않고 독립적으로 실행되는 프로세스 상태
- VM ware 같은 가상머신을 사용하는 경우에 호스트 OS와 게스트 OS처럼 OS가 중복되는 상황이 발생하는데 OS가 여러 개 필요한 게 아니라 OS 위에서 실행할 APP 등이 필요한 것임. 이러한 상황에서 호스트 OS 없이 사용할 수 있도록 해주는 게 컨테이너 기술
- 사용자가 요구하는 인프라를 즉각 제공하며 사용자마다 독립적인 환경에서 개발해도 모두 동일한 결과를 얻을 수 있고 개발된 소프트웨어의 성능을 보장하며 인프라의 가용 리소스를 최대한 확보할 수 있는 환경
컨테이너 인프라 환경을 지원하는 도구
Docker
- 컨테이너 환경에서 독립적으로 애플리케이션을 실행할 수 있도록 컨테이너를 만들고 관리하는 것을 도와주는 컨테이너 도구
- 서버를 설치해서 도커 파일로 제공해주며, 이러한 것들(도커 이미지)을 모아 놓고 편리하게 사용할 수 있는 도커 허브 → nginx, tomcat같은 서버를 미리 설치해두어 효율적으로 사용 가능
쿠버네티스
- 다수의 컨테이너 관리도구
- tomcat을 여러 개 설치하거나, 그 개수가 변경되는 상황에 더 쉽게 컨테이너를 사용할 수 있도록 도와주는 도구
- 컨테이너의 자동 배포와 배포된 컨테이너에 대한 동작 보증
젠킨스
- 지속적 통합(CI)과 지속적 배포(CD)를 지원
- CI/CD: 빌드, 테스트, 패키지화, 배포를 자동화
- 컨테이너 인프라 환경처럼 단일 기능을 빠르게 개발해 적용해야 하는 환경에 매우 적합한 도구
프로메테우스, 그라파나
- 컨테이너 환경의 모니터링 도구
- 프로메테우스: 상태 데이터 수집
- 모니터링: 수집한 데이터를 보기 좋게 시각화
참고: 알렉의 기술노트 유튜브, 컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커
'DevOps' 카테고리의 다른 글
CI(Continuous Integretion) (1) | 2023.01.25 |
---|