1.컨테이너 인프란 환경
1-1. 컨테이너 인프라 환경
: 리눅스 운영 체제의 커널 하나에서 여러 컨테이너가 격리되어 (서로 영향주지 않으며) 실행되는 환경
1-2. 컨테이너
: 하나 이상의 목적을 위해 독립적으로 실행되는 프로세스
1-3. 필요한 이유
- PC: 1명의 관리자가 다양한 응용프로그램을 사용함.
- 기업: N명의 관리자가 M개의 서버를 같이 사용함.
*내가 개발한 서비스와 전혀 관계가 없는 다른 서비스의 환경설정 때문에 내 서비스까지 오류나는 상황 방지!
2.컨테이너 환경의 장점
2-1. 가상화 상태에서 동작하는 프로세스보다 빠름(동일 리소스 대비 더 많은 프로세스를 사용할 수 있음 )
2-2. 마이크로 서비스 아키텍처에 적합한 인프라 환경으로 유지보수에 좋다
* 모놀리식 아키텍처 : 여러 기능이 통합되어 동작하는 결합된 구조
* 마이크로서비스 아키텍처 : 개별 기능 중심의 서비스가 독립적으로 동작하는 구조
- 구조
1) 각 서비스는 REST API + 서비스 기능 + Data storage 가짐
2) API Gateway는 외부 요청을 각 서비스의 REST API와 통신함.
3) 서비스 디스커버리는 각 서비스의 등록 현황을 파악함
4) 각 서비스는 event로 통신함
5) 이벤트 버스는 event를 일원화하여 관리 역할을 하는 독립적인 서비스임.
6) 인증 , 결제, API Gateway, Service discovery, Event bus 등 모두 서비스임.
- 장점 : 유지보수에 적합
1) 기능에 집중한 안정적인 서비스 구현
2) 서비스 재사용
3) 타 서비스와의 연결 구조화
3. 컨테이너 환경의 도구 구성
3-1. 컨테이너 (엔진) / Docker
: 컨테이너를 만들고 관리하는 도구
: app실행하면 OS에 관계없이 독립적인 환경에서 일관된 결과 보장됨
3-2. 컨테이너 관리 / Kubernetes
: 다수의 컨테이너를 자동 배포, 동작 보증, 동작 확장 등 컨테이너 인프라 환경에 필요한 기능을 통합 지원하는 솔루션
- 장점
1) 여러 서비스(컨테이너~=서비스)를 효율적으로 관리하는 환경 제공
2) 내외부와 유연하게 연결
3-3. 개발 환경 구성 및 배포 자동화 / Jenkins
: MSA처럼 단일 기능을 빠르게 개발 적용하는 환경에 적합한 도구
: CICD란 빌드,테스트,패키지화,배포를 모두 자동화(표준화)한 개발단계
3-4. 모니터링 / Prometheus + Grafana
: 컨테이너 관리 도구의 상태 데이터를 수집하는 도구 + 데이터를 시각화하는 도구
'Developing.. > MLOps:k8s' 카테고리의 다른 글
[3] 컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 (0) | 2022.06.13 |
---|---|
[2]컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 (0) | 2022.06.12 |
쿠버네티스/ 컨트롤러 (0) | 2022.05.25 |
도커 (0) | 2022.05.23 |
쿠버네티스 기초 - 도커 개념부터 (0) | 2022.05.19 |