Seiring dengan berkembangnya dunia digital, banyak profesi mulai bermunculan. Salah satunya di dunia Software Engineering yaitu DevOps Engineer. Pada artikel ini mari kita bahas tentang profesi DevOps tersebut, mulai dari apa itu DevOps, tugas seorang DevOps sampai contoh tools yang digunakan.
Apa itu DevOps dan Sejarahnya?
Pertama kita akan bahas sedikit tentang sejarah DevOps yang dimulai sejak tahun 2007, di mana Patrick Debios (seorang IT konsultant) merasa terganggu dengan perbedaan antara cara tim development dan tim operation bekerja. Lalu Patrick dipertemukan dengan Andrew Shafer untuk memulai Agile System Administration. Kemudian, pada tahun 2010 banyak yang mulai mempelajari tentang DevOps. Hingga tahun 2014 beberapa perusahaan besar mulai menerapkan prinsip DevOps ke perusahaannya.
DevOps sendiri merupakan singkatan dari dua kata yaitu Development (Dev) dan Operation (Ops). DevOps adalah sebuah prinsip developer untuk mengkoordinasikan antar tim yaitu tim development dengan tim operation dengan efektif dan efisien.
Dalam sebuah proyek, tim development bertanggung jawab untuk terus membuat aplikasi baru dan melakukan update pada aplikasi yang sudah digunakan untuk membuatnya lebih baik dan efektif. Sementara, tim operation harus mampu memastikan semua beroperasi secara optimal. Tim operations ini juga memastikan bahwa sumber daya jaringan tersedia dan berfungsi dengan baik.
Sebelum ada DevOps, proyek software development umumnya menggunakan model “WATERFALL”.
Dalam model WATERFALL ini tidak ada mekanisme development terintegrasi antar tim, sehingga tim development dan operation akan bekerja di lingkungannya masing-masing. Karena tidak adanya kolaborasi antar tim ini mengakibatkan siklus rilis sebuah software menjadi sangat lama. Selain itu karena model ini tidak fleksibel, membuat usulan fitur baru selama siklus development produk jadi terhambat.
Sekarang, dengan adanya DevOps ini kita dapat melakukan proses build, test dan release software lebih cepat. Dengan adanya hal ini sebuah patch update software juga dapat dilakukan dengan cepat. Tidak hanya update tetapi mereka juga dapat melakukan rollback dengan mudah jika ditemukan bug yang tidak tersentuh oleh automate testing maupun tim QA.
Lalu, apa itu DevOps Engineer?
DevOps Engineer adalah seseorang yang sangat paham dengan Software Development Life Cycle. DevOps Engineer memiliki tanggung jawab untuk mengerti berbagai macam tools otomatis yang dapat membangun digital pipelines.
Seorang DevOps Engineer biasanya akan bekerja sama dengan developer dan staf IT lainnya untuk membagikan serta membentuk kode-kode untuk dirilis, dicoba, dan juga diperbaiki jika ada kesalahan. Selain itu DevOps dibuat dengan tujuan sebagai berikut:
- Untuk memperpendek system development life cycle, dengan artian akan mempersingkat waktu antara proses coding dengan hasil coding naik ke production tanpa mengurangi kualitas software yang sedang dikembangkan.
- Adaptasi terhadap pasar dan persaingan dengan cepat.
- Menjaga stabilitas dan keandalan sistem.
- Menurunkan kendala komunikasi antar tim.
- Mempersingkat waktu perbaikan dan pemulihan aplikasi.
- Mempercepat waktu delivery product.
- Memangkas biaya infrastruktur.
- Menghasilkan budaya kerja yang baik.
Manfaat DevOps
DevOps sendiri memiliki tujuan dalam penerapannya agar sebuah perusahaan dapat mengambil manfaat dari penerapannya seperti berikut ini:
- Meminimalisir Kegagalan dan Mempercepat Proses Pengembangan aplikasi
Ketika tim Developer sudah diberikan keleluasaan dalam melakukan deploy kode, dan melakukan rollback kodenya sendiri. Selain itu developer dapat menulis kode secara lokal di laptop serta mengunggah kode tersebut ke server test. Kemudian dari sisi QA/Tester dapat melakukan pengecekan, selanjutnya jika pengecekan selesai developer dapat mengunggah kode ke Server Production. Langkah ini dianggap lebih cepat, efisien, serta mengurangi risiko kegagalan dibandingan jika tim Developer dan tim Operation dipisah. - Tim Developer & Operation Jadi Lebih Produktif Semenjak Ada DevOps
Dengan digabungkannya tim Developer dengan tim Operation, tentunya membuat mereka akan jauh lebih memungkinkan berkomunikasi secara lebih efektif. Hal ini membuat kedua tim akan memiliki satu tujuan bersama, yaitu mampu meluncurkan fitur secepat mungkin ke pengguna. - Meminimalisir Human Error Pada Software
Dengan bantuan beberapa tools yang digunakan seperti server yang berada di Cloud (AWS, GCP, Azure, dll), hingga Jenkins, profesi ini dapat membuat sebuah sistem di mana Developer bisa tinggal mengetikkan 1 perintah untuk secara otomatis mengunggah kode mereka ke server, dan begitu pula dengan rollback. Semua dapat dilakukan tanpa mengganggu Developer lain, server lain, maupun tanpa campur tangan manual tim Operation. Dengan begini semua sudah serba otomatis sehingga risiko terjadi Human Error menjadi lebih sedikit.
Dilansir dari atlassian.com, DevOps Trends Survey 2020 menyatakan hampir semua (99%) responden mengatakan DevOps membuat dampak positif pada organisasi mereka. Tim yang mempraktikkan DevOps mengirimkan hasil pekerjaan yang lebih baik dan lebih cepat, dan meningkatkan kolaborasi dan komunikasi antar tim.
Peran dan tanggung Jawab
Orang yang bekerja dalam lingkungan DevOps disebut dengan “DevOps Engineer”. Tapi banyak juga yang memanggilnya hanya sebatas “DevOps” saja. DevOps bertanggung jawab dalam merancang, mengembangkan, memecahkan masalah dan memastikan semua program berjalan dengan baik. Berikut ini peran serta tanggung jawab yang diemban dalam tim.
- Membuat ide, mendefinisikan, dan menjelaskan fitur serta kemampuan sistem yang akan dibangun.
- Melakukan otomatisasi dengan alat-alat selama proses pengembangan aplikasi, agar pengembang aplikasi dapat berjalan dengan cepat dan maksimal.
- Membuat prototype dari hasil diskusi dengan user agar pengembangan aplikasi sesuai dengan yang mereka diharapkan.
- Melakukan dokumentasi selama progres SDLC (siklus pengembangan aplikasi).
- Melacak bug, memonitoring sistem, dan mengelola pengembangan perangkat lunak dengan cepat.
- Saling berkomunikasi terkait masalah yang terjadi pada setiap proses development.
- Berinovasi dengan cepat tanpa mengorbankan kualitas, stabilitas, dan produktivitas.
- Mengidentifikasi masalah sebelum mempengaruhi user experience.
Tugas Seorang DevOps
Secara umum tugas DevOps adalah profesi yang bertanggung jawab dalam memahami berbagai macam tools otomatis dan framework, selain itu mampu bekerjasama dengan Developer dan Staff IT lainnya untuk membuat langkah-langkah kode pada suatu aplikasi untuk dapat di build, di test dan proses deployment serta menemukan error secara cepat jika terjadi kesalahan dalam proses delivery, namun jika kegiatan seorang DevOps Dijelaskan secara rinci, maka kegiatannya meliputi:
- Continuous Integration
DevOps engineer akan melakukan testing secara berulang untuk menemukan error dan memperbaiki kode. Jika pada proses ini terdapat error, maka error tersebut akan bisa cepat diketahui dan tertangani oleh tim Developer dan QA. - Continuous Delivery
Dalam proses ini, tim akan melakukan beberapa pengujian manual untuk menemukan error. Setelah proses pengujian dijalankan, tim akan melakukan lebih banyak pembaharuan dan perbaikan pada aplikasi. - Configuration Management
Proses ini berkaitan dengan pemeliharaan konfigurasi pada aplikasi. Dimana, tim akan memastikan otomatisasi pada aplikasi dapat berjalan dengan baik dan maksimal. - Infrastructure as a Code (IAC)
IAC adalah manajemen infrastruktur sebuah aplikasi melalui kode yang dapat diprogram, distandarisasi, dan diduplikasi. Nah, IAC ini berguna agar ketika data aplikasi hilang, tim tidak perlu kesulitan membangun aplikasi dari awal karena IAC bisa menyediakan sumber daya, mengembalikan konfigurasi, dan memulihkan data-data lainnya dari cadangan. - Logging
Tim akan meninjau setiap kejadian dalam sistem, termasuk keberhasilan update dan error. Dari situ, tim akan membuat catatan penting tentang aplikasi secara real-time. Nantinya, data log ini menjadi acuan dan dapat membantu tim Devops memecahkan masalah dengan mengidentifikasi perubahan yang ada. - Monitoring
Sementara dalam monitoring, tim akan bertugas untuk mendeteksi seluruh hal yang berkaitan pada sistem, termasuk aplikasi dan layanan cloud. Jika ada penyimpangan/ anomali, tim akan mencatat dan sesegera mungkin dan memperbaikinya. Proses monitoring juga berguna untuk melihat perubahan kode aplikasi. Apakah kode ini memberikan dampak baik atau tidak. Nah, proses monitoring ini membutuhkan hasil dari logging. Karena jika tidak ada data log, proses monitoring tidak akan berjalan baik karena kekurangan sumber data penting.
Demikian Pembahasan kali ini tentang DevOps dan tugasnya. Silahkan kunjungi Channel Youtube Equine Technologies Group untuk melihat lebih banyak pembahasan menarik tentang profesi lainnya yang ada di bidang IT.
Untuk informasi lebih lanjut tentang Xsis dan Services-nya bisa langsung kunjungi website kami di www.xsis.co.id | Email : info@xsis.co.id | Phone : (+62) 21 2788 3570
Penulis : Penulis : Aulia Brahmantio Diaz – Webmaster Xsis Mitra Utama
Source : Equine Technologies Group Youtube – Mengenal Profesi DevOps