Hai semuanya, apa kabar? Beberapa hari terakhir ini saya ikuti kursus DevOps di Coursera. Kenapa DevOps? Karena pekerjaan saya ada kaitannya dengan DevOps. Sebenarnya, untuk catatan seperti ini saya punya angan-angan tiap materi kuliah saya akan saya coba tulis di blog. Sebagai catatan atau latihan nulis blog. Tapi kayanya belum terealisasi haha. Yaudah kali ini tentang DevOps aja yaa..
DevOps
Adalah gabungan dari kata Development dan Operation. Dimana DevOps adalah suatu konsep dimana tim pengembang (developer) bekerja bersama atau berkolaborasi dengan tim operasional (operations) dalam pengembangan program/proyek. DevOps menekankan pentingnya kolaborasi dan kerja sama agar dapat menyelesaikan proyek dengan lebih efisien.
Dahulu, sebelum diterapkan konsep DevOps, tim pengembang dan operasional bekerja masing-masing. Konsep pengembangan yang dahulu digunakan adalah waterfall. Pada konsep waterfall, pekerjaan dilakukan secara linier. Artinya suatu proyek tidak dapat lanjut ke tahap selanjutnya sebelum tahap yang dikerjakan selesai. Gambar 1 menampilkan diagram dari konsep waterfall, dimana tahapannya bergerak dari atas ke bawah seperti air terjun.
gambar 1 – Oleh Peter Kemp / Paul Smith – Adapted from Paul Smith’s work
Metode seperti ini terlihat sederhana, namun dapat menimbulkan banyak masalah seperti:
- Kurangnya komunikasi antar divisi (pengembangan dan operasional) karena mereka bekerja masing-masing. Hal ini dapat menimbulkan masalah dalam hal pemahaman proyek yang dikerjakan dan juga dalam hal operasional.
- Risiko akan kegagalan/masalah pada program. Karena pengujian dilakukan pada tahap akhir, maka bisa saja baru ditemukan masalah, misalkan pada kode yang digunakan. Hal ini menyebabkan tim harus mundur kembali ke tahap awal untuk coba menyelesaikan masalah tersebut. Hal ini tentu dapat meningkatkan biaya operasional yang dibutuhkan dalam pengembangan produk.
- Karena tahapan yang panjang, menyebabkan produk rilis dalam waktu yang lama, sehingga perusahaan pembuat program/aplikasi mungkin saja tertinggal atau kehilangan momentum pasar
Penerapan DevOps dapat membantu mengurangi risiko yang ditimbulkan dari metode waterfall ini. Berikut ini adalah solusi yang ditawarkan apabila DevOps diterapkan:
- Kolaborasi. DevOps sangat menekankan kolaborasi antara divisi pengembang dan operasional. Dengan berkolaborasi, kedua divisi tersebut dapat saling berbagi pengetahuan, misalkan tentang kebutuhan sistem, cara kerja, dan kode yang digunakan. Hal ini dapat membantu memastikan kedua divisi memiliki pemahaman yang baik tentang proyek yang dikerjakan.
- Otomatisasi. Tim dapat menggunakan beragam tools yang dapat digunakan untuk melakukan otomatisasi pada task tertentu, misalkan task yang dilakukan secara rutin. Dengan menerapkan otomatisasi diharapkan akan mengurangi beban kerja tim dan dapat mengurangi risiko kecerobohan atau kegagalan yang disebabkan oleh human error.
- Continuous integration & continuous deployment (CI/CD). Topik ini adalah hal yang identik dengan DevOps. CI melibatkan proses penggabungan perubahan kode yang dilakukan oleh tim ke dalam repositori bersama. Pada tahapan ini juga dilakukan berbagai pengujian. Sehingga apabila terdapat suatu kegagalan, tim dapat mengetahui hal ini dan dapat memperbaikinya sebelum proyek ini berlanjut ke tahap berikutnya. CD melibatkan otomatisasi dalam meneruskan program ke dalam lingkungan produksi setelah melalui tahap CI dimana program sudah menjalani berbagai integrasi dan pengujian. CD memungkinkan proses deployment yang lebih cepat.
- Monitoring dan feedback. DevOps juga memprioritaskan monitoring dan feedback guna melihat kinerja program yang dikembangkan agar dapat lebih cepat melakukan perbaikan/peningkatan apabila terdeteksi ada suatu kegagalan atau hal yang kurang pada program yang dikembangkan.
Masih banyak hal lagi yang ditawarkan DevOps yang belum ditulis pada tulisan ini. Dengan menerapkan DevOps, perusahaan/organisasi dapat mendapatkan/mencapai banyak manfaat seperti produksi program/aplikasi yang lebih cepat, mengurangi risiko kegagalan dalam pengembangan program, meningkatkan efisiensi, dan dapat lebih adaptif terhadap perkembangan zaman dan perubahan pasar.
Itu dulu tulisan saya kali ini. Di tulisan yang akan datang saya akan coba tulis hal-hal yang kayanya menarik untuk ditulis, dan menjaga pemahaman agar tetap paham (?). Mungkin masih tentang DevOps, atau materi kuliah saya hehe. Sampai jumpa, bye~