Jako komisarz CloudFoundry (w przeszłości) i Kubernetes (obecnie), prawdopodobnie mam wyjątkowe kwalifikacje, aby odpowiedzieć na to pytanie.
Podobne do PaaS
Lubię nazywać CloudFoundry „Application PaaS”, a Kubernetes „Container PaaS”, ale różnica jest dość subtelna i płynna, biorąc pod uwagę, że oba projekty zmieniają się z czasem, aby konkurować na tych samych rynkach.
Różnica między nimi polega na tym, że CF ma warstwę przejściową, która pobiera (12-czynnikową) aplikację użytkownika (np. Jar lub klejnot) i pakiet budowania w stylu Heroku (np. Java + Tomcat lub Ruby) i tworzy kroplę (analogicznie do Obraz platformy Docker). CF nie udostępnia użytkownikowi interfejsu konteneryzacji, ale Kubernetes to robi.
Publiczność
Głównymi odbiorcami CloudFoundry są programiści aplikacji dla przedsiębiorstw, którzy chcą wdrażać bezstanowe aplikacje 12-czynnikowe przy użyciu pakietów konstrukcyjnych w stylu Heroku.
Grupa odbiorców Kubernetes jest nieco szersza i obejmuje zarówno programistów aplikacji bezstanowych, jak i programistów usług stanowych, którzy udostępniają własne kontenery.
To rozróżnienie może się zmienić w przyszłości:
Porównanie funkcji
W miarę dojrzewania i rywalizacji obu projektów podobieństwa i różnice ulegną zmianie. Z przymrużeniem oka weźmy więc poniższe porównanie funkcji.
Zarówno CF, jak i K8 mają wiele podobnych funkcji, takich jak konteneryzacja, przestrzeń nazw, uwierzytelnianie,
Przewagi konkurencyjne Kubernetes:
- Grupuj i skaluj zasobniki kontenerów, które współużytkują stos sieciowy, zamiast tylko skalować niezależnie
- Przywieź własny pojemnik
- Stanowa warstwa trwałości
- Większa, bardziej aktywna społeczność OSS
- Bardziej rozszerzalna architektura z wymiennymi komponentami i wtyczkami innych firm
- Darmowy graficzny interfejs użytkownika
Przewagi konkurencyjne CloudFoundry:
- Dojrzałe uwierzytelnianie, grupowanie użytkowników i obsługa wielu dzierżawców [x]
- Przynieś własną aplikację
- Dołączony system równoważenia obciążenia
- Wdrożony, skalowany i utrzymywany przy życiu przez BOSH [x]
- Solidne rejestrowanie i agregacja danych [x]
- Firmowy internetowy interfejs graficzny [x]
[x] Te funkcje nie są częścią Diego ani nie są zawarte w Lattice.
Rozlokowanie
Jedną z przewag konkurencyjnych CloudFoundry jest posiadanie dojrzałego silnika wdrażania BOSH, który umożliwia takie funkcje, jak skalowanie, wskrzeszanie i monitorowanie podstawowych komponentów CF. BOSH obsługuje również wiele warstw IaaS z podłączalną abstrakcją dostawcy chmury. Niestety, krzywa uczenia się BOSH i zarządzanie konfiguracją wdrażania są koszmarem. (Jako osoba zatwierdzająca BOSH myślę, że mogę to powiedzieć z dużą dokładnością.)
Abstrakcja wdrażania Kubernetes jest wciąż w powijakach. W głównym repozytorium dostępnych jest wiele środowisk docelowych, ale nie wszystkie działają, są dobrze przetestowane lub obsługiwane przez głównych programistów. Jest to głównie kwestia dojrzałości. Można by się spodziewać, że z czasem poprawi się i zwiększy abstrakcji. Na przykład Kubernetes na DCOS umożliwia wdrażanie Kubernetes w istniejącym klastrze DCOS za pomocą jednego polecenia.
Kontekst historyczny
Diego jest przeróbką agenta CF Droplet Execution Agent. Został pierwotnie opracowany przed ogłoszeniem Kubernetes i zyskał szerszy zakres funkcji wraz z ewolucją konkurencyjnego krajobrazu. Jego pierwotnym celem było generowanie kropelek (aplikacja użytkownika + pakiet kompilacji CF) i uruchamianie ich w kontenerach Warden (przemianowanych na Ogród po przepisaniu w Go). Od samego początku został również przepakowany jako Lattice , który jest nieco CloudFoundry-lite (chociaż ta nazwa została przyjęta przez istniejący projekt). Z tego powodu Lattice przypomina nieco zabawkę, ponieważ celowo ograniczył odbiorców i zakres użytkowników, wyraźnie brakuje funkcji, które uczyniłyby ją „gotową do użycia w przedsiębiorstwach”. Funkcje, które już zapewnia CF. Dzieje się tak częściowo dlatego, że Lattice jest używany do testowania podstawowych komponentów, bez niektórych narzutów z bardziej złożonego CF, ale można również używać Lattice w wewnętrznych środowiskach o wysokim zaufaniu, w których bezpieczeństwo i wielodostępność nie są tak dużym problemem .
Warto również wspomnieć, że CloudFoundry i Warden (jego silnik kontenerowy) również wyprzedzają Dockera o kilka lat.
Z drugiej strony Kubernetes to stosunkowo nowy projekt, który został opracowany przez Google w oparciu o lata używania kontenerów z BORG i Omega. Kubernetes można traktować jako orkiestrację kontenerów trzeciej generacji w Google, tak samo jak Diego jest orkiestracją kontenerów trzeciej generacji w Pivotal / VMware (wersja 1 napisana w VMware; wersja 2 w VMware z pomocą Pivotal Labs; wersja 3 w Pivotal po przejęciu projektu) .