Beranda Topics Kontainer Apa yang dimaksud dengan kontainer?
Jelajahi solusi kontainer IBM Berlangganan pembaruan cloud
Ilustrasi dengan kolase piktogram monitor komputer, server, awan, titik-titik
Apa yang dimaksud dengan kontainer?

Kontainer adalah unit perangkat lunak yang dapat dieksekusi di mana kode aplikasi dikemas bersama dengan pustaka dan dependensinya, dengan cara yang umum sehingga kode dapat berjalan di mana saja, baik itu di desktop, IT tradisional, atau cloud.

Kontainer memanfaatkan suatu bentuk virtualisasi sistem operasi (OS) di mana fitur-fitur kernel OS (misalnya, namespace dan cgroup Linux, silo Windows, dan objek pekerjaan) dapat digunakan untuk mengisolasi proses dan mengontrol jumlah CPU, memori, dan disk yang dapat diakses oleh proses tersebut.

Kontainer berukuran kecil, cepat, dan portabel karena tidak seperti virtual machine, kontainer tidak perlu menyertakan OS tamu di setiap instans dan dapat dengan mudah menggunakan fitur dan sumber daya OS host.

Container pertama kali muncul beberapa dekade lalu dengan versi seperti FreeBSD Jails dan AIX Workload Partitions, tetapi sebagian besar pengembang modern mengingat 2013 sebagai awal dari era kontainer modern dengan diperkenalkannya Docker.

Modernisasi aplikasi strategis mendorong transformasi digital

Modernisasi aplikasi strategis adalah salah satu kunci keberhasilan transformasi yang dapat meningkatkan pendapatan tahunan serta menurunkan biaya pemeliharaan dan biaya operasional.

Konten terkait

Daftar untuk panduan di DaaS

Kontainer versus virtual machine

Salah satu cara untuk lebih memahami sebuah container adalah dengan memahami perbedaannya dari virtual machine (VM) tradisional. Dalam virtualisasitradisional, baik on premises atau di cloud, hypervisor digunakan untuk memvirtualisasikan perangkat keras fisik. Setiap VM kemudian berisi OS tamu dan salinan virtual perangkat keras yang diperlukan OS untuk dijalankan, bersama dengan aplikasi serta pustaka dan dependensi terkait.

Alih-alih memvirtualisasikan perangkat keras yang mendasarinya, kontainer memvirtualisasikan sistem operasi (biasanya Linux) sehingga setiap kontainer hanya berisi aplikasi beserta pustaka dan dependensinya. Tidak adanya OS tamu adalah alasan kontainer sangat ringan dan, dengan demikian, cepat dan portabel.

Untuk melihat lebih dalam tentang perbandingan ini, lihat “Containers vs. VMs: What's the difference?

Manfaat kontainer

Keuntungan utama kontainer, terutama dibandingkan dengan VM, adalah mereka menyediakan tingkat abstraksi yang membuatnya ringan dan portabel. Manfaat utama mereka meliputi:

Ringan: Kontainer berbagi kernel OS mesin, sehingga tidak perlu lagi menggunakan instance OS penuh per aplikasi dan membuat file kontainer menjadi kecil dan mudah dalam penggunaan sumber daya. Ukurannya yang lebih kecil, terutama dibandingkan dengan VM, berarti kontainer dapat berputar dengan cepat dan lebih baik mendukung aplikasi cloud native yang berskala secara horizontal.

Portabel dan tidak bergantung pada platform: Kontainer membawa semua ketergantungannya, yang berarti bahwa perangkat lunak dapat ditulis sekali dan kemudian dijalankan tanpa perlu dikonfigurasi ulang di seluruh laptop, cloud, dan lingkungan komputasi on premises.

Mendukung pengembangan dan arsitektur modern: Karena kombinasi dari portabilitas/konsistensi penerapannya di seluruh platform dan ukurannya yang kecil, kontainer sangat cocok untuk pengembangan modern dan pola aplikasi-seperti DevOpstanpa server, dan layanan mikro, yang dibangun dengan menggunakan penerapan kode reguler dalam jumlah kecil.

Meningkatkan pemanfaatan: Seperti VM sebelumnya, kontainer memungkinkan pengembang dan operator untuk meningkatkan pemanfaatan CPU dan memori mesin fisik. Di mana kontainer melangkah lebih jauh lagi adalah karena kontainer juga memungkinkan arsitektur layanan mikro, komponen aplikasi dapat diterapkan dan diskalakan secara lebih terperinci. Ini adalah opsi alternatif yang menarik dibandingkan dengan harus meningkatkan seluruh aplikasi monolitik karena satu komponen berjuang dengan bebannya.

Dalam survei IBM baru-baru ini, pengembang dan eksekutif IT melaporkan banyak manfaat lain dari menggunakan kontainer.

Unduh laporan lengkap: Kontainer di perusahaan

Contoh penggunaan untuk kontainer

Kontainer menjadi semakin menonjol, terutama di lingkungan cloud. Banyak organisasi bahkan mempertimbangkan kontainer sebagai pengganti VM sebagai platform komputasi tujuan umum untuk aplikasi dan beban kerja mereka. Tetapi dalam lingkup yang luas itu, ada contoh penggunaan utama di mana kontainer sangat relevan.

  • Layanan mikro: Kontainer berukuran kecil dan ringan, sehingga cocok untuk arsitektur layanan mikro di mana aplikasi dibangun dari banyak layanan kecil yang digabungkan secara longgar dan dapat digunakan secara independen.
  • DevOps: Kombinasi layanan mikro sebagai arsitektur dan kontainer sebagai platform adalah fondasi umum bagi banyak tim yang menggunakan DevOps sebagai cara mereka membangun, mengirimkan, dan menjalankan perangkat lunak.
  • Hibrida dan multicloud: Karena kontainer dapat berjalan secara konsisten di mana saja, baik di laptop, on premises, dan lingkungan cloud, kontainer merupakan arsitektur dasar yang ideal untuk skenario hybrid cloud dan multicloud di mana organisasi beroperasi di berbagai cloud publik yang dikombinasikan dengan pusat data mereka sendiri.
  • Modernisasi dan migrasi aplikasi: Salah satu pendekatan paling umum untuk modernisasi aplikasi adalah dengan mengkontainerisasi aplikasi dalam persiapan untuk migrasi cloud.
Kontainerisasi

Perangkat lunak perlu dirancang dan dikemas secara berbeda untuk memanfaatkan kontainer, proses yang biasa disebut sebagai  kontainerisasi.

Ketika mengemas aplikasi, prosesnya mencakup pengemasan aplikasi dengan variabel lingkungan yang relevan, file konfigurasi, perpustakaan, dan ketergantungan perangkat lunak. Hasilnya adalah gambar kontainer yang kemudian dapat dijalankan pada platform kontainer.

Orkestrasi kontainer dengan Kubernetes

Ketika perusahaan mulai menggunakan kontainer, sering kali sebagai bagian dari arsitektur cloud native modern, kesederhanaan kontainer individual mulai bertabrakan dengan kompleksitas pengelolaan ratusan (atau bahkan ribuan) kontainer di seluruh sistem terdistribusi.

Untuk mengatasi tantangan ini, orkestrasi kontainer muncul sebagai cara mengelola volume besar kontainer sepanjang siklus hidupnya, termasuk:

  • Penyediaan
  • Redundansi
  • Pemantauan kesehatan
  • alokasi sumber daya
  • Penskalaan dan penyeimbangan beban
  • Berpindah antar host fisik

Sementara banyak platform orkestrasi kontainer (seperti Apache Mesos, Nomad dan Docker Swarm) telah dibuat, Kubernetes, sebuah proyek sumber terbuka yang diperkenalkan oleh Google pada tahun 2014, dengan cepat menjadi platform orkestrasi kontainer paling populer, dan itu adalah salah satu yang menjadi dasar standarisasi mayoritas industri.

Kubernetes memungkinkan pengembang dan operator untuk mendeklarasikan kondisi yang diinginkan dari keseluruhan lingkungan kontainer mereka melalui file YAML, dan kemudian Kubernetes melakukan semua pekerjaan pemrosesan untuk membangun dan memelihara kondisi tersebut, dengan aktivitas yang mencakup penerapan sejumlah contoh aplikasi atau beban kerja tertentu, me-reboot aplikasi tersebut jika gagal, penyeimbangan beban, penskalaan otomatis, penerapan tanpa waktu henti, dan banyak lagi.

Kubernetes sekarang dioperasikan oleh Cloud Native Computing Foundation (CNCF), yang merupakan grup industri agnostik vendor yang dioperasikan di bawah naungan Linux Foundation.

Istio, Knative, dan ekosistem kontainer yang berkembang

Karena kontainer terus mendapatkan momentum sebagai cara yang populer untuk mengemas dan menjalankan aplikasi, ekosistem alat bantu dan proyek yang dirancang untuk mengakomodasi dan memperluas contoh penggunaan produksi terus berkembang. Di luar Kubernetes, dua proyek paling populer di ekosistem kontainer adalah Istio dan Knative.

Istio

Karena pengembang menggunakan kontainer untuk membangun dan menjalankan arsitektur layanan mikro, masalah manajemen melampaui pertimbangan siklus hidup kontainer individu dan ke dalam cara sejumlah besar layanan kecil, sering disebut sebagai “mesh layanan”, terhubung dengan dan berhubungan satu sama lain. Istio diciptakan untuk memudahkan pengembang mengelola tantangan terkait dengan penemuan, lalu lintas, pemantauan, keamanan, dan lainnya. 

Pelajari selengkapnya tentang Istio

knatif

Arsitektur tanpa server juga terus tumbuh dalam popularitas, terutama dalam komunitas cloud native. Knative, misalnya, menawarkan nilai substansial dalam kemampuannya untuk menerapkan layanan kontainer sebagai  fungsi tanpa server.

Alih-alih berjalan sepanjang waktu dan merespons ketika dibutuhkan (seperti yang dilakukan server), fungsi tanpa server dapat “diskalakan ke nol”, yang berarti tidak berjalan sama sekali kecuali jika dipanggil. Model ini dapat menghemat daya komputasi dalam jumlah besar ketika diterapkan pada puluhan ribu kontainer.  

Solusi terkait
Red Hat® OpenShift® on IBM Cloud®

Red Hat OpenShift on IBM Cloud memanfaatkan OpenShift di lingkungan publik dan hybrid untuk kecepatan, daya tanggap pasar, skalabilitas, dan keandalan.

Jelajahi Red Hat OpenShift on IBM Cloud
IBM Cloud Pak for Applications

Baik itu penerapan, membangun aplikasi cloud native baru, refactoring, atau replatforming aplikasi yang sudah ada, CP4Apps memilikinya.

Jelajahi IBM Cloud Pak for Applications
IBM Cloud Satellite

Dengan IBM Cloud Satellite, Anda bisa meluncurkan layanan cloud yang konsisten di mana saja - di lokasi, di tepi, dan di lingkungan cloud publik.

Jelajahi IBM Cloud Satellite
IBM Cloud Code Engine

Jalankan gambar kontainer, pekerjaan batch, atau kode sumber sebagai beban kerja tanpa server, tanpa perlu ukuran, penerapan, jaringan, atau penskalaan.

Jelajahi IBM Cloud Code Engine
IBM Cloud Container Registry

IBM Cloud Container Registry memberi Anda registri pribadi yang memungkinkan Anda mengelola gambar dan memantaunya untuk masalah keamanan.

Jelajahi IBM Cloud Container Registry
Optimalkan Kubernetes dengan IBM Turbonomic

Secara otomatis tentukan tindakan alokasi sumber daya yang tepat, dan kapan tindakan ini harus dilakukan, untuk membantu memastikan bahwa lingkungan Kubernetes dan aplikasi Anda yang sangat penting mendapatkan apa yang dibutuhkan untuk memenuhi SLO.

Jelajahi IBM Turbonomic
Sumber daya Kontainer di perusahaan

Penelitian terbaru IBM mendokumentasikan momentum lonjakan adopsi kontainer dan Kubernetes.

Gabungkan fitur terbaik cloud dan TI tradisional

Orkestrasi kontainer adalah komponen utama dari strategi cloud hybrid terbuka yang memungkinkan Anda membangun dan mengelola beban kerja dari mana saja.

Apa itu Docker?

Docker adalah platform sumber terbuka untuk membangun, menerapkan, dan mengelola aplikasi dalam kontainer.

Ambil langkah selanjutnya

Red Hat OpenShift on IBM Cloud menawarkan cara yang cepat dan aman bagi para pengembang untuk mengkontainerisasi dan menerapkan beban kerja perusahaan dalam kluster Kubernetes. Menghilangkan tugas-tugas yang membosankan dan berulang yang melibatkan manajemen keamanan, manajemen kepatuhan, manajemen penerapan, dan manajemen siklus hidup yang berkelanjutan. 

Jelajahi Red Hat OpenShift on IBM Cloud Mulai secara gratis