서드파티란 무엇인가?
쿠버네티스를 처음 공부하며 이런 이야기를 들었다.
“쿠버네티스는 컨테이너 오케스트레이션 기능만 제공하고, 실제 운영 환경에 필요한 기능은 서드파티 솔루션을 통해 보완한다.”
그럼 여기서 서드파티가 의미하는 것이 무엇일까? Third-Party? 제3당도 아니고 말이다.
서드파티(Third-Party)의 정의
서드파티는 기본적으로 ‘제3자’를 뜻하는 단어이다. 이 제3자가 어떤 분야의 제3자를 의미하는지에 따라 의미가 나뉜다. 대체로는 제조자와 사용자 이외 외부의 독립적인 개발자나 회사를 가리키는 뜻으로 쓰인다.
서드파티 개념을 정확하게 이해하기 위해서는 First-Party와 Second-Party가 무엇인지 먼저 알아야 한다.
First-Party, Second-Party, Third-Party 구분
쉬운 예시를 통해 이해해보자. iPhone 생태계를 떠올려보자.
First-Party (퍼스트파티)
제품이나 서비스를 직접 만드는 원래 주체
- iPhone 예시: Apple (iPhone을 직접 제조하고 iOS를 개발)
- Apple이 직접 만든 앱들 (Safari, 메일, 카메라 등)
Second-Party (세컨드파티)
원래 주체의 공식 파트너나 협력사
- iPhone 예시: Apple의 공인 파트너들 MFi(Made for iPhone) 인증을 받은 액세서리 제조사들
- Apple과 공식적으로 협력하여 제품을 만드는 회사들
Third-Party (서드파티)
원래 주체와 독립적으로 활동하는 외부 개발자나 회사
- iPhone 예시: 독립적인 앱 개발자들이 만든 앱들
- 비공인 액세서리 제조사들
- Apple과 직접적인 협력 관계 없이 독립적으로 제품을 만드는 주체들
여기서 핵심은 독립성과 확장성이다. 서드파티는 원래 플랫폼의 기능을 확장하거나 새로운 기능을 추가하지만, 플랫폼 제조사와는 독립적으로 운영된다.
쿠버네티스에서의 서드파티
이 개념을 쿠버네티스에 적용해보면 다음과 같다.
First-Party (쿠버네티스 핵심)
- 쿠버네티스 핵심 개발팀 (Google, CNCF)
- 쿠버네티스 코어 컴포넌트들 (API Server, etcd, kubelet, kube-proxy 등)
- 쿠버네티스가 기본으로 제공하는 기능들
Second-Party (공식 파트너 프로젝트)
- CNCF 산하의 공식 프로젝트들
- Helm (패키지 매니저)
- Prometheus (모니터링)
- Jaeger (분산 추적)
- 쿠버네티스와 공식적으로 협력하여 개발되는 - 프로젝트들
Third-Party (독립적인 외부 솔루션들)
- CNI 플러그인들: Calico, Flannel, Weave Net 등 (네트워킹)
- CSI 드라이버들: 각종 스토리지 벤더들이 만든 - 드라이버들
- CRI 구현체들: containerd, CRI-O 등 - (컨테이너 런타임)
- Operator들: 다양한 애플리케이션을 위한 - 커스텀 컨트롤러들
- Ingress Controller들: NGINX, Traefik, HAProxy 등
왜 쿠버네티스는 서드파티에 의존할까?
쿠버네티스는 의도적으로 플랫폼으로 설계되었다. 즉, 핵심 기능만 제공하고 구체적인 구현은 서드파티에게 맡기는 구조다. 이렇게 하는 이유는:
- 확장성: 다양한 환경과 요구사항에 맞는 - 솔루션들을 선택할 수 있다
- 혁신: 독립적인 개발자들이 새로운 아이디어를 - 자유롭게 구현할 수 있다
- 전문성: 각 분야의 전문가들이 최적화된 - 솔루션을 제공할 수 있다
- 생태계: 풍부한 생태계를 통해 플랫폼의 가치가 높아진다
결국 “쿠버네티스는 도구일 뿐이며 기능은 서드파티가 한다”는 말은, 쿠버네티스가 기반 플랫폼을 제공하고 실제 비즈니스 로직이나 특화된 기능들은 독립적인 외부 개발자들이 만든 솔루션들을 통해 구현된다는 의미인 것이다.
댓글남기기