Hem bir CloudFoundry (geçmiş) hem de Kubernetes (şimdiki) işleyicisi olarak, muhtemelen bunu yanıtlamak için benzersiz bir şekilde nitelikliyim.
PaaS benzeri
CloudFoundry'ye "Uygulama PaaS" ve Kubernetes'e "Konteyner PaaS" demeyi seviyorum, ancak her iki projenin de aynı pazarlarda rekabet edecek şekilde zamanla değiştiği göz önüne alındığında, ayrım oldukça ince ve akıcı.
İkisi arasındaki fark, CF'nin bir (12 faktörlü) kullanıcı uygulamasını (örneğin, jar veya mücevher) ve Heroku tarzı bir yapı paketini (örneğin Java + Tomcat veya Ruby) alan ve bir damlacık üreten (bir Docker görüntüsü). CF, konteynerleştirme arayüzünü kullanıcıya ifşa etmez, ancak Kubernetes bunu yapar.
seyirci
CloudFoundry'nin birincil hedef kitlesi, Heroku tarzı derleme paketlerini kullanarak 12 faktörlü durum bilgisiz uygulamaları dağıtmak isteyen kurumsal uygulama geliştiricileridir.
Kubernetes'in izleyici kitlesi, hem durum bilgisi olmayan uygulama hem de kendi konteynerlerini sağlayan durum bilgisi olan hizmet geliştiricileri dahil olmak üzere biraz daha geniştir.
Bu ayrım gelecekte değişebilir:
Özellik Karşılaştırması
Her iki proje olgunlaştıkça ve rekabet ettikçe, benzerlikleri ve farklılıkları değişecektir. Öyleyse aşağıdaki özellik karşılaştırmasını bir tuz tanesi ile yapın.
Hem CF hem de K8'ler, kapsayıcıya alma, ad alanı, kimlik doğrulama gibi birçok benzer özelliği paylaşır.
Kubernetes'in rekabet avantajları:
- Bağımsız olarak ölçeklemek yerine, bir ağ yığınını paylaşan kapsayıcıları gruplayın ve ölçekleyin
- Kendi konteynerinizi getirin
- Durum bilgisi olan direnç katmanı
- Daha büyük, daha aktif OSS topluluğu
- Değiştirilebilir bileşenler ve 3. taraf eklentilerle daha genişletilebilir mimari
- Ücretsiz web GUI
CloudFoundry'nin rekabet avantajları:
- Olgun kimlik doğrulama, kullanıcı gruplaması ve çoklu kiracılık desteği [x]
- Kendi uygulamanızı getirin
- Dahil olan yük dengeleyici
- BOSH [x] tarafından konuşlandırıldı, ölçeklendi ve canlı tutuldu
- Sağlam günlük kaydı ve metrik toplama [x]
- Kurumsal web GUI [x]
[x] Bu özellikler Diego'nun parçası değildir veya Lattice'e dahil değildir.
yayılma
CloudFoundry'nin rekabet avantajlarından biri, temel CF bileşenlerinin ölçeklendirilmesi, yeniden canlandırılması ve izlenmesi gibi özellikleri etkinleştiren olgun bir dağıtım motoruna (BOSH) sahip olmasıdır. BOSH ayrıca, takılabilir bir bulut sağlayıcı soyutlamasına sahip birçok IaaS katmanını destekler. Ne yazık ki, BOSH'un öğrenme eğrisi ve dağıtım yapılandırma yönetimi kabus gibi. (Bir BOSH sorumlusu olarak bunu doğru bir şekilde söyleyebileceğimi düşünüyorum.)
Kubernetes'in dağıtım soyutlaması henüz emekleme aşamasında. Çekirdek depoda birden çok hedef ortam mevcuttur, ancak hepsi çalışmıyor, iyi test edilmiyor veya birincil geliştiriciler tarafından desteklenmiyor. Bu çoğunlukla bir olgunluk meselesi. Bunun zamanla gelişmesi ve soyutlamada artması beklenebilir. Örneğin, DKG üzerinde Kubernetes varolan için Kubernetes dağıtma sağlayan DKG tek komutla küme.
Tarihsel Bağlam
Diego, CF's Droplet Execution Agent'ın yeniden yazımıdır. Başlangıçta Kubernetes duyurulmadan önce geliştirildi ve rekabet ortamı geliştikçe daha fazla özellik kapsamına girdi. Asıl amacı damlacıklar (kullanıcı uygulaması + CF buildpack) oluşturmak ve onları Warden (Go'da yeniden yazıldığında Garden olarak yeniden adlandırıldı) konteynerlerinde çalıştırmaktı. Başlangıcından bu yana, bir miktar CloudFoundry-lite olan Lattice olarak yeniden paketlendi (bu ad mevcut bir proje tarafından alınmış olsa da)). Bu nedenle, Lattice, kullanıcı kitlesini ve kapsamını kasıtlı olarak azalttığı ve onu "girişimciliğe hazır" hale getirecek özellikleri açık bir şekilde kaçırdığı için biraz oyuncağa benzer. CF'nin zaten sağladığı özellikler. Bunun nedeni kısmen, Kafesin daha karmaşık CF'den gelen ek yüklerin bir kısmı olmadan çekirdek bileşenleri test etmek için kullanılmasıdır, ancak Lattice'i güvenlik ve çoklu kiracılığın çok da önemli olmadığı dahili yüksek güven ortamlarında da kullanabilirsiniz. .
CloudFoundry ve Warden'ın (konteyner motoru) da Docker'dan birkaç yıl önce geçtiğini belirtmek gerekir.
Kubernetes ise, Google tarafından BORG ve Omega ile yıllarca konteyner kullanımına dayalı olarak geliştirilen nispeten yeni bir projedir. Kubernetes, Google'da 3. nesil kapsayıcı düzenlemesi olarak düşünülebilir, aynı Diego, Pivotal / VMware'de 3. nesil kapsayıcı düzenlemesi olarak düşünülebilir (VMware'de v1; Pivotal Labs yardımı ile VMware'de v2; projeyi devraldıktan sonra Pivotal'de v3) .