Pendahuluan

Apa saja prediksi Trend IT Software Engineering tahun 2022 ini bisa dilihat di sini

Coba kita lihat trend nomor tiga, yaitu mengenai Containerization dan Orchestration.



3. Containerization dan Orchestration menjadi pilihan logis bagi tim IT dalam membuat aplikasi.


Containerization

Istilah apa lagi ini.? Containerization…

Coba kita lihat di sini, akan lebih bisa menjelaskan.

Idenya adalah membungkus aplikasi sepaket dengan sistem pendukungnya, seperti application server, database, konfigurasi jaringan, dll.

Dengan paketan ini, maka kita dengan mudah melakukan pemindahan, alokasi, dan juga lebih modular.

Jadi secara umum, keuntungan kita menggunakan containerization adalah :

  • Portable, artinya mudah dipindah-pindahkan tanpa khawatir harus mengacak-ngacak isi di dalamnya.
  • Lebih efisien dan ringan daripada menggunakan VM (Virtual Machine), karena container menggunakan sumber daya yang lebih sedikit.
  • Lebih modular, karena dibuat dalam bentuk paket. Akibatnya aplikasi akan lebih mudah di gandakan/scaling kalau kebutuhan aplikasi meningkat.

Dengan Containerization, dengan mudahnya kita tidak perlu menginstall satu persatu dependensi kita, akan tetapi cukup dengan mendowload imagenya, melakukan konfigurasi container, dan menjalankannya.

Konsep Container ini mirip dengan konsep Microservice di level aplikasi.

Akan tetapi Container ini berada di level IT infrastruktur.


Orchestration

Istilah lain lagi…

Istilah Orchestration sebenarnya bisa mengacu ke banyak hal.

Di dalam dunia Microservice, juga kita melihat istilah yang sama yaitu Orchestration.

Terutama kalau kita berhubungan dengan Microservice Pattern, seperti Saga Pattern

Secara umum Orchestration ini maksudnya adalah sebuah framework/tools untuk mengelola banyak modul/service/ yang saling berinteraksi, dengan tujuan agar mudah di pilih, dicari, dipindah, ditambah, atau dikurangi modul/service tersebut secara otomatis.

Orchestration di artikel kali ini lebih kepada mengelola paketan Container yang kita bahas sebelumnya diatas.

Jadi akhirnya aplikasi-aplikasi kita ujungnya terdiri dari paket-paket modul/service yang terpisah-pisah, mudah dipindah-pindahkan antar server, mudah diinisiasi, dihapus , dan juga mudah dikoordinasikan antara service yang berbeda server, location, dll.


Lalu, apakah menjadi penting kedepannya ?

Iya, tentu saja, makin ke depan, teknologi, library, fiture, tools, framework di dunia IT makin berkembang.

Agar bisa kejar-kejaran dengan kebutuhan bisnis yang juga berubah cepat, maka tim aplikasi dalam hal ini harus beradaptasi dengan cepat pula.

Mempelajari teknologi baru, konsep baru, konfigurasi yang baru, membutuhkan waktu yang tidak sedikit ketika kita sendiri melakukan development aplikasi.

Menangani perbedaan konfigurasi antara beberapa environment development juga menjadi masalah tersendiri, menghabiskan waktu berharga yang seharusnya difokuskan kepada pengembangan aplikasi itu sendiri.

Deploying ke DEV/SIT/UAT dan terakhir adalah environment Production merupakan keharusan dalam skema CI / CD yang kita kenal.

Containerization berupaya membantu tim aplikasi untuk mengatasi hal-hal diatas, seperti misalnya :

  • sebagai sebuah Template modul teknologi lengkap dengan dependencynya yang kita ingin gunakan, misalnya template untuk aplikasi database, atau teknologi baru, tanpa kita harus menginstall database atau teknologi baru tersebut di komputer lokal kita.
  • memperpendek validasi yang perlu dilakukan untuk tiap environment ketika kita melakukan proses deployment / CICD untuk aplikasi kita.

Tentunya kemudahan, portability, dan modularity merupakan kunci kenapa Containerization ini menjadi penting, dan akan makin sering digunakan kedepannya.

Dan 3 hal itu pulalah yang dibutuhkan bagi sebuah tim aplikasi yang perlu cepat beradaptasi di level aplikasi/software.