다수 인스턴스

데이터베이스
마이크로서비스의 내부 상태 관리는 감춰져야 한다. → 데이터베이스를 공유하지 말라
마이크로서비스 인스턴스마다 자신만의 데이터베이스는 있을 필요 없다.
동일한 마이크로서비스의 다른 인스턴스들과 DB 공유
읽기 복제본을 사용한 부하 분산

동일한 물리 데이터 인프라스트럭처에서 논리적으로 분리된 두 데이터베이스

각 마이크로서비스는 자신만의 DB 전용 인프라스트럭처 활용

환경

격리 실행
마이크로서비스 인스턴스가 자체 컴퓨팅 자원을 가진 격리된 방식으로 실행
단일 머신에 모든 마이크로서비스 인스턴스를 넣는 경우
호스트 당 하나의 마이크로서비스 인스턴스
- 장점
- 격리된 실행환경
- 각 서비스 별 전용 자원

자동화 집중
코드형 인프라스트럭처
무중단 배포
기대 상태 관리
인스턴스 수, 메모리 용량, CPU 연산량 등

격리된 방식으로 실행, 다운타임이 없는 이상적인 방식으로 배포되길 원한다. 또한 자동화 문화 수용, 인프라스트럭처 및 애플리케이션 구성을 코드로 정의, 이상적인 기대 상태 관리
물리 머신
가상 머신
기존 물리 머신을 더 작은 가상 머신으로 분할
예시 : AWS EC2
장점
단점
하부의 CPU, 메모리, I/O, 스토리지를 각 가상 머신에 할당 가능
가상화 비용
가상 머신을 같은 하부 하드웨어에 넣을 수록 VM 자체에서 가용한 컴퓨팅 리소스는 효용이 떨어지는 현상
이유
하이퍼바이저 기능

가상 머신이 제공하는 엄격한 격리 수준이 필요하거나 애플리케이션을 컨테이너화 할 수 있는 능력이 없다면 VM은 훌륭한 선택
컨테이너
리눅스에서 프로세스는 특정 사용자의 의해 실행되며 권한 설정 방법에 따라 특정한 기능 존재가상 머신보다 프로비저닝이 훨씬 빠르다.가상 머신 격리 수준과 동일하지 않다.OOM 공유 등애플리케이션 컨테이너
PasS
FaaS

노드 : 워크로드가 실행할 머신 집합
컨트롤 플레인 : 노드를 관리하는 소프트웨어
파드 : 노드 내부 물리 머신 또는 가상 머신
서비스 : 안정적인 라우팅 엔드포인트
레플리카셋 : 파드들의 기대 상태 정의
디프로이먼트 : 파드와 레플리카셋에 대한 변경 사항 적용
멀티테넌트
부서마다 다양한 자원에 대해 서로 다른 수준의 제어 가능
구축된 플랫폼 채택
페데레이션 모델

CNCF
쿠버네티스
Knative