Ketika kita melihat pengembangan perangkat lunak pada tahun 2015, ada 2 hal yang muncul saat itu: Containerization dan Docker.
Pada tulisan ini, kita akan berbicara tentang mengapa container sebenarnya merupakan sebuah sistem yang besar dan bagaimana Docker membantu merevolusi cara industri perangkat lunak memanfaatkan teknologi container.
Apakah itu Container sebenarnya?
Pertama, mari kita mulai dengan mempelajari sejarah singkat dan 3 strategi dalam menyediakan komponen-komponen (stack) yang nanti akan menjalankan aplikasi di atasnya. Dengan ini kita dapat terbantu untuk mengenal container dan apa yang membuatnya bisa lebih andal dari solusi lain yang sudah lama tersedia.
Selain itu nantinya kita mendapatkan banyak keuntungan dalam memanfaatkan alur kerja container. Berikut adalah 3 strategi tersebut:
- Server tradisional (bare metal)
- Mesin virtual
- Containers
Strategi Server Tradisional
Komponen Server tradisional terdiri dari server fisik yang menjalankan sistem operasi dan aplikasi.
Strategi ini merupakan solusi standar selama bertahun-tahun. Kekurangan pada strategi ini pada akhirnya menuju kepada kemajuan komponen-komponen mesin virtual dan containers.
Sumber Gambar: https://www.veeam.com/blog/why-virtual-machine-backups-different.html
Sebelumnya, banyak perusahaan, seperti Puppet Labs and Chef, telah mencoba mencari solusi untuk mengatasi kelemahan dari komponen-komponen server tradisional.
Info Penerimaan Mahasiswa Baru
Keuntungan Server Tradisional
Ada beberapa alasan mengapa server tradisional masih digunakan.
Pemanfaatan sumber daya secara penuh
Satu keuntungan yang sangat besar saat menggunakan server tradisional adalah bahwa aplikasi dapat memanfaatkan jauh lebih tinggi sebanyak sumber daya yang tersedia. Hal ini disebabkan, satu di antaranya, adalah minimnya overhead dalam menjalankan aplikasi, karena aplikasi langsung dijalankan di server fisiknya.
Isolasi
Aplikasi dan data dapat diisolasi secara fisik dari aplikasi yang lain, serta pengguna lain. Sebagai perbandingan, beberapa lingkungan container dan mesin virtual saling-berbagi sumber daya komputasi.
Kekurangan Server Tradisional
Ada beberapa kelemahan untuk strategi ini, yang telah mendorong evolusi teknologi lainnya, solusi yang lebih modern.
Deployment Sangat Lambat
Admin sebenarnya harus menyewa server dan menyediakannya, lalu membuat perubahan seringkali membutuhkan kehadiran fisik di Data center.
Mahal
Server fisik memerlukan biaya terbaik per sumber daya, tetapi kurang fleksibel. Saat skalabilitasnya bertambah, biaya ini dapat diserap. Tetapi dengan aplikasi pada skala rendah dan dengan beragam jenis kebutuhan sumber daya, biaya per sumber daya dikonsumsi menjadi jauh lebih tinggi.
Sumber Daya yang Terbuang
Jarang sekali satu aplikasi membutuhkan keseluruhan sumber daya yang disediakan oleh server fisik. Perusahaan membayar server fisik yang lengkap, namun biasanya aplikasi hanya perlu 40 persen dari sumber daya yang tersedia. Multi-tenancy (yaitu disediakan secara otomatis oleh VM dan container) memberikan nilai efisiensi yang lebih baik. Perlu diingat bahwa VM dan container juga meningkatkan kompleksitas sistem di server tradisional.
Kerumitan Skalabilitas
Membeli server tambahan, menyiapkannya, dan melakukan konfigurasi membutuhkan waktu. Proses ini sering tergantung pada responsivitas penyedia hosting yang digunakan, juga sistem operasi yang didukung.
Sulit untuk Bermigrasi
Dalam banyak kasus, sangat sulit untuk bermigrasi dari satu pengaturan server ke pengaturan server yang lain. Seringkali tidak ada dua server yang bisa persis sama, dan ada kemungkinan masalah yang bisa muncul saat migrasi aplikasi berlangsung.
Kerumitan Konfigurasi
Ada banyak alat untuk memudahkan admin dalam mempersiapkan server untuk melakukan deploy aplikasi tertentu, walaupun begitu, hal ini masih merupakan proses yang rumit. Mempertahankan lingkungan yang konsisten di keseluruhan server merupakan pekerjaan yang sangat sulit.
Andi-doc
Referensi:
– https://resources.codeship.com/hubfs/Containers_and_Docker_are_the_Future_eBook.pdf