Lompat ke konten utama

Apa itu kontainer?

Kemasan standar dan untuk aplikasi Anda.

Penjelasan kontainer

Sama seperti industri pengiriman menggunakan kontainer fisik untuk mengisolasi berbagai kargo—misalnya, untuk mengangkut dengan kapal dan kereta—teknologi pengembangan perangkat lunak makin sering menggunakan pendekatan yang disebut kontainerisasi.

Paket standar perangkat lunak yang dikenal sebagai kontainer menggabungkan kode aplikasi bersama dengan file konfigurasi dan pustaka terkait, dan dengan dependensi yang diperlukan agar aplikasi dapat berjalan. Hal ini memungkinkan pengembang dan profesional TI menyebarkan aplikasi dengan lancar di seluruh lingkungan.

Mengapa Anda harus memahami kontainer

Aplikasi yang gagal berjalan dengan benar saat dipindahkan dari satu lingkungan ke lingkungan lain adalah masalah lama seperti pengembangan perangkat lunak itu sendiri. Masalah tersebut biasanya muncul karena perbedaan dalam persyaratan pustaka dasar konfigurasi dan dependensi lainnya.

Kontainer mengatasi masalah ini dengan menyediakan infrastruktur yang ringan dan abadi untuk pengemasan dan penyebaran aplikasi. Aplikasi atau layanan, dependensinya, dan konfigurasinya dikemas bersama sebagai citra kontainer. Aplikasi yang dikontainerisasi dapat diuji sebagai unit dan disebarkan sebagai instans citra kontainer ke sistem operasi host.

Dengan cara ini, kontainer memungkinkan pengembang dan profesional TI untuk menyebarkan aplikasi di seluruh lingkungan dengan sedikit atau tanpa modifikasi.

Pelajari selengkapnya tentang genesis dan kelebihan kontainer.

Seseorang menggambar diagram menggunakan spidol putih.

Kontainer vs. mesin virtual

Ketika orang berpikir tentang virtualisasi, mesin virtual (VM) sering terbersit dalam pikiran. Bahkan, virtualisasi memiliki banyak bentuk, dan kontainer adalah salah satunya. Jadi, apa perbedaan antara VM dan kontainer?

Pada tingkat tinggi, VM memvirtualisasi perangkat keras dasar sehingga beberapa instans sistem operasi (OS) dapat berjalan pada perangkat keras. Setiap VM menjalankan OS dan memiliki akses ke sumber daya virtual yang mewakili perangkat keras dasar.

VM memiliki banyak manfaat. Hal ini mencakup kemampuan untuk menjalankan sistem operasi yang berbeda di server yang sama, pemanfaatan sumber daya fisik yang lebih efisien dan hemat biaya, dan pengadaan server yang lebih cepat. Di sisi lain, setiap VM berisi citra OS, pustaka, aplikasi, dan lainnya, sehingga dapat menjadi cukup besar.

Kontainer memvirtualisasikan OS dasar dan menyebabkan aplikasi yang dikontainerisasi menganggap bahwa aplikasi tersebut memiliki OS (termasuk CPU, memori, penyimpanan file, dan koneksi jaringan), semuanya milik aplikasi tersebut. Karena perbedaan dalam OS dasar dan infrastruktur diabstraksikan, selama citra dasarnya konsisten, kontainer dapat disebarkan dan dijalankan di mana saja. Untuk pengembang, hal ini sangat menarik.

Karena kontainer berbagi OS host, mereka tidak perlu melakukan booting OS atau memuat pustaka. Hal ini memungkinkan kontainer menjadi jauh lebih efisien dan ringan. Aplikasi yang dikontainerisasi dapat dimulai dalam hitungan detik, dan lebih banyak instans aplikasi yang dapat dimuat ke mesin dibandingkan dengan skenario VM. Pendekatan OS bersama memiliki manfaat tambahan berupa pengurangan overhead dalam hal pemeliharaan, seperti patching dan pembaruan.

Meskipun kontainer bersifat portabel, kontainer terbatas pada sistem operasi yang ditetapkan. Misalnya, kontainer untuk Linux tidak dapat berjalan di Windows, dan sebaliknya.

Why containers

Kelincahan

Ketika pengembang membangun dan mengemas aplikasinya ke dalam kontainer dan menyediakannya ke TI untuk berjalan di platform standar, hal ini mengurangi upaya keseluruhan untuk menyebarkan aplikasi dan dapat mempermudah seluruh siklus pengembangan dan pengujian. Hal ini juga meningkatkan kolaborasi dan efisiensi antara tim pengembang dan operasi untuk mengirimkan aplikasi lebih cepat.

Portabilitas

Kontainer menyediakan format standar untuk pengemasan dan menahan semua komponen yang diperlukan untuk menjalankan aplikasi yang diinginkan. Ini memecahkan masalah umum "Ini berfungsi di mesin saya" serta memungkinkan portabilitas antara platform OS dan antarcloud. Setiap kali kontainer disebarkan di mana saja, kontainer berjalan dalam lingkungan konsisten yang tidak berubah dari satu penyebaran ke penyebaran lainnya. Kini Anda memiliki format yang konsisten, mulai dari kotak pengembangan hingga produksi.

Skalabilitas cepat

Karena kontainer tidak memiliki overhead khas VM, termasuk instans OS terpisah, kontainer yang dapat didukung di infrastruktur yang sama makin banyak. Sifat kontainer yang ringan berarti kontainer dapat dimulai dan dihentikan dengan cepat, membuka peluang skenario peningkatan dan penurunan skala yang cepat.

Use cases

Aplikasi cloud-native

Aplikasi cloud-native mengandalkan kontainer untuk model operasional umum di seluruh lingkungan, termasuk publik, privat, dan hibrid. Overhead rendah dan kepadatan tingginya memungkinkan sebagian besar kontainer di-host di dalam mesin virtual yang sama sehingga ideal untuk mengirimkan aplikasi cloud-native.

Angkat dan geser

Organisasi dapat memperoleh manfaat signifikan dengan bermigrasi ke cloud, tetapi mungkin tidak ingin menulis ulang aplikasi yang sudah ada. Dengan kontainer, Anda berpotensi memigrasikan aplikasi ke cloud tanpa mengubah kode apa pun.

Batch

Pemrosesan batch merujuk pada aktivitas yang dapat dilakukan tanpa intervensi manusia atau yang dapat dilakukan berdasarkan sumber daya yang tersedia. Contohnya adalah membuat laporan, mengubah ukuran citra, dan mengonversi file dari satu format ke format lainnya. Kontainer memberikan cara mudah untuk menjalankan tugas batch tanpa harus mengelola lingkungan dan dependensi. Opsi komputasi dinamis, seperti Azure Container Instances (ACI), dapat digunakan untuk menyerap data sumber secara efisien, memprosesnya, dan menempatkannya di penyimpanan yang tahan lama seperti Azure Blob Storage. Menggunakan pendekatan tersebut, bukan mesin virtual yang disediakan secara statis, dapat mencapai penghematan biaya yang signifikan melalui penagihan per detik.

Pembelajaran mesin

Pembelajaran mesin menerapkan algoritma pada data dan membuat prediksi berdasarkan pola yang ditemukan dalam data. Kontainer dapat membuat aplikasi pembelajaran mesin mandiri dan mudah diskalakan di lingkungan apa pun.

Kembali ke tab

Beyond containers

Untuk memaksimalkan manfaat kontainer, pertimbangkan solusi lengkap termasuk alat dan layanan yang dioptimalkan kontainer yang membantu Anda mencapai ketangkasan, keamanan, dan skala.

Orkestrasi

Menjalankan kontainer sesuai kebutuhan memerlukan orkestrasi dan manajemen aplikasi terdistribusi dan terkontainerisasi melalui platform orkestrasi seperti Kubernetes.

Keamanan

Dengan kontainer memerlukan pendekatan berlapis, dari citra kontainer hingga isolasi kluster. Konfigurasi pagar pembatas ini paling sesuai dengan alur CI/CD Anda.

Kontainer tanpa server

Anda dapat meningkatkan ketangkasan lebih lanjut dengan kontainer sesuai permintaan. Gunakan teknologi kontainer tanpa server untuk menjalankan kontainer dengan mudah tanpa mengelola server dan burst dari kluster Kubernetes Anda ketika lalu lintas naik tajam.

Azure DevOps

DevOps

Kontainer memungkinkan pengembang berbagi perangkat lunak dan dependensi dengan mudah di seluruh lingkungan TI dan produksi. Jika digabungkan dengan praktik DevOps, Anda dapat mengirimkan kode secara efektif dengan lebih cepat dan mempersingkat siklus pengembangan perangkat lunak.

Coba kontainer dan Kubernetes gratis kapan saja dengan Azure  Mulai gratis