Krajobraz CNCF

Paulina Cirocka 05 grudnia 2022 4 min czytania
Contents

Nie ma wątpliwości, że aplikacje cloud-native zrewolucjonizowały świat IT. Aby wspierać rozwój cloud-native i związanych z nimi projektów, w 2015 roku powstała organizacja Cloud Native Computing Foundation (CNCF). Fundacja ta gromadzi projekty i narzędzia dedykowane środowiskom cloud-native w ramach tzw. krajobrazu CNCF, o którym więcej przeczytasz w tym artykule.

Jak powstało CNCF?

W 2014 roku Google rozpoczęło projekt open-source do orkiestracji kontenerów o nazwie Borg. Jednak projekt nie został wdrożony w szerokiej skali, więc rok później Google nawiązało współpracę z Linux Foundation (założoną w 2011 roku), tworząc Cloud Native Computing Foundation. Borg został rozwinięty i przemianowany na Kubernetes, a głównym celem CNCF było wspieranie współpracy między Kubernetes a innymi narzędziami.

Fundacja ma bardzo rygorystyczny proces akceptacji projektów do krajobrazu CNCF. Projekt musi zostać zatwierdzony większością głosów przez Technical Oversight Committee (TOC) – komitet składający się z przedstawicieli firm członkowskich CNCF. Głosowanie ma na celu utrzymanie wysokiej jakości i zdrowia ekosystemu.

CNCF wyróżnia 3 etapy dojrzałości kodu projektu:

  • Sandbox – bardzo wczesny etap, w którym projekt potrzebuje wsparcia społeczności, aby się rozwinąć. Wybierany ze względu na duży potencjał.
  • Incubating – po spełnieniu wymogów Sandbox i wdrożeniu w co najmniej 3 firmach, projekt trafia do inkubacji. Otrzymuje wsparcie zespołu, który rozwija nowe funkcjonalności.
  • Graduation – projekt musi wykazać dobre wyniki, posiadać aktywnych kontrybutorów z co najmniej 2 organizacji, mieć uporządkowane procesy oraz spełnić wymagania Linux Foundation Core Infrastructure, aby uzyskać odznakę „Best Practices”.

Obecnie ponad 120 projektów zostało przyjętych do CNCF po sukcesie Kubernetes.

tower of blocks

Struktura krajobrazu cloud-native

Wszystkie projekty zaadoptowane przez CNCF są podzielone na 6 głównych kategorii, z warstwami dedykowanymi różnym obszarom tworzenia ekosystemu cloud-native.

Provisioning (Zarządzanie zasobami)

Podstawowe narzędzia niezbędne do działania aplikacji cloud-native i technologii wspierających.

  • Automation and Configuration – wsparcie szybkiego wdrażania zasobów cloud-native.
  • Container Registry – przechowywanie obrazów kontenerów, wspieranie ich wykorzystania przez inne narzędzia.
  • Security & Compliance – bezpieczeństwo w ekosystemie cloud-native.
  • Key Management – zarządzanie hasłami, dostępami i sekretami.

Runtime (Środowisko uruchomieniowe)

Narzędzia służące do uruchamiania kontenerów i zasobów.

  • Container Runtime – uruchamianie aplikacji kontenerowych i zarządzanie ich cyklem życia.
  • Cloud Native Storage – magazynowanie danych i tworzenie jednolitych interfejsów dla urządzeń.
  • Cloud Native Network – umożliwia kontenerom komunikację poprzez wirtualną sieć.

Orchestration & Management (Orkiestracja i zarządzanie)

Narzędzia do zarządzania aplikacjami cloud-native na dużą skalę.

  • Scheduling & Orchestration – zarządzanie zasobami, harmonogramowanie, automatyzacja zadań.
  • Coordination & Service Discovery – komunikacja między komponentami aplikacji cloud-native.
  • Remote Procedure Call (RPC) – transfer wiadomości w klastrach cloud-native.
  • Service Proxy – przekierowywanie ruchu między usługami.
  • API Gateway – komunikacja API między użytkownikami, aplikacjami i mikroserwisami.
  • Service Mesh – zarządzanie ruchem i komunikacją między usługami, zwiększając niezawodność i obserwowalność.

App Definition & Development (Tworzenie i definiowanie aplikacji)

Narzędzia do planowania, budowy i wdrażania aplikacji cloud-native.

  • Database – bazy danych natywne dla chmury lub możliwe do zintegrowania.
  • Streaming & Messaging – komunikacja między usługami.
  • Application Definition & Image Build – wsparcie dla deweloperów kontenerów.
  • CI/CD – narzędzia do zarządzania pipeline’ami i automatyzacji wdrożeń.

Observability & Analysis (Obserwowalność i analiza)

Dostarczają informacji o działaniu infrastruktury cloud-native i wskazują obszary do poprawy.

  • Monitoring – zbieranie metryk, wizualizacja, tworzenie alertów.
  • Logging – gromadzenie danych operacyjnych i błędów.
  • Tracing – śledzenie ścieżki żądania w rozproszonym systemie.
  • Chaos Engineering – symulowanie błędów w celu sprawdzenia odporności systemu.

Platforms (Platformy)

Narzędzia zamieniające aplikacje cloud-native w gotowe rozwiązania dla firm.

  • Certified Kubernetes – Distribution
  • Certified Kubernetes – Hosted
  • Certified Kubernetes – Installer
  • PaaS/Container Service

Cloud Native Trail Map

Na podstawie krajobrazu CNCF, fundacja opracowała Cloud Native Trail Map – rekomendowaną ścieżkę adopcji cloud-native, składającą się z 10 kroków (większość z sugerowanymi narzędziami):

  1. Konteneryzacja
  2. CI/CD
  3. Orkiestracja i definicja aplikacji (użyj Kubernetes)
  4. Obserwowalność i analiza (użyj Prometheus)
  5. Service proxy, discovery i mesh (użyj CoreDNS, Linkerd, Envoy)
  6. Sieci i polityki (użyj Calico lub Weave Net)
  7. Rozproszone bazy danych i storage (użyj Vitess)
  8. Streaming i messaging (użyj gRPC lub NATS)
  9. Rejestr kontenerów i środowisko uruchomieniowe (użyj rkt lub Harbor)
  10. Dystrybucja oprogramowania (użyj Sigstore lub Notary)
Pin on a map
CNCF CloudNative CloudNativeComputingFoundation CNCFlandscape
paulina.webp
Paulina Cirocka
Marketing Specialist

Doświadczona specjalistka ds. marketingu, specjalizuje się w tworzeniu treści. Pracuje dla firm IT od 2019 roku. W Devopsity odpowiada nie tylko za zarządzanie marketingiem, ale także za employer branding.

Spis treści

Przeczytaj również:

Poprzedni post Następny post