*RAFT 알고리즘: 분산 환경에서 상태를 공유하는 알고리즘,
Kubernetes는 etcd를 사용해 클러스터의 상태를 저장
etcd는 'Raft Consensus Algorithm'을 기반으로 하는 distributed key-value store
etcd는 Go 프로그래밍 언어로 작성
Kubenetes에서는 클러스터의 상태를 저장하는 기능 말고도 Subnets, ConfigMaps, Secrets 등을 저장하기도 함
* gRPC: Google에서 처음 개발한 공개 원격 프로시져 호출(RPC) 시스템, 인터페이스 설명언어로 프로토콜 버퍼 사용
* Protobuf: protocol buffer 줄임말로 크기를 줄인 직렬화 데이터 구조 (이진 메시지 형식)


| API Gateway | Service Mesh | |
|---|---|---|
| 라우팅 주체 | 서버 | 요청하는 서비스 |
| 라우팅 구성요소 | 별도의 네트워크를 도입하는 독립적인 API Gateway 구성요소 | Service 내 SideCar로 Local network 스택의 일부가 됨 |
| 로드 밸런싱 | 단일 엔드포인트를 제공하고, API Gateway내 로드밸런싱을 담당하는 구성요소에 요청을 redirection하여 해당 구성요소가 처리함 | Service Registry에서 서비스 목록을 수신함. Sidecar에서 로드밸런싱 알고리즘을 통해 수행함 |
| 네트워크 | 외부 인터넷과 내부 서비스 네트워크 사이에 위치함 | 내부 서비스 네트워크 사이에 위치하며, 응용프로그램의 네트워크 경계 내에서만 통신을 가능하게 함 |
| 트레이싱 | API에 대한 사용자 및 공급자에 대한 모든 호출에 대해 수집되고 분석됨 | Mesh 내 모든 마이크로서비스 구성요소에 대해 분석가능 |
Service Discovery, Load balancing, Dynamic Request Routing, Circuit Breaking, 암호화, 보안, Health check, Retry and Timeout, Metric 수집

