Sebagai komiter CloudFoundry (dulu) dan Kubernetes (sekarang), saya mungkin secara unik memenuhi syarat untuk menjawab pertanyaan ini.
Seperti PaaS
Saya suka menyebut CloudFoundry sebagai "Application PaaS" dan Kubernetes sebagai "Container PaaS", tetapi perbedaannya cukup halus dan tidak berubah, mengingat kedua project berubah seiring waktu untuk bersaing di pasar yang sama.
Perbedaan antara keduanya adalah bahwa CF memiliki lapisan pementasan yang mengambil aplikasi pengguna (12 faktor) (mis. Jar atau permata) dan buildpack gaya Heroku (mis. Java + Tomcat atau Ruby) dan menghasilkan tetesan (analog dengan Gambar Docker). CF tidak mengekspos antarmuka containerization kepada pengguna, tetapi Kubernetes melakukannya.
Hadirin
Audiens utama CloudFoundry adalah developer aplikasi perusahaan yang ingin menerapkan aplikasi stateless 12 faktor menggunakan buildpack gaya Heroku.
Audiens Kubernetes sedikit lebih luas, termasuk aplikasi stateless dan developer layanan stateful yang menyediakan container mereka sendiri.
Perbedaan ini bisa berubah di masa depan:
Perbandingan Fitur
Saat kedua proyek matang dan bersaing, persamaan dan perbedaan mereka akan berubah. Jadi ambil perbandingan fitur berikut dengan sebutir garam.
Baik CF dan K8 berbagi banyak fitur serupa, seperti containerization, namespacing, otentikasi,
Keunggulan kompetitif Kubernetes:
- Mengelompokkan dan menskalakan pod container yang berbagi tumpukan jaringan, bukan hanya menskalakan secara mandiri
- Bawalah wadah Anda sendiri
- Lapisan persistensi stateful
- Komunitas OSS yang lebih besar dan lebih aktif
- Arsitektur yang lebih dapat diperluas dengan komponen yang dapat diganti dan plugin pihak ketiga
- GUI web gratis
Keunggulan kompetitif CloudFoundry:
- Autentikasi yang matang, pengelompokan pengguna, dan dukungan multi-tenancy [x]
- Bawa aplikasi Anda sendiri
- Termasuk load balancer
- Diterapkan, diskalakan, dan dipertahankan hidup oleh BOSH [x]
- Logging yang kuat dan agregasi metrik [x]
- GUI web perusahaan [x]
[x] Fitur ini bukan bagian dari Diego atau termasuk dalam Lattice.
Penyebaran
Salah satu keunggulan kompetitif CloudFoundry adalah memiliki mesin penerapan yang matang, BOSH, yang memungkinkan fitur seperti penskalaan, kebangkitan, dan pemantauan komponen CF inti. BOSH juga mendukung banyak lapisan IaaS dengan abstraksi penyedia cloud yang dapat dicolokkan. Sayangnya, kurva pembelajaran BOSH dan manajemen konfigurasi penerapan adalah mimpi buruk. (Sebagai pelaku BOSH, saya rasa saya bisa mengatakan ini dengan akurat.)
Abstraksi penerapan Kubernetes masih dalam tahap awal. Beberapa lingkungan target tersedia di repo inti, tetapi tidak semuanya berfungsi, diuji dengan baik, atau didukung oleh pengembang utama. Ini sebagian besar adalah kedewasaan. Orang mungkin berharap ini meningkat dari waktu ke waktu dan meningkatkan abstraksi. Misalnya, Kubernetes di DCOS memungkinkan penerapan Kubernetes ke cluster DCOS yang ada dengan satu perintah.
Konteks Sejarah
Diego adalah penulis ulang Agen Eksekusi Tetesan CF. Awalnya dikembangkan sebelum Kubernetes diumumkan dan telah mengambil lebih banyak cakupan fitur seiring dengan berkembangnya lanskap kompetitif. Tujuan aslinya adalah untuk menghasilkan droplet (aplikasi pengguna + CF buildpack) dan menjalankannya di Warden (berganti nama menjadi Garden saat ditulis ulang di Go). Sejak awal, ini juga telah dikemas ulang sebagai Lattice , yang merupakan CloudFoundry-lite (meskipun nama itu diambil oleh proyek yang ada). Oleh karena itu, Lattice agak seperti mainan, karena sengaja mengurangi audiens dan cakupan pengguna, secara eksplisit kehilangan fitur yang akan membuatnya "siap untuk perusahaan". Fitur yang CF sudah sediakan. Ini sebagian karena Lattice digunakan untuk menguji komponen inti, tanpa beberapa overhead dari CF yang lebih kompleks, tetapi Anda juga dapat menggunakan Lattice di lingkungan kepercayaan tinggi internal di mana keamanan dan multi-tenancy tidak terlalu menjadi perhatian .
Perlu juga disebutkan bahwa CloudFoundry dan Warden (mesin kontainernya) juga sudah ada sebelum Docker, beberapa tahun.
Kubernetes di sisi lain, adalah proyek yang relatif baru yang dikembangkan oleh Google berdasarkan penggunaan kontainer selama bertahun-tahun dengan BORG dan Omega. Kubernetes dapat dianggap sebagai orkestrasi container generasi ke-3 di Google, sama seperti Diego adalah orkestrasi container generasi ke-3 di Pivotal / VMware (v1 ditulis di VMware; v2 di VMware dengan bantuan Pivotal Labs; v3 di Pivotal setelah mengambil alih proyek) .