Blog

Home   /   blog   /   Peran docker dalam pengembangan sebuah aplikasi

Peran docker dalam pengembangan sebuah aplikasi

Sebelum menggunakan suatu teknologi, terutama kita harus mempertanyakan terlebih dulu:

Apa manfaatnya bila saya menggunakan teknologi ini? Apa keunggulannya dibandingkan cara yang biasa saya gunakan?

Untuk menjawab pertanyaan di atas, mari kita lihat dulu workflow yang biasa kita gunakan mulai dari coding sampai aplikasi bisa digunakan user (naik production). Ada beberapa langkah berikut, yaitu:

  1. Mempaketkan aplikasi sesuai dengan bahasa pemrograman / framework yang digunakan. Kalau kita pakai Java, hasil akhir dari aplikasi kita biasanya berupa file jar atau war.
  2. Menyiapkan environment untuk menjalankan aplikasi kita. Yang biasanya terdiri dari:
    • menyiapkan server, baik berupa fisik maupun virtual
    • menginstal sistem operasi
    • menginstal runtime bahasa pemrograman yang kita gunakan, misalnya Java SDK, mod_phpmod_passanger, dan lainnya
    • menginstal layanan yang digunakan aplikasi, misalnya database server, mail server, message broker, dan sebagainya
    • mengkonfigurasi layanan tambahan tersebut (setting pemakaian resource, membuat username/password, membuat database/queue/topic, dsb)
    • mengintegrasikannya dengan aplikasi kita
  3. Menjalankan aplikasi. Biasanya aplikasi dideploy dalam berbagai environment (development, testing, staging, production).

Berbagai kegiatan di atas, terutama di poin #2, secara tradisional dilakukan oleh seorang sysadmin. Dia melakukan instalasi, menjalankan rangkaian perintah command line, copy/paste script, dan sebagainya. Semuanya dilakukan dengan manual.

Kelemahan dari cara manual ini adalah:

  • tidak repeatable. Bila disuruh mengulangi, belum tentu sysadmin tersebut bisa menjalankannya dengan sama persis. Perbedaan satu opsi perintah bisa menjadikan hasil akhirnya berbeda.
  • rawan terjadi kesalahan.
  • sulit diotomasi

Untuk mengatasi masalah-masalah tersebut, kita bisa menggunakan Docker container. Docker container adalah satu paket image yang sudah berisi:

  • sistem operasi
  • platform runtime
  • aplikasi kita
  • beberapa konfigurasi yang bersifat static

Aplikasi yang sudah kita paketkan menjadi docker image bisa langsung dijalankan tanpa harus melalui 3 langkah di atas. Untuk layanan tambahan seperti database server, mail server, dan sebagainya, kita juga bisa mendapatkan docker image yang siap pakai. Image-image ini biasanya dibuat langsung oleh pembuat aplikasi tersebut. Misalnya image ubuntu dibuat langsung oleh karyawan Canonical. Karena mereka yang paham luar-dalam tentang aplikasinya, maka kita bisa yakin bahwa image yang dibuat berkualitas baik.

Proses pembuatan docker image ini juga bisa kita otomasi, sehingga bisa dijalankan dalam siklus continuous integration seperti yang sudah kita bahas di artikel terdahulu, misalnya dengan Jenkins atau menggunakan Travis. Adapun memasukkan pembuatan docker image dalam proses CI ini akan kita bahas pada artikel tersendiri di kemudian hari.

Jadi, dengan menggunakan Docker, kita bisa menjalankan aplikasi kita dengan lebih cepat, lebih konsisten, repeatable, dan minim campur tangan manusia.

 


 

Untuk mempercepat pemahaman ini, daftar segera kursus komputer di Edusoft Center. Ada puluhan paket kursus dengan trainer yg handal dan berpengalaman.

Info selengkapnya bisa hubungi

Office : 0271 745 2187
No Simpati : 082 22922 2121 (WA )

atau

Bisa Langsung Registrasi Online lewat Formulir Online:
www.edusoftcenter.com

Leave a Reply

Your email address will not be published.