거대한 모놀리스 레거시 애플리케이션은 점차 마이크로서비스라는 독립적으로 실행되는 더 작은 구성 요소로 세분화
마이크로 서비스는 서로 분리돼 있기 때문에 개별적으로 개발, 배포, 업데이트, 확장 가능
서버 배포를 자동으로 스케줄링하고 구성, 관리, 장애 처리를 포함하는 자동화 필요
→ 쿠버네티스 등장 이유
세세한 서버 정보를 알 필요 없이 애플리케이션 구성 요소를 배포하고 실행 가능
개발자가 모든 유형의 애플리케이션을 배포하고 실행할 수 있는 간단한 플랫폼 제공
클라우드 공급자의 시스템 관리자가 자신들의 하드웨어에서 실행되는 수만 개의 애플리케이션을 일일이 알 필요 X
클라우드 뿐만 아니라 사내 자체 인프라에서도 분산 애플리케이션을 실행하는 표준
마이크로서비스로 애플리케이션 분할
이런 저런 문제로 독립적으로 배포할 수 있는 작은 구성 요소로 분할
그림 1.1 모놀리스 애플리케이션과 독립 실행형 마이크로 서비스의 구성 요소 비교
일반적으로 RESTful API를 제공하는 HTTP와 같은 동기 프로토콜과 AMQP와 같은 비동기 프로토콜로 통신
대체로 정적인 외부 API를 제공하는 독립형 프로세스이기 때문에 개별적으로 개발, 배포 가능
마이크로서비스 확장