Apa Itu DevOps

17 Nov 2015

Awalnya saya agak mengkerutkan dahi ketika lead programmer saya bilang “rencananya kita mau pakek Ansible, supaya proses release jadi lebih enteng”. Segera setelah itu, (masih didepan lead saya) langsung saya buka browser terus masukkin keyword “Ansible”. Haha, ternyata saya baru sadar kalo saya hidup dalam “kardus”.

Gak lama kemudian lead saya langsung bilang “coba kamu cari-cari tentang DevOps”. Oke, CuriousMode:On.

Saya mulai baca-baca dan, yup, sekarang mulai faham langkah-langkah bagaimana proses dari mulai pembuatan aplikasi (coding) sampe ke tahap packaging dan publishing (sekalipun cuma gambaran). Saya memang programmer baru, tepatnya baru kerja.

Jujur saja, diawal saja saya kenal github saya agak aneh, kenapa harus pakai github? Kenapa gak copy-_paste_ manual aja? Memang serepot apa sih versioning (yang dulu saya menterjemahkan mentah kata ini) sampai harus pake tools macam github segala? Sekarang saya mulai sadar dengan itu semua, ya maklumlah dulu seringnya ngoding sendiri jadi ya sekarang perlahan mulai faham apa yang membedakan antara freelancer dengan full stack programmer, salah satunya ya penggunaan tools itu. Freelancer lebih sering memilih tools yang memang ya berguna buat dia (kerja sendiri) ketimbang full stack programmer yang sering kali milih tools untuk kemudahan kolaborasi. Oke stop, balik kejalur pembahasan.

Saya jadi bingung, apa hubungannya cerita diatas sama judul?

Secara tidak langsung memang agak gak nyambung (bodo amat, blog saya ini), yang pasti, tools-_tools_ yang saya sebutkan diatas adalah tidak lain salah satu dari tools untuk kolaborasi dalam rangka software development. Dimana sebenarnya sering kali timbul banyak masalah ketika kita ngoding bareng-bareng, entah itu pas proses penulisan kode, atau bahkan pada saat proses mau rilis aplikasi. Dan diartikel ini saya coba nulis apa yang ada dikepala saya soal proses rilis, terutama issue yang sedang “hot” akhir-akhir ini diproses rilis tersebut. Langsung mulai deh…

Bagaiamana proses rilis itu?

Sebelum saya nulis soal “apa itu DevOps?”, saya mau cerita soal bagaimana proses rilis aplikasi itu secara garis besar (tentunya ditempat saya). Ini penting karena nanti akan nyambung dengan judul diatas.

Yaiyalah, kalo gak nyambung ngapain ditulis, tulalit nih penulis.

Anggaplah sekarang kita sudah beres koding dengan keringat dingin mengucur (seember – karena deadline) dan kita akan merilisnya, dan biasanya berikut ini adalah langkah-langkah yang dilakukan:

  1. Mindahin source code ke server live.
  2. Melakukan beberapa konfigurasi yang dibutuhkan.

Kelihatannya simple ya?

Pada kenyataanya, sebelum mindahin kodingan ke server live biasanya ada proses menjalankan semua test yang ada di source code tersebut. Kalo sering ngelakuin TDD mungkin gak aneh yah. Kalo hasil tesnya lancar ya lanjut, kalo ada yang ‘bengkok’ ya dicek ulang, dibenerin dulu.

Proses mindahin kodingan dari tempat development ini juga beda-beda, tapi kebanyakan sudah clone langsung dari repository ketimbang ngopi atau ngupload kodingan secara manual lewat FTP. Oke, tahap ini mungkin masih dibilang gampang–lah. Sekalipun ya ribet juga harus login ke server, terus ngejalanin git clone atau git pull origin master. Belum lagi kalo lupa naro foldernya dimana, ato lupa servernya dimana (yang ini ngarang biar ‘extreme’) kan bikin repot, tapi udah terlanjur bilang gampang, ya gampangin aja lah.

Lanjut ke proses kedua, konfigurasi. Nah ini yang agak ribet. Misal sehabis mindahin source code baru kita harus ngubah beberapa settingan kayak variable development atau ngeset server jadi mode maintenance ketika proses rilis ini, ato harus nyeting cron job, dll. Proses ini yang sebenernya ribet, tapi ‘kelihatan’ gampang dan berulang-ulang, yang padahal ngabisin waktu banyak, padahal misalnya hanya salah setting cron job, salah masukin nama file misalnya.

Dari paragrap diatas sekarang mulai ada gambaran gimana proses rilis aplikasi dari tempat development ke tempat laip (red: live). Dan ya agak ribet juga, terlebih sebenarnya proses yang berulang-ulang seharusnya memang lebih baik diotomatisasi biar meminimalisir kesalahan manusia.

DevOps itu apa?

Sekarang kita baru ‘nginjek’ kata ini, DevOps sendiri menurut wikipedia dikatakan campuran kata dari Development dan Operations. Dimana ini nunjukin tugas-tugas yang berkaitan dengan proses development dan hal-hal operasional lain atau staf IT lain, ya kayak situkang ngurusin server yang tugasnya ngupload file kodingan kita ke server live tadi itu, atau bahkan QA (Quality Assurance) – atau tukang tes.

Tugas DevOps

Dari pengertian singkat diatas sekarang setidaknya kita tahu bahwa tugas DevOps itu ya jadi jembatan antara tukang koding, tukang tes, dan tukang ngurus server. Kalo memang kita sering rilis secara berkala ya sebaiknya memang aware sama pentingnya DevOps ini, terutama otomatisasi, karena tentu saja kita nggak mau kalo harus melakukan tugas berulang-ulang yang memang sebenarnya bisa diotomatisasi, yang pasti bisa menghemat waktu. Nah, untuk beberapa tools yang berkaitan dengan DevOps ini ada listnya, sebagai remainder saya juga sih, nih:

Oke, rasanya sudah capek saya nulis. Capek baca nggak? Syukurdeh (mau capek mau enggak tetep saya sukurin, haha…).

Sekian aja dulu tulisan tentang DevOps, mungkin postingan selanjutnya saya bakalan nulis tentang tutorial ato hal-hal lain yang masih berkaitan sama DevOps ini, soalnya memang lagi curious banget sama yang satu ini.

See you…