JavaRush /Java Blog /Random-ID /Siapa Docker, Kubernetes, OpenShift dan bagaimana keterka...
Павел
Level 11

Siapa Docker, Kubernetes, OpenShift dan bagaimana keterkaitannya satu sama lain?

Dipublikasikan di grup Random-ID
Semuanya dimulai dengan pengemasan. Dalam perkembangan industri, ada kebutuhan untuk “mengemas” aplikasi yang telah dirakit, misalnya agar dapat ditransfer ke server tempat ia akan bekerja, dalam bentuk yang mana pengembang merakitnya di komputernya, seperti “pengemasan” harus berfungsi sebagai semacam perlindungan. Hal ini menghilangkan kejutan, seperti saat aplikasi berjalan selama pengujian, namun rusak saat dipindahkan ke produksi. Selain itu, "pengemasan" mengisolasi satu aplikasi dari aplikasi lain, yang terletak di server yang sama, isolasi tersebut memungkinkan satu aplikasi tidak mengganggu pekerjaan aplikasi lain (misalnya: satu aplikasi tidak akan dapat mengambil alih seluruh RAM server, meninggalkan penerapan kedua pada nasibnya). Keuntungan dari "pengemasan" dengan arsitektur layanan mikro sangat terlihat, dan ini dapat dimengerti; ada banyak layanan mikro - banyak aplikasi kecil yang harus berkomunikasi satu sama lain, tetapi pada saat yang sama tidak boleh saling mengganggu. Contohnya adalah lemari berlaci (server), yang di dalamnya terdapat banyak laci yang berbeda-beda, dan kita dapat dengan mudah memindahkan kaus kaki yang berbeda dari satu laci ke laci lainnya, dan pada saat yang sama tidak akan tercampur satu sama lain atau dengan celana dalam. Siapa Docker, Kubernetes, OpenShift dan bagaimana keterkaitannya satu sama lain?  - 1 Kemasannya dibuat dengan alat virtualisasi. Dahulu kala, mesin virtual (VM) digunakan sebagai “pengemasan”. Orang-orang tua akan mengingat bagaimana mereka menerapkan Windows XP pada Vista di mesin virtual. Sekarang VM untuk pengemasan aplikasi sudah ketinggalan zaman. Kontainer telah mengambil alih dunia. Karena sifatnya: lebih ringan, lebih produktif, dan lebih aman. Lebih detailnya: apa perbedaan container dengan mesin virtual? Siapa Docker, Kubernetes, OpenShift dan bagaimana keterkaitannya satu sama lain?  - 2 Anda perlu mengingat beberapa keuntungan dari container: • ukurannya lebih kecil (memakan lebih sedikit memori di server); • memiliki akses ke sumber daya server bersama (RAM, waktu komputasi prosesor); • memiliki portabilitas yang lebih baik ke lingkungan lain (mulai dari pengujian hingga industri); • memberikan kecepatan peluncuran yang lebih tinggi (karena wadahnya ringan, maka peluncurannya lebih cepat). Docker adalah ibu dari container. Ketika mereka mengatakan wadah, yang mereka maksud adalah Docker. Docker adalah perangkat lunak untuk mengotomatiskan penerapan dan pengelolaan aplikasi di lingkungan dalam container. Dengan menggunakan contoh, Docker adalah persilangan antara desainer online dan printer 3D dengan crane. Artinya, ia dapat mendesain terlebih dahulu template (gambar) untuk suatu wadah, mencetak (membuat) wadah tersebut sesuai dengan kondisi (gambar) yang diberikan, lalu memindahkannya ke mana pun diperlukan. Dockerfiles digunakan sebagai pengganti tuas. Proses pengelolaannya sederhana: Anda menulis file, perintah, menjalankannya, dan melihat apa yang terjadi. Siapa Docker, Kubernetes, OpenShift dan bagaimana keterkaitannya satu sama lain?  - 3 Kenalan pertama dengan Docker Docker Compose - Docker yang ditingkatkan Sekarang mari kita lihat skenario di mana beberapa container harus dijalankan di satu lokasi. Utilitas yang digunakan untuk ini adalah Docker Compose. Docker Compose adalah alat yang disertakan dengan Docker. Ini dirancang untuk memecahkan masalah yang terkait dengan penerapan proyek. Perbedaan antara Docker dan Docker Compose: Docker digunakan untuk mengelola container individual. Docker Compose digunakan untuk mengelola beberapa container secara bersamaan. Alat ini menawarkan kemampuan yang sama seperti Docker, tetapi memungkinkan Anda bekerja dengan struktur yang lebih kompleks. Siapa Docker, Kubernetes, OpenShift dan bagaimana keterkaitannya satu sama lain?  - 4 Skenario umum untuk menggunakan Docker Compose: Bayangkan Anda adalah seorang pengembang proyek web. Proyek ini mencakup dua situs web. Yang pertama memungkinkan para pebisnis membuat toko online hanya dengan beberapa klik. Yang kedua ditujukan untuk dukungan pelanggan. Kedua situs ini berinteraksi dengan database yang sama. Proyek Anda menjadi semakin populer, dan ternyata kekuatan server yang menjalankannya tidak lagi mencukupi. Akibatnya, Anda memutuskan untuk memindahkan seluruh proyek ke komputer lain. Jika Anda belum pernah menggunakan sesuatu seperti Docker Compose, Anda harus memigrasikan dan mengkonfigurasi ulang container satu per satu, dengan harapan Anda tidak akan melupakan apa pun dalam prosesnya. Jika Anda menggunakan Docker Compose, memindahkan proyek Anda ke server baru adalah masalah yang dapat diselesaikan dengan menjalankan beberapa perintah. Untuk menyelesaikan transfer proyek ke lokasi baru, Anda hanya perlu membuat beberapa pengaturan dan mengunggah salinan cadangan database ke server baru. DockerComposer Khas: Siapa Docker, Kubernetes, OpenShift dan bagaimana keterkaitannya satu sama lain?  - 5 Yang perlu Anda ingat di sini: Kontainer adalah sarana utama untuk “mengemas” aplikasi. Docker menangani container, membuat image container, mengambil dan memindahkan container. Untuk mengelola banyak container secara bersamaan, Docker Compose digunakan, yang merupakan bagian dari Docker. Program-program ini adalah perangkat lunak gratis (gratis - singkatnya) Kubernetes (K8s) - Otomatisasi Docker Jadi kami menerapkan container, kami tahu cara mentransfernya “dalam batch” dari mesin ke mesin. Namun tiba-tiba salah satu kontainer terjatuh! Apa yang harus dilakukan? Siapa yang akan membesarkannya lagi? Siapa Docker, Kubernetes, OpenShift dan bagaimana keterkaitannya satu sama lain?  - 6 Tentu saja, Anda dapat melakukannya secara manual, melalui Docker. Tetapi Anda harus melakukan sesuatu, menulis sesuatu, Anda memerlukan semacam alat otomatisasi. Di sinilah Kubernetes (disingkat K8s) berperan, dan juga akan menangani pengelolaan dan orkestrasi (manajemen otomatis entitas terkait) container. Dengan K8 yang Anda inginkan, Anda tidak perlu memantau kontainer siang dan malam. Cukup dengan menentukan skenario perilaku, dan K8 akan melakukan semuanya sendiri. Fitur utama Kubernetes 1. Menyediakan skalabilitas dan pengelolaan konfigurasi Anda. 2. Anda dapat menjelaskan apa yang ingin Anda dapatkan saat menerapkan cluster, dan K8 akan melakukannya. Misalnya, tentukan jumlah pod, berapa banyak memori yang dialokasikan untuknya, menunjukkan jumlah replika (instance) aplikasi yang di-deploy (dalam container) pada pod. 3. Bertanggung jawab untuk menjaga sistem dalam keadaan tertentu, jika ada yang terjatuh maka K8s akan mengambilnya, sesuai konfigurasi yang telah ditetapkan. Yang perlu Anda ingat di sini: Kubernetes adalah alat untuk mengatur aplikasi dalam container - mengotomatiskan penerapan, penskalaan, dan koordinasinya dalam sebuah cluster. Mendukung teknologi containerisasi utama, termasuk Docker. K8s adalah perangkat lunak sumber terbuka. Siapa Docker, Kubernetes, OpenShift dan bagaimana keterkaitannya satu sama lain?  - 7 OpenShift adalah Ferrari di dunia virtualisasi, keren, cepat dan mahal. Mengembangkan topik, mari beralih ke OpenShift. OpenShift merupakan add-on pada Kubernetes yang menawarkan fungsi tambahan, langsung siap digunakan, tidak memerlukan konfigurasi yang lama dan rumit, serta dapat langsung diproduksi. Lihat berapa banyak ikon berbeda yang ada di atas Kubernetes. Dan masing-masing dari mereka melakukan hal-hal kerennya sendiri. Siapa Docker, Kubernetes, OpenShift dan bagaimana keterkaitannya satu sama lain?  - 8 Sorotan OpenShift: • Ini adalah produk berbayar, tidak seperti K8; • DevOps yang out of the box, dukungan untuk skenario penerapan canary dasar berwarna biru/hijau; • Dukungan Jenkins bawaan; • Menyediakan alat yang mudah digunakan untuk mengelola dan bekerja dengan cluster; • Memiliki model keamanan yang lebih ketat dan pemantauan bawaan. Perlu ditekankan sekali lagi bahwa OpenShift adalah produk berbayar, tidak seperti Kubernetes. Perbedaannya adalah ini: jika kita menggunakan Kubernetes, maka kita akan menyelesaikan semua masalahnya sendiri. Jika kita berbicara tentang OpenShift, maka ini adalah produk Red Hat yang memecahkan masalah yang muncul dalam dukungan berbayar. Mari kita rangkum: Dalam pengembangan industri terdapat kebutuhan untuk “mengemas” aplikasi; pendekatan ini sangat relevan dalam arsitektur layanan mikro. Wadah adalah sarana utama aplikasi pengemasan. Docker menangani container, membuat image container, mengambil dan memindahkan container. Untuk mengelola banyak container secara bersamaan, Docker Compose digunakan, yang merupakan bagian dari Docker. Program-program ini adalah perangkat lunak bebas. Kubernetes(K8s) adalah alat untuk mengatur aplikasi dalam container - mengotomatiskan penerapan, penskalaan, dan koordinasinya dalam sebuah cluster. Mendukung teknologi containerisasi utama, termasuk Docker. K8s adalah perangkat lunak sumber terbuka. OpenShift adalah add-on pada Kubernetes yang menawarkan fungsionalitas tambahan. Ini adalah produk berbayar, tidak seperti K8, yang ditujukan untuk penggunaan korporat. Menyediakan DevOps yang siap pakai: dukungan untuk skenario penerapan utama biru/hijau, canary, memiliki dukungan bawaan untuk Jenkins dan menyediakan alat yang mudah digunakan untuk mengelola dan bekerja dengan cluster. Memiliki model keamanan yang lebih ketat dan pemantauan bawaan. Bagi mereka yang ingin membuat kode: Mengemas aplikasi Spring Boot ke dalam container Bagaimana cara menerapkan Postgres di Docker dan menyambung ke aplikasi Spring-Boot Webinar: Docker - Bagaimana cara bekerja dengan container? — Pengembangan backend di Java
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION