1.3.2 CNCF와 클라우드 네이티브의 관계

앞서 우리는 클라우드 네이티브 컴퓨팅 재단(CNCF)이 왜 설립되었고 어떤 목표를 추구하는지 살펴보았습니다. 이제 좀 더 구체적으로 CNCF가 우리가 배우고 있는 클라우드 네이티브라는 기술 패러다임과 정확히 어떤 관계를 맺고 있는지 알아보겠습니다. CNCF는 단순히 여러 오픈 소스 프로젝트를 모아 놓은 저장소가 아닙니다. 오히려 클라우드 네이티브라는 개념을 정의하고, 관련 기술 생태계를 체계적으로 분류하며, 사용자들이 이 복잡한 기술 세계를 항해할 수 있도록 안내하는 등대이자 지도 제작자와 같은 역할을 수행합니다. 지금부터 CNCF가 어떻게 클라우드 네이티브 기술 스택을 정의하고, 수많은 프로젝트들을 관리하며, 이 거대한 생태계를 한눈에 볼 수 있도록 돕는지 자세히 살펴보겠습니다.

CNCF와 클라우드 네이티브의 관계

1.3.2.1 클라우드 네이티브 기술 스택 정의

‘클라우드 네이티브’라는 용어는 매우 광범위하게 사용되지만, 그 구체적인 의미나 필요한 기술 요소들에 대해서는 혼란이 있을 수 있습니다. 마치 ‘건강한 식단’이라고 말할 때 어떤 음식을 얼마나 먹어야 하는지에 대한 구체적인 지침이 필요한 것처럼, 클라우드 네이티브 역시 그것을 구성하는 핵심 기술 요소들과 원칙들에 대한 명확한 정의가 필요합니다.

CNCF는 바로 이 클라우드 네이티브 기술 스택(Tech Stack)을 정의하고 명확히 하는 데 주도적인 역할을 하고 있습니다. CNCF는 클라우드 네이티브를 “퍼블릭, 프라이빗, 하이브리드 클라우드와 같은 현대적이고 동적인 환경에서, 확장 가능한 애플리케이션을 개발하고 운영할 수 있도록 하는 기술들의 조합”으로 정의합니다. 이 정의에는 다음과 같은 핵심 요소들이 포함됩니다.

  • 컨테이너(Containers): 애플리케이션과 그 종속성을 격리된 환경에서 패키징하고 실행하는 기본 단위입니다. (1.2.2.2 컨테이너화 참조)
  • 서비스 메시(Service Mesh): 마이크로서비스 간의 복잡한 통신을 관리하고 보안, 관측 가능성을 제공하는 인프라 계층입니다.
  • 불변 인프라(Immutable Infrastructure): 한번 배포된 인프라는 변경하지 않고, 변경이 필요하면 새로 생성하여 교체하는 운영 방식입니다. (1.2.3 불변 인프라 참조)
  • 선언적 API(Declarative APIs): 원하는 상태를 정의하면 시스템이 스스로 그 상태를 달성하고 유지하도록 하는 API 방식입니다. 쿠버네티스가 대표적입니다. (1.2.2.5 선언적 API 참조)
CNCF가 정의한 클라우드 네이티브 기술 범주(Categories)

CNCF는 클라우드 네이티브라는, 때로는 추상적으로 느껴질 수 있는 개념을 구체화하고, 이를 구현하는 데 필요한 기술 요소들을 체계적으로 정리하여 제시하는 중요한 역할을 합니다. 마치 복잡한 도시를 탐험하기 전에 잘 만들어진 지도가 필요한 것처럼, CNCF는 클라우드 네이티브 기술 세계를 이해하고 탐험하는 데 필요한 기술 범주(Categories)라는 일종의 지도를 제공합니다. 이 범주들은 클라우드 네이티브 시스템을 성공적으로 구축하고 운영하기 위해 어떤 종류의 기술들이 필요하며, 이들이 서로 어떻게 상호작용하는지 이해하는 데 도움을 줍니다.

아래는 CNCF가 정의한 클라우드 네이티브 기술 범주와 주요 오픈소스 프로젝트를 요약한 표입니다.

기술 범주 (Category) 핵심 역할 및 초점 주요 기술 요소 / 개념 관련 CNCF 프로젝트 예시

(등급 약어: G=졸업, I=인큐베이팅, S=샌드박스)

1. 앱 데피니션 및 개발 클라우드 네이티브 애플리케이션 정의, 개발, 패키징, 배포 자동화 등 개발 생명주기 관련 기술 데이터베이스(Cloud-Native DB, Operator), 메시징(Queue, Stream), 컨테이너 이미지 빌드, 패키징(Helm), CI/CD 파이프라인 Helm(G), Buildpacks(I), NATS(I), TiKV(G), Argo CD(G), Flux(G), Tekton(G), etcd(G)
2. 오케스트레이션 및 관리 컨테이너화된 앱의 배포, 확장, 네트워킹, 서비스 관리 등 시스템 운영의 핵심 제어 및 자동화 스케줄링 및 오케스트레이션, 서비스 메시, 서비스 디스커버리, API 게이트웨이, 클라우드 네이티브 네트워킹(상위 레벨 관리) Kubernetes(G), Istio, Linkerd(G), Envoy(G), CoreDNS(G), Cilium(I), Consul, Kuma(S)
3. 런타임 컨테이너 실행 환경의 기반. 컨테이너 실행, 스토리지 연결, 노드 수준 네트워킹 등 애플리케이션 실행의 직접적인 토대 컨테이너 런타임(CRI), 클라우드 네이티브 스토리지(CSI), 클라우드 네이티브 네트워킹(CNI 플러그인) containerd(G), CRI-O(I), Rook(G), Longhorn(I), Ceph, Calico, Flannel, Cilium(I)
4. 프로비저닝 클라우드 네이티브 앱 실행을 위한 인프라(클러스터, 서버 등) 구축, 구성, 보안 설정 및 컨테이너 이미지 관리 자동화 자동화 및 구성 관리(IaC), 컨테이너 레지스트리, 보안 스캔, 정책 관리, 비밀 관리 Terraform, Crossplane(I), Cluster API, Harbor(G), Trivy, Falco(I), OPA(G), Kyverno(G), Vault
5. 관측 가능성 및 분석 복잡한 분산 시스템의 내부 상태(성능, 건강 상태, 오류)를 외부에서 파악하고 분석하기 위한 기술 (모니터링, 로깅, 트레이싱 등) 모니터링(Metrics), 로깅(Logs), 트레이싱(Traces), 카오스 엔지니어링, 관측 가능성 통합 표준 Prometheus(G), Grafana, Fluentd(G), Fluent Bit(I), Jaeger(G), Zipkin, OpenTelemetry(I), LitmusChaos(I), Chaos Mesh(I), Cortex(G), Thanos(I)
6. 서버리스 개발자가 인프라 관리 없이 코드 실행에만 집중할 수 있도록 하는 이벤트 기반 컴퓨팅 모델 및 관련 기술 Function-as-a-Service (FaaS), 서버리스 플랫폼/프레임워크, 이벤트 처리 및 라우팅, 이벤트 표준(CloudEvents) Knative(I), OpenFaaS(S), CloudEvents(G)

참고: 각 프로젝트의 상세 정보는 CNCF Landscape(landscape.cncf.io) 공식 사이트에서 시각화된 형태로 확인하실 수 있습니다.

1. App Definition & Development (앱 정의 및 개발)

이 범주는 클라우드 네이티브 애플리케이션을 어떻게 정의하고, 개발하며, 패키징하는지에 관련된 기술들을 포함합니다. 즉, 개발자들이 실제로 코드를 작성하고 이를 실행 가능한 형태로 만드는 과정과 밀접하게 연관되어 있습니다. 클라우드 네이티브 환경의 특성(분산 시스템, 자동화된 배포 등)을 고려한 개발 방식과 도구들이 이 범주에 속합니다.

  • 데이터베이스 (Databases): 많은 애플리케이션은 상태(State)를 저장해야 합니다. 클라우드 네이티브 환경에서는 기존의 관계형 데이터베이스뿐만 아니라, 분산 환경에 더 적합하고 확장성이 뛰어난 NoSQL 데이터베이스(예: etcd – 쿠버네티스 자체에서도 사용하는 분산 키-값 저장소, TiKV – 분산 트랜잭셔널 키-값 데이터베이스 [Graduated])나 클라우드 제공사의 관리형 데이터베이스 서비스 등이 중요하게 고려됩니다. 또한, 쿠버네티스 위에서 이러한 상태 저장 애플리케이션을 쉽게 배포하고 관리하기 위한 오퍼레이터 패턴(Operator Pattern) 관련 기술도 이 영역과 관련 깊습니다.
  • 메시징 (Messaging): 마이크로서비스 아키텍처에서는 서비스 간의 비동기 통신이 매우 중요합니다. 이를 위해 NATS [Incubating]나 Kafka와 같은 메시지 큐 또는 스트리밍 플랫폼이 널리 사용되어 서비스 간의 결합도를 낮추고 시스템의 탄력성을 높이는 데 기여합니다.
  • 컨테이너 이미지 빌드 및 패키징 (Container Image Build & Packaging): 개발된 애플리케이션 코드를 컨테이너 이미지로 만드는 과정입니다. Buildpacks [Incubating]와 같은 기술은 소스 코드로부터 직접 컨테이너 이미지를 빌드하는 과정을 표준화하고 자동화하는 데 도움을 줍니다. 또한, 애플리케이션과 그 구성 요소들을 쿠버네티스에 배포하기 위한 패키지 매니저인 Helm [Graduated]도 이 범주에서 중요한 역할을 합니다. 복잡한 애플리케이션의 정의와 배포를 템플릿화하여 관리할 수 있게 해줍니다.
  • 지속적 통합/배포 (CI/CD): 애플리케이션 개발부터 배포까지의 과정을 자동화하는 CI/CD 파이프라인 관련 도구(예: Jenkins X, Tekton, Argo CD [Graduated], Flux [Graduated])들도 애플리케이션 정의 및 개발 과정의 중요한 부분입니다.
2. Orchestration & Management (오케스트레이션 및 관리)

이 범주는 클라우드 네이티브 시스템의 핵심 운영에 관련된 기술들을 다룹니다. 컨테이너화된 애플리케이션들을 어떻게 배포하고, 확장하며, 서로 연결하고, 안정적으로 관리할 것인가에 대한 해답을 제공하는 기술들이 여기에 속합니다.

  • 스케줄링 및 오케스트레이션 (Scheduling & Orchestration): 단연 쿠버네티스(Kubernetes) [Graduated]가 이 영역의 핵심입니다. 쿠버네티스는 수많은 컨테이너들을 여러 서버(노드)에 효율적으로 배치(스케줄링)하고, 애플리케이션의 배포, 확장(스케일링), 업데이트, 자가 치유(Self-healing) 등 복잡한 관리 작업을 자동화하는 컨테이너 오케스트레이션의 사실상 표준 플랫폼입니다.
  • 서비스 메시 (Service Mesh): 마이크로서비스 환경에서 서비스 간 통신은 매우 복잡해질 수 있습니다. Istio, Linkerd [Graduated], Consul 등 서비스 메시 기술은 애플리케이션 코드 변경 없이 서비스 간의 트래픽 관리(라우팅, 로드 밸런싱), 보안(암호화, 인증/인가), 관측 가능성(메트릭, 트레이싱) 등의 기능을 인프라 수준에서 제공하여 마이크로서비스 운영의 복잡성을 크게 낮춰줍니다.
  • 네트워킹 (Networking): 컨테이너 간, 파드(Pod) 간, 그리고 외부와의 통신을 어떻게 구성하고 관리할지에 대한 기술입니다. 쿠버네티스 네트워킹 모델을 구현하는 다양한 CNI(Container Network Interface) 플러그인들이 여기에 속하며, 서비스 노출을 위한 인그레스 컨트롤러(Ingress Controller)나 API 게이트웨이 등도 관련됩니다. Cilium [Incubating]은 eBPF 기술을 활용하여 고성능 네트워킹과 보안 기능을 제공하는 대표적인 프로젝트입니다.
  • 서비스 디스커버리 (Service Discovery): 동적으로 생성되고 사라지는 컨테이너 환경에서 서비스들이 서로의 네트워크 위치(IP 주소, 포트)를 어떻게 찾을 수 있는지에 대한 메커니즘입니다. 쿠버네티스는 자체적인 서비스 디스커버리 기능을 내장하고 있으며, CoreDNS [Graduated]가 쿠버네티스 클러스터의 DNS 서버로 널리 사용됩니다.
3. Runtime (실행 환경)

이 범주는 컨테이너화된 애플리케이션이 실제로 실행되는 환경을 구성하는 기본적인 기술 요소들을 포함합니다. 오케스트레이션 시스템의 지시를 받아 컨테이너를 실행하고, 필요한 저장 공간이나 네트워크 연결 같은 기반 자원을 제공하는 역할을 합니다.

  • 컨테이너 런타임 (Container Runtime): 컨테이너 이미지를 내려받고 실제로 컨테이너를 실행하며 생명주기를 관리하는 소프트웨어입니다. 과거에는 도커 엔진(Docker Engine)이 주로 사용되었지만, 현재는 쿠버네티스의 표준 인터페이스인 CRI(Container Runtime Interface)를 구현하는 containerd [Graduated]나 CRI-O [Incubating]와 같은 경량화되고 표준화된 런타임들이 널리 사용됩니다.
  • 클라우드 네이티브 스토리지 (Cloud Native Storage): 컨테이너는 기본적으로 상태가 없지만(Stateless), 데이터베이스와 같이 상태를 저장해야 하는(Stateful) 애플리케이션도 많습니다. 클라우드 네이티브 환경에서는 동적으로 스토리지를 프로비저닝하고 컨테이너에 연결하며, 데이터의 내구성과 가용성을 보장하는 스토리지 솔루션이 필요합니다. Rook [Graduated](Ceph 등 다양한 스토리지 시스템을 쿠버네티스에서 관리), Longhorn [Incubating](분산 블록 스토리지), Ceph 자체 등이 이 영역에 속합니다. 쿠버네티스의 CSI(Container Storage Interface) 표준은 다양한 스토리지 벤더들이 자신의 솔루션을 쿠버네티스와 쉽게 통합할 수 있도록 합니다.
  • 클라우드 네이티브 네트워킹 (Cloud Native Networking): 앞서 ‘오케스트레이션 및 관리’ 범주에서도 네트워킹을 언급했지만, 이 ‘런타임’ 범주에서의 네트워킹은 주로 개별 노드 수준에서 파드 간 통신을 가능하게 하는 CNI(Container Network Interface) 플러그인 구현체(Calico, Flannel, Cilium [Incubating] 등) 자체에 좀 더 초점을 맞춥니다. 이들은 실제 네트워크 패킷 처리와 라우팅 규칙 설정 등을 담당합니다.
4. Provisioning (프로비저닝 및 구성 자동화)

이 범주는 클라우드 네이티브 애플리케이션을 실행하기 위한 기반 인프라(서버, 네트워크, 쿠버네티스 클러스터 등)를 어떻게 구축하고, 구성하며, 안전하게 관리할 것인가에 관련된 기술들을 다룹니다. 자동화된 방식으로 인프라를 관리하는 것이 핵심입니다.

  • 자동화 및 구성 관리 (Automation & Configuration Management): 코드를 통해 인프라를 정의하고 관리하는 Infrastructure as Code (IaC) 접근 방식이 중요합니다. Terraform, Pulumi 와 같은 도구나, 쿠버네티스 자체의 API를 활용하여 클러스터나 클라우드 리소스를 관리하는 Crossplane [Incubating], Cluster API 같은 기술들이 활용됩니다. Ansible, Chef, Puppet 등 전통적인 구성 관리 도구들도 여전히 사용될 수 있습니다.
  • 컨테이너 레지스트리 (Container Registry): 빌드된 컨테이너 이미지를 저장하고 배포하기 위한 저장소입니다. Harbor [Graduated]는 보안 기능(이미지 스캔 등)과 접근 제어 기능을 갖춘 엔터프라이즈급 오픈 소스 레지스트리입니다. Docker Hub나 각 클라우드 제공사(AWS ECR, Google GCR/Artifact Registry, Azure ACR)의 레지스트리 서비스도 널리 사용됩니다.
  • 보안 및 규정 준수 (Security & Compliance): 클라우드 네이티브 환경의 보안은 매우 중요하며 여러 계층에서 이루어져야 합니다. 컨테이너 이미지 취약점 스캔(Trivy, Clair), 런타임 보안(Falco [Incubating]), 네트워크 정책 시행, 비밀 정보 관리(Secrets Management – Vault), 정책 기반 접근 제어 및 규정 준수 자동화(Open Policy Agent (OPA) [Graduated], Kyverno [Graduated]) 등 다양한 보안 기술들이 이 범주에 속합니다.
5. Observability & Analysis (관측 가능성 및 분석)

클라우드 네이티브 시스템은 수많은 구성 요소들이 동적으로 상호작용하는 복잡한 분산 시스템입니다. 따라서 시스템이 현재 어떤 상태인지, 성능은 어떠한지, 문제가 발생했을 때 원인은 무엇인지 파악하는 것이 매우 중요하고 어렵습니다. ‘관측 가능성(Observability)’은 바로 이러한 시스템 내부 상태를 외부에서 얼마나 잘 추론할 수 있는지를 나타내는 개념이며, 이 범주는 이를 가능하게 하는 기술들을 포함합니다.

  • 모니터링 (Monitoring): 시스템의 상태와 성능을 나타내는 메트릭(Metrics)(예: CPU/메모리 사용량, 요청 수, 응답 시간 등)을 주기적으로 수집하고 시각화하여 이상 징후를 감지하는 활동입니다. Prometheus [Graduated]는 메트릭 수집 및 저장을 위한 사실상의 표준이며, Grafana와 같은 도구를 통해 시각화합니다. Cortex [Graduated]와 Thanos [Incubating]는 Prometheus를 대규모 환경에서 확장 가능하게 운영하기 위한 프로젝트입니다.
  • 로깅 (Logging): 시스템이나 애플리케이션에서 발생하는 이벤트 기록(Logs)을 수집, 중앙화하여 저장하고 분석하는 활동입니다. Fluentd [Graduated]나 Fluent Bit [Incubating]는 다양한 소스로부터 로그를 수집하여 Elasticsearch, Loki 등 로그 저장소로 전송하는 역할을 합니다.
  • 트레이싱 (Tracing): 마이크로서비스 환경에서 사용자 요청 하나가 여러 서비스를 거쳐 처리될 때, 그 요청의 전체 경로와 각 단계별 소요 시간 등을 추적하는 기술입니다. 이를 통해 병목 구간이나 오류 발생 지점을 정확히 파악할 수 있습니다. Jaeger [Graduated]와 Zipkin이 대표적인 분산 추적 시스템입니다.
  • 카오스 엔지니어링 (Chaos Engineering): 시스템의 안정성과 복원력을 검증하기 위해 의도적으로 장애 상황(예: 특정 파드 강제 종료, 네트워크 지연 발생 등)을 주입하고 시스템이 어떻게 반응하는지 관찰하는 실험적인 접근 방식입니다. LitmusChaos [Incubating]와 Chaos Mesh [Incubating]가 쿠버네티스 환경에서 카오스 엔지니어링 실험을 수행하는 데 도움을 주는 도구들입니다.
  • 통합 표준: 최근에는 메트릭, 로그, 트레이스 데이터를 통합된 방식으로 수집하고 내보내기 위한 표준 스펙과 구현체인 OpenTelemetry [Incubating] 프로젝트가 CNCF 주도로 활발히 개발되며 관측 가능성 분야의 중요한 표준으로 자리 잡고 있습니다.
6. Serverless (서버리스 컴퓨팅)

서버리스는 개발자가 서버나 인프라 관리에 대한 걱정 없이 오직 비즈니스 로직(코드) 작성에만 집중할 수 있도록 하는 클라우드 컴퓨팅 실행 모델입니다. 인프라는 필요에 따라 플랫폼에 의해 자동으로 프로비저닝되고 확장되며, 사용한 만큼만 비용을 지불하는 방식(Pay-per-use)이 특징입니다. 클라우드 네이티브의 궁극적인 목표 중 하나인 ‘인프라 추상화’를 높은 수준으로 달성한 형태라고 볼 수 있습니다.

  • 플랫폼 및 프레임워크: 서버리스 모델은 주로 함수 단위로 코드를 실행하는 Function-as-a-Service (FaaS) 형태로 구현됩니다. Knative [Incubating]는 쿠버네티스 위에서 서버리스 워크로드를 구축, 배포, 관리하기 위한 플랫폼을 제공합니다. OpenFaaS [Sandbox]도 널리 알려진 오픈 소스 서버리스 프레임워크입니다. 또한, CloudEvents [Graduated]는 다양한 시스템과 플랫폼 간에 이벤트 데이터를 표준화된 방식으로 설명하고 전달하기 위한 스펙으로, 이벤트 기반 서버리스 아키텍처에서 중요한 역할을 합니다.

1.3.2.2 프로젝트 등급 (Graduated, Incubating, Sandbox)

CNCF가 호스팅하는 프로젝트의 수는 매우 많으며, 그 기술적 성숙도나 커뮤니티 활성화 정도, 실제 운영 환경에서의 사용 빈도 등은 프로젝트마다 천차만별입니다. 어떤 프로젝트는 이제 막 실험적으로 시작된 아이디어일 수 있고, 어떤 프로젝트는 이미 전 세계 수많은 기업에서 핵심 인프라로 사용될 만큼 안정성이 검증되었을 수도 있습니다.

사용자 입장에서는 이렇게 다양한 프로젝트들 중에서 자신의 요구사항과 위험 감수 수준에 맞는 기술을 선택하는 것이 중요합니다. 예를 들어, 당장 안정적인 운영이 최우선인 기업 환경에서는 검증된 기술을 선호할 것이고, 새로운 혁신 기술을 빠르게 도입하려는 스타트업은 좀 더 실험적인 기술에 관심을 가질 수 있습니다.

CNCF는 사용자들이 이러한 판단을 내리는 데 도움을 주기 위해, 재단 산하의 프로젝트들을 세 가지 등급(Tier)으로 나누어 관리합니다. 이는 마치 레스토랑의 별점이나 제품의 품질 인증 마크처럼, 해당 프로젝트의 성숙도와 신뢰도를 가늠할 수 있는 중요한 지표 역할을 합니다. 이 등급은 CNCF의 기술 감독 위원회(TOC: Technical Oversight Committee)가 프로젝트의 기술적 완성도, 커뮤니티의 건강성, 실제 도입 사례, 거버넌스 구조 등 다양한 기준을 엄격하게 심사하여 결정합니다.

세 가지 프로젝트 등급은 다음과 같습니다.

졸업 (Graduated) 등급:
  • 의미: CNCF 프로젝트 중 가장 높은 성숙도와 안정성을 인정받은 프로젝트들입니다. 기술적으로 매우 안정적이며, 다양한 실제 운영 환경(Production)에서 성공적으로 널리 사용되고 있습니다. 강력하고 활발한 커뮤니티와 명확하고 투명한 거버넌스 구조를 갖추고 있으며, 지속적인 발전과 유지보수가 이루어지고 있음을 의미합니다.
  • 특징: 사실상 해당 기술 분야의 **산업 표준(De facto standard)**으로 간주되는 경우가 많습니다. 기업들이 핵심 시스템에 도입할 때 우선적으로 고려할 수 있는, 가장 신뢰도가 높은 프로젝트들입니다.
  • 대표적인 예시: 쿠버네티스(Kubernetes)프로메테우스(Prometheus)엔보이(Envoy)컨테이너디(containerd)헬름(Helm)하버(Harbor)티아이케이비(TiKV) 등이 있습니다. (이 목록은 시간이 지남에 따라 계속 업데이트됩니다.)

CNCF와 클라우드 네이티브의 관계
인큐베이팅 (Incubating) 등급:
  • 의미: 기술적으로 상당한 수준에 도달했고, 실제 운영 환경에서 사용 사례가 늘어나고 있으며, 건강한 커뮤니티가 형성되기 시작한 유망한 프로젝트들입니다. 졸업 등급으로 나아가기 위한 잠재력을 충분히 보여주고 있지만, 아직 더 많은 사용자 피드백, 기능 개선, 커뮤니티 성장이 필요한 단계입니다.
  • 특징: 혁신적인 기술을 비교적 안정적으로 도입해보고자 하는 사용자들이 관심을 가질 만합니다. 프로젝트 커뮤니티가 활발하게 활동하며 빠르게 발전하는 경우가 많습니다.
  • 대표적인 예시: 아르고(Argo)플럭스(Flux)크로스플레인(Crossplane)실리움(Cilium)서비스메시 인터페이스(SMI)오픈텔레메트리(OpenTelemetry), 클라이오(CRI-O) 등이 있습니다. (역시 지속적으로 업데이트됩니다.)

샌드박스 (Sandbox) 등급:
  • 의미: 클라우드 네이티브 생태계에 기여할 가능성이 있는 초기 단계의 실험적인 프로젝트들입니다. 혁신적인 아이디어나 새로운 접근 방식을 제시하지만, 아직 기술적인 검증이나 커뮤니티 형성, 실제 사용 사례 확보 등이 더 필요한 단계입니다.
  • 특징: CNCF는 이 단계의 프로젝트들이 자유롭게 실험하고 발전할 수 있도록 기본적인 지원과 가시성을 제공합니다. 사용자 입장에서는 최신 기술 동향을 파악하거나 특정 문제를 해결할 새로운 솔루션을 찾는 데 참고할 수 있지만, 핵심 운영 환경에 바로 도입하기에는 신중한 검토와 테스트가 필요합니다.
  • 대표적인 예시: 매우 다양한 분야의 수많은 프로젝트들이 샌드박스 단계에 있으며, 빠르게 추가되거나 변경됩니다. (예: KubeEdge, LitmusChaos, Volcano, WasmEdge 등)

이러한 프로젝트 등급 시스템은 여러분이 CNCF 생태계 내의 수많은 기술 중에서 자신의 목적과 상황에 맞는 최적의 도구를 선택하는 데 매우 유용한 가이드가 됩니다. 안정성이 중요하다면 졸업 등급 프로젝트를, 새로운 기술을 적극적으로 탐색하고 싶다면 인큐베이팅이나 샌드박스 프로젝트를 살펴보는 식으로 현명한 기술 의사결정을 내릴 수 있습니다.

1.3.2.3 CNCF Landscape 소개

클라우드 네이티브 생태계는 앞서 살펴본 것처럼 컨테이너, 오케스트레이션, 서비스 메시, 모니터링, 로깅, 스토리지, 네트워킹, 서버리스 등 매우 다양한 기술 영역과 수많은 프로젝트들로 구성되어 있습니다. 마치 거대한 도시처럼 복잡하고 끊임없이 변화하는 이 생태계를 처음 접하는 분들은 어디서부터 시작해야 할지, 어떤 기술들이 있는지, 그리고 그 기술들이 서로 어떻게 연결되는지 파악하기 어려울 수 있습니다.

이러한 어려움을 해소하고 클라우드 네이티브 생태계의 전체적인 모습을 한눈에 조망할 수 있도록 CNCF가 제공하는 매우 유용한 도구가 바로 CNCF Landscape (landscape.cncf.io) 입니다. 이름 그대로, 클라우드 네이티브 기술 세계의 ‘풍경’ 또는 ‘지도’ 라고 생각하시면 됩니다.

CNCF와 클라우드 네이티브의 관계

CNCF Landscape는 웹 기반의 인터랙티브 맵 형태로 제공되며, 다음과 같은 특징과 기능을 가지고 있습니다.

  • 카테고리별 분류: 클라우드 네이티브 기술 스택을 앞서 설명한 주요 카테고리(예: Orchestration & Management, App Definition & Development, Observability and Analysis 등)로 명확하게 나누고, 각 카테고리에 속하는 프로젝트들을 시각적으로 배치하여 보여줍니다. 이를 통해 어떤 기술 영역들이 존재하고, 각 영역에는 어떤 종류의 도구들이 있는지 체계적으로 파악할 수 있습니다.
  • 방대한 프로젝트 정보: CNCF가 직접 호스팅하는 졸업, 인큐베이팅, 샌드박스 프로젝트뿐만 아니라, CNCF 회사가 아니거나 아직 CNCF에 속하지 않았더라도 클라우드 네이티브 생태계에서 중요하게 사용되는 다양한 오픈 소스 및 상용 솔루션들까지 포함하여 방대한 정보를 제공합니다. 각 프로젝트 로고를 클릭하면 해당 프로젝트의 웹사이트, GitHub 저장소, 문서 등으로 바로 연결되어 더 자세한 정보를 탐색할 수 있습니다.
  • 필터링 및 검색 기능: 사용자는 특정 카테고리, 프로젝트 등급(Graduated, Incubating, Sandbox), 라이선스 유형, 회사 등을 기준으로 프로젝트를 필터링하여 원하는 정보에 쉽게 접근할 수 있습니다. 특정 프로젝트 이름을 직접 검색하는 기능도 제공됩니다.
  • 생태계 동향 파악: Landscape는 지속적으로 업데이트되므로, 어떤 기술 영역이 빠르게 성장하고 있는지, 어떤 새로운 프로젝트들이 등장하고 있는지 등 클라우드 네이티브 생태계의 최신 동향을 파악하는 데에도 유용합니다.

CNCF Landscape는 클라우드 네이티브를 배우는 여러분에게는 보물 지도와도 같습니다. 처음에는 그 방대함에 압도될 수도 있지만, 이 지도를 통해 다음과 같은 도움을 받을 수 있습니다.

  • 학습 로드맵 구상: 내가 관심 있는 기술 영역(예: 모니터링)에는 어떤 대표적인 도구들(예: Prometheus, Grafana, Jaeger)이 있는지 파악하고 학습 계획을 세울 수 있습니다.
  • 기술 선택 시 참고: 특정 문제를 해결하기 위한 도구를 찾을 때, 관련 카테고리에서 어떤 옵션들이 있는지 비교하고 검토할 수 있습니다. 프로젝트 등급 정보를 함께 확인하면 더욱 현명한 선택이 가능합니다.
  • 생태계 이해도 증진: 쿠버네티스 외에도 얼마나 다양한 기술들이 클라우드 네이티브 생태계를 구성하고 있는지, 그리고 이 기술들이 어떻게 서로 연관되어 시너지를 내는지 큰 그림을 이해하는 데 도움이 됩니다.

결론적으로, CNCF는 클라우드 네이티브 기술 스택을 명확히 정의하고, 프로젝트 등급 시스템을 통해 기술의 성숙도와 신뢰도에 대한 가이드라인을 제공하며, CNCF Landscape라는 지도를 통해 이 복잡한 생태계를 누구나 쉽게 탐색하고 이해할 수 있도록 돕고 있습니다. 이러한 CNCF의 노력 덕분에 우리는 클라우드 네이티브라는 거대한 기술의 바다를 표류하지 않고, 명확한 방향을 가지고 항해하며 필요한 기술들을 효과적으로 배우고 활용할 수 있는 것입니다.