GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara Kerja Cloud Containers Dan Manfaatnya

Tren teknologi datang dan pergi, tetapi wadah cloud adalah salah satu teknologi yang akan tetap ada. Asal-usul mereka dapat ditelusuri kembali ke Unix 1982, tetapi wadah tidak mendapatkan penerimaan luas sampai dekade terakhir sebagai langkah logis berikutnya dari virtualisasi. Saat ini mereka adalah sarana populer untuk modernisasi dan penerapan aplikasi.

Tujuan containerization – yaitu, proses migrasi aplikasi lama ke container – adalah untuk menawarkan cara yang lebih baik untuk membuat, mengemas, dan menerapkan aplikasi perangkat lunak yang kompleks di berbagai lingkungan. Containerization menyediakan cara untuk membuat aplikasi tidak terlalu rumit untuk diterapkan, diperbarui/diubah/dimodifikasi, dan diskalakan.

Kontainer semakin populer di lingkungan cloud karena bobotnya yang ringan dibandingkan dengan mesin virtual (VM). Banyak organisasi melihat container sebagai alternatif beban kerja skala besar VM.

Apa Itu Cloud Containers?

Wadah komputasi berisi kode aplikasi beserta pustaka dan dependensi fungsinya sehingga dapat dijalankan di mana saja; baik di PC desktop, infrastruktur server TI tradisional, atau cloud.

Mereka kecil, cepat, dan portabel karena tidak seperti mesin virtual, container tidak perlu menyertakan OS yang lengkap di setiap instance. Yang mereka butuhkan hanyalah library dan dependensi yang diperlukan untuk menjalankan aplikasi, serta memanfaatkan fitur lain dan sumber daya yang diperlukan dari OS host.

Wadah dibuat dari gambar wadah, yang merupakan templat yang berisi sistem, aplikasi, dan lingkungan wadah. Dengan gambar container, sebagian besar pekerjaan membuat container sudah selesai untuk Anda. Yang harus Anda lakukan adalah menambahkan logika komputasi. Ada banyak templat berbeda untuk membuat wadah khusus penggunaan, seperti halnya pustaka dan templat untuk mengembangkan kode.

Ada beberapa situs template container tetapi pemimpin pasarnya adalah Docker, yang memulai tren container pada tahun 2013. Docker adalah seperangkat alat yang memungkinkan pengguna untuk membuat gambar container, mendorong atau menarik gambar dari registry eksternal, dan menjalankan serta mengelola container di banyak lingkungan yang berbeda. Ini juga menjalankan pusat distribusi template kontainer terbesar. Untuk mempelajari cara menginstal Docker di sistem Linux Anda, lihat panduan Menginstal dan Menggunakan Docker.

Wadah berkurang secara signifikan dalam ukuran dan kompleksitas, dan seringkali hanya melakukan satu fungsi. Hanya karena mereka kecil bukan berarti mereka tidak harus dikelola. Container dipelihara melalui proses yang dikenal sebagai orkestrasi, yang mengotomatiskan sebagian besar tugas operasional yang diperlukan untuk menjalankan beban kerja dan layanan dalam container.

Orkestrasi mencakup pengelolaan siklus hidup container, penyediaan, penerapan, peningkatan atau penurunan skala, jaringan, penyeimbangan beban, dan banyak lagi. Ada beberapa aplikasi orkestrasi, tetapi yang paling populer adalah Kubernetes yang awalnya dirancang oleh Google dan sekarang dikelola oleh Cloud Native Computing Foundation.

Container vs. Mesin Virtual

Kontainer secara teratur dibandingkan dengan VM di sini dan di tempat lain dan untuk alasan yang baik. Mereka beroperasi pada konsep yang sama, yaitu pengoperasian beberapa lingkungan aplikasi pada perangkat keras fisik yang sama.

VM dianggap sebagai dasar dari komputasi awan generasi pertama. Dengan munculnya komputasi 64-bit, server berevolusi melewati batas memori 4GB dari prosesor 32-bit. Kedatangan multi-core menghasilkan kekuatan pemrosesan untuk beberapa lingkungan virtual. Dengan memori dan inti yang cukup, memungkinkan untuk menjalankan seratus atau lebih VM pada satu sistem fisik.

VM membutuhkan lingkungan operasi penuh yang menghabiskan satu hingga dua gigabyte memori, terlepas dari apakah itu di Windows Server, atau versi Linux. Wadah adalah lingkungan operasi yang berkurang secara signifikan dan hanya menggunakan memori 6 MB.

Manfaatnya adalah Anda dapat memiliki ratusan container di satu server yang tangguh, selama Anda memiliki memori dan kekuatan pemrosesan untuk menangani semuanya.

VM hypervisors memvirtualisasikan perangkat keras fisik, dan kontainer memvirtualisasikan sistem operasi. Hypervisor mengelola dan mengoordinasikan semua I/O dan aktivitas mesin, menyeimbangkan beban, dan memproses semua tugas fisik seperti pemrosesan dan pergerakan data.

Manajer kontainer seperti Kubernetes menangani tugas perangkat lunak yang tidak disiapkan untuk kontainer. Aplikasi di dalam wadah memiliki apa yang dibutuhkannya dengan pustaka dan dependensinya. Jika memerlukan sesuatu yang lain dari OS, pengelola kontainer akan menanganinya.

Ini bukan keputusan salah satu/atau dalam hal VM dan container. Mereka dapat hidup berdampingan dengan mudah, dengan container di dalam VM yang berfungsi.

Bagaimana Cara Kerja Cloud Container?

Teknologi kontainer lahir dengan pemisahan partisi dan proses chroot pertama di Unix, yang kemudian ditambahkan ke Linux. Wadah menggabungkan file ketergantungan dan pustakanya dalam wadah daripada mengandalkan OS yang mendasarinya. Aplikasi yang berjalan dalam container bukanlah aplikasi yang kompleks dan lengkap yang berjalan di lingkungan virtual atau non-virtual standar. Setiap container beroperasi dalam isolasi virtual dengan setiap aplikasi mengakses kernel OS bersama tanpa memerlukan VM.

Wadah cloud dirancang untuk memvirtualisasikan satu aplikasi, baik itu aplikasi tujuan tunggal sederhana atau database MySQL. Kontainer memiliki batas isolasi di tingkat aplikasi daripada di tingkat server sehingga kontainer diisolasi jika ada masalah. Jika ada aplikasi mogok atau konsumsi sumber daya berlebihan yang tidak dapat dijelaskan oleh suatu proses, itu hanya memengaruhi wadah individu itu dan bukan seluruh VM, atau seluruh server. Orkestra dapat memutar wadah lain untuk menggantikan wadah yang bermasalah. Itu juga mematikan dan memulai ulang penampung yang bermasalah.

Manfaat Container di Cloud Computing

Manfaat menggunakan wadah sangat banyak. Pertama, penggunaan template mirip dengan cara kerja class dan library dalam pemrograman berorientasi objek (OOP). Di OOP, Anda membuat kelas atau objek lalu menggunakannya kembali di beberapa aplikasi. Hal yang sama berlaku untuk kontainer. Gambar kontainer tunggal digunakan untuk membuat beberapa kontainer. Konsep pewarisan OOP juga berlaku untuk container karena gambar container bertindak sebagai induk untuk gambar container lain yang lebih disesuaikan.

Kontainer berjalan secara konsisten di desktop, server lokal, atau cloud. Ini membuat pengujian mereka sebelum penerapan tidak rumit. Beberapa skenario memerlukan test bed dalam skala yang serupa dengan pengaturan penerapan, yang berarti mendedikasikan sumber daya yang cukup besar untuk lingkungan pengujian. Container dapat diuji secara lokal sebelum penerapan cloud dengan pengetahuan bahwa performa akan konsisten.

Keuntungan utama container, terutama jika dibandingkan dengan VM, adalah containernya ringan dan portabel. Kontainer berbagi kernel OS mesin, yang menghilangkan banyak overhead. Ukurannya yang lebih kecil dibandingkan dengan VM berarti mereka dapat berputar dengan cepat dan mendukung aplikasi cloud-native yang lebih baik yang diskalakan secara horizontal.

  1. Mereka tidak bergantung pada platform:Container membawa semua dependensinya, dan Anda dapat menggunakannya pada berbagai varian Linux selama Anda tidak melakukan panggilan kernel.

  2. Mendukung arsitektur pengembangan modern:Karena kombinasi portabilitas/konsistensi penerapannya di seluruh platform dan ukurannya yang kecil, container sangat cocok untuk metodologi pengembangan dan aplikasi modern, seperti Agile, DevOps, tanpa server, dan layanan mikro.

  3. Meningkatkan kinerja:Aplikasi dalam container biasanya merupakan aplikasi besar yang dipecah menjadi beberapa bagian yang dapat dikelola. Hal ini memiliki banyak manfaat, salah satunya adalah peningkatan kinerja karena jika suatu komponen membutuhkan sumber daya yang lebih banyak, container secara otomatis diskalakan untuk menawarkan lebih banyak inti/memori/jaringan CPU, kemudian diturunkan skalanya saat beban turun.

  4. Debug yang efisien:Manfaat lain dari containerization dibandingkan aplikasi monolitik adalah menjadi lebih cepat untuk menemukan kemacetan kinerja. Dengan aplikasi monolitik, pengembang harus melakukan banyak trial and error/proses eliminasi untuk menemukan hambatan kinerja. Saat dipecah menjadi komponen, kode yang melanggar menjadi lebih terlihat dan pengembang dapat memperbesar lokasi masalah dengan lebih cepat.

  5. Dukungan hybrid/multi-cloud:Karena portabilitasnya, container dapat bermigrasi bolak-balik antara lokal dan cloud. Mereka juga dapat berpindah dari satu penyedia cloud ke penyedia cloud lainnya.

  6. Modernisasi aplikasi:Cara umum untuk memodernisasi aplikasi lokal lama adalah dengan menyimpannya dan memindahkannya "sebagaimana adanya" ke cloud. Model ini dikenal sebagai "angkat dan geser", dan tidak direkomendasikan. Aplikasi lokal berperilaku berbeda dari aplikasi cloud-native dan hanya memindahkan aplikasi lokal ke cloud tidak berubah tidak memanfaatkan manfaat cloud seperti penskalaan otomatis ke atas dan ke bawah.

  7. Meningkatkan pemanfaatan:Di bawah aplikasi monolitik, seluruh aplikasi dan semua penggunaan memorinya harus meningkatkan kinerja. Ini memperlambat server. Dengan aplikasi dalam container, hanya komponen yang membutuhkan kinerja intensif tersebut yang perlu diskalakan. Itu melakukannya secara otomatis, dan orkestra meningkatkan sumber daya saat diperlukan, lalu menurunkan skala saat tugas selesai.

Kesimpulan

Container adalah cara yang semakin populer bagi perusahaan untuk memigrasikan aplikasi lokal ke cloud dan menuai semua manfaat yang dibawa cloud:skala, elastisitas, pengembangan DevOps, dan pembongkaran sumber daya lokal ke penyedia cloud.

Teknologinya sudah matang, dengan sejumlah pesaing Docker, termasuk Microsoft Azure, dan pesaing Kubernetes, seperti Red Hat OpenShift. Sebagian besar penyedia cloud menawarkan beberapa layanan penampung dan orkestrasi siap pakai, termasuk kami di sini di Linode, dengan layanan Kubernetes yang dikelola.


Docker
  1. Cara Mengekspor dan Mengimpor Kontainer Docker

  2. Cara Menginstal, Menjalankan, dan Menghapus Aplikasi di Dalam Wadah Docker – Bagian 2

  3. Cara Menginstal Docker dan Menjalankan Wadah Docker di Ubuntu

  1. Pemantauan Docker Containers:Manfaat, Praktik Terbaik, dan Alat yang Harus Dimiliki

  2. Cara Berbagi Data Antar Wadah Docker

  3. Cara Mendaftar Kontainer Docker

  1. Cara Membuat dan Meluncurkan Kontainer Linux LXC dengan Perintah LXC

  2. Cara mencadangkan dan memulihkan wadah Docker

  3. Cara Menjeda dan Melanjutkan Wadah Docker