Kebutuhan Server (Komputer) Pengembang Aplikasi

Sebagai pengembang aplikasi, idealnya memiliki server atau pun komputer untuk pengembangan aplikasi lebih dari satu. Mengapa? Karena pengembang aplikasi harus memiliki sistem keselamatan dan sistem pengujian yang baik dan benar.

Ditinjau dari sistem keselamatan, maka memiliki lebih dari satu komputer menjadi keharusan, karena setiap hasil kerja yang telah dicapai dan dianggap sebagai kilometer (milestone) kemajuan, harus disimpan ke dalam komputer khusus. Dianjurkan untuk tidak hanya dibackup pada komputer kerja.

Ditinjau dari sistem pengujian, maka pengembang harus memiliki komputer yang khusus untuk melakukan pengujian. Mengapa? Karena komputer pengujian harus sama dengan komputer produksi, komputer yang digunakan oleh pengguna untuk memasang dan menjalankan aplikasi. Komputer kerja atau komputer pengembangan yang kita miliki belum tentu sama kondisinya dengan komputer produksi. Aplikasi yang telah diuji di komputer pengembangan, belum tentu dapat dijalankan di komputer produksi, karena bisa jadi tidak bisa dijalankan, karena setting lingkungannya berbeda.

Berdasarkan kebutuhan yang dijelaskan di atas, maka setiap pengembang setidaknya memiliki mesin atau komputer untuk pengembangan terdiri atas:

  • komputer pengembangan
  • komputer backup
  • komputer pengujian
  • komputer produksi

Komputer pengembangan

Komputer pengembangan adalah komputer yang biasa digunakan oleh pemrogram, komputer ini bisa komputer desktop biasa, bisa juga komputer server. Komputer pengembangan bisa merupakan server, apabila aplikasi yang dikembangkan merupakan aplikasi yang berbasis server.

Server pengembangan bisa lebih dari satu, disesuaikan dengan kebutuhan, setidaknya akan memiliki server pengembangan sebagai berikut:

  • server database
  • server web
  • server aplikasi

Komputer Backup  

Komputer backup adalah komputer yang digunakan untuk menyimpan file program atau data, untuk berjaga-jaga jangan sampai file program atau data hilang, pada saat pengembangan atau produksi.

File program atau data yang disimpan adalah file program dan data pada tahap pengembangan dan yang telah selesai, dalam masa produksi.

Untuk kemudahan manajemen, komputer backup dapat menggunakan aplikasi yang disebut dengan sistem kontrol version (Version Control System), untuk lebih mengefisienkan penggunaan space dalam komputer backup, selain itu juga untuk memudahkan pengelolaan dan pengambilan kembali file program atau data. Karena pada saat backup kita dapat menyelipkan suatu tag sebagai kata kunci untuk mengidentifikasi file program atau data yang akan disimpan komputer backup.

Komputer Pengujian

Komputer pengujian adalah komputer yang digunakan untuk melakukan pengujian aplikasi yang telah dikembangkan.

Komputer pengujian memiliki macam yang sama seperti pada komputer produksi/operasional. Kesamaan ini dimaksudkan untuk menjamin bahwa apa yang diuji akan sama hasilnya dengan pada komputer produksi.

Komputer Produksi

Komputer produksi adalah komputer yang digunakan untuk menjalankan aplikasi secara operasional oleh pengguna.

Komputer produksi bisa terdiri atas lebih dari satu komputer, disesuaikan dengan keadaan dari pengguna aplikasi, yang akan terdiri atas:

  • server database
  • server web
  • server aplikasi
  • komputer pengguna

Ketersediaan komputer yang banyak, sesuai dengan peruntukannya, dari pengembangan sampai dengan produksi, tentu saja akan sulit dipenuhi oleh banyak pengembang aplikasi. Apalagi jika pengembang aplikasi perorangan.

Penyiasatan kebutuhan komputer ini dapat dilakukan dengan bermodal sebuah komputer yang cukup besar spesifikasinya, seperti prosesor, memori, dan harddisk; akan dapat sangat membantu.  Pengembang dapat memanfaatkan software virtualisasi untuk membuat banyak image sistem operasi dan lingkungannya yang siap dijalankan sebagai sebuah komputer sendiri. (Lihat tulisan tentang PC Virtualization).

PC Virtualization Bagi Pengembang Aplikasi, Perlukah?

Untuk pengembang aplikasi yang memiliki keterbatasan sumber daya, dalam hal ini hardware, tentu saja perlu karena dengan virtualisasi PC (PC virtualization) pengembang aplikasi akan seolah-olah memiliki beberapa PC dalam satu komputer. Virtualisasi PC adalah software yang akan membuat sebuah komputer seolah-olah menjadi beberapa komputer, yang bisa memiliki lebih dari satu sistem operasi. Beberapa software untuk virtualisasi yang populer saat ini adalah:

  • VMware
  • Xen
  • Qemu
  • coLinux
  • Virtualbox
  • VirtualPC

Mengapa diperlukan?

  • Agar pengembang memiliki platform dan environment pengembangan aplikasi yang bervariasi, bisa Windows dan *nix (Unix dan Linux)
  • Agar pengembang bisa melakukan pengujian dengan lingkungan pengujian yang bisa disesuaikan setiap saat

Kunci agar kita dapat melakukan virtualisasi adalah kita memiliki komputer yang mendukung, setidaknya memiliki memori dan kapasitas harddisk yang besar.  Untuk saat ini, saat tulisan ini dibuat, maka komputer dengan spesifikasi prosesor setidaknya Intel Pentium 4 dengan clock > 2GHz, RAM sedikitnya 2GB, dan harddisk sedikitnya 80GB, merupakan spesifikasi komputer minimal yang dapat digunakan untuk menerapkan virtualisasi dengan nyaman.

Adanya virtualisasi, kita dapat memiliki lingkungan untuk pengembangan atau pun operasional dengan berbagai platform sistem operasi, cukup dengan satu komputer.

Bagi perusahaan yang memiliki software aplikasi yang hanya bisa berjalan di komputer dan sistem operasi lama, maka aplikasi dapat dijalankan pada mesin virtual, dengan menggunakan virtualisasi.

Bagi pengembang aplikasi, virtualisasi menjadi satu keharusan, apabila komputer untuk pengembangan terbatas. Misal, pengembangan aplikasi berbasis web dilakukan di atas server Apache, tetapi di atas sistem operasi Linux, kemudian pengguna aplikasi ingin aplikasi tersebut dipasang dan dijalankan di atas Apache dengan sistem operasi Windows. Karena saat ini semua komputer menggunakan Linux, maka pengembang dapat membuat mesin virtual dengan sistem operasi Windows untuk melakukan pengujian aplikasi yang dibuat di atas Linux, sebelum kemudian diserahkan kepada pengguna. Demikian juga sebaliknya.

Kita perlu melakukan koleksi mesin virtual, tetapi mesin-mesin virtual ini tidak perlu selalu diaktifkan. Kita mengaktifkan pada saat dibutuhkan saja, untuk mengurangi beban kerja dari komputer kerja kita.