DevOps: Pengertian, Tujuan, Tools, Tugas, Skill, dan Manfaatnya
DevOps Development Operation) |
Pengertian DevOps
DevOps (Development Operation) atau operasional pengembang adalah prinsip developer untuk membangun koordinasi yang efektif dan efisien antar tim development dengan tim operations dengan cara singkat sehingga tidak membutuhkan banyak pertanyaan. Tim operation atau development cukup mengonfigurasi beberapa komponen yang dibutuhkan melalui prosedur yang dibuat.
Banyak tools yang bisa digunakan untuk membangun koordinasi ini, salah satunya adalah Source Code Management (SCM) yang biasa digunakan secara umum oleh tim development. Produk SCM yang paling terkenal adalah Git, ditemani oleh Source Code Repository (SCR) seperti GitHub, GitLab, Bitbucket, atau yang lainnya.
Kemudian, agar tim operational dapat mengetahui permasalahan yang terjadi, akan dihubungkan ke Product Management Software. Melalui Product Management Software, tim operation dapat mengetahui berbagai permasalahan yang terjadi pada sistem. Sehingga antara pihak development dengan operational akan saling terhubung satu sama lain.
Tujuan DevOps
DevOps bertujuan untuk meningkatkan kolaborasi antara tim development dan tim operation dari mulai perencanaan hingga produk ter-deliver ke pengguna. Semua itu harus dilakukan secara otomatis dengan tujuan di antaranya,
1. Meningkatkan deployment frequency.
2. Meningkatkan waktu pemasaran.
3. Menurunkan tingkat kegagalan pada rilisan terbaru.
4. Mempersingkat waktu perbaikan.
5. Meningkatkan waktu pemulihan.
Tools DevOps
Terdapat beberapa alat bantu untuk menerapkan DevOps di antaranya,
1. Source Code Management
Melalui sumber repository, antar developer dapat memeriksa dan mengubah kode tanpa perlu saling menulis satu sama lainnya. Source control ini mungkin telah ada sejak 40 tahun yang lalu, tetapi ini merupakan komponen utama dari Continuous Integration atau CI.
Adapun contoh produk yang berfungsi sebagai SCM yaitu Git, Subversion, Cloudforce, Bitbucket, dan TFS.
2. Build Server
Build server adalah alat otomatisasi yang mengkompilasi kode dalam SCR (Source Code Repository) ke dalam basis kode yang dapat dieksekusi. Alat ini bisa kamu temukan seperti Jenkins, SonarQube, dan Artifactory.
3. Configuration Management
Manajemen konfigurasi berguna untuk menetapkan konfigurasi pada server atau lingkungannya. Alat yang populer biasa kamu temukan seperti Puppet dan Chef.
4. Virtual Infrastructure
Amazon Web Services dan Microsoft Azure adalah contoh infrastruktur virtual. Virtual Infrastructure ini disediakan oleh vendor cloud yang menjual insrastruktur atau Platform as a Service (PaaS). Infrastruktur ini memiliki API yang memungkinkan kamu membuat mesin baru yang terprogram dengan alat manajemen konfigurasi.
Ada juga private cloud di mana private infrastructure virtual memungkinkan Anda menjalankan cloud di hardware sebagai data terpusat.
Alat ini dikombinasikan dengan alat otomatisasi untuk memberdayakan organisasi yang melatih DevOps dengan kemampuan konfigurasi server tanpa jari di atas keyboard. Jika ingin menguji kode baru, cukup mengirimkan kode ke infrastruktur cloud untuk membangun lingkungan. Kemudian tes dijalankan tanpa adanya campur tangan manusia.
5. Test Automation
Test automation sebenarnya sudah ada sejak lama. Pengujian yang diadopsi oleh DevOps berfokus pada pengujian otomatis melalui pipeline build untuk memastikan bahwa build deployable sudah dilakukan. Tools populer untuk tahapan ini adalah Selenium dan Air.
Tugas DevOps Engineer
Terdapat beberapa tugas dan tanggung jawab seorang DevOps engineer di antaranya,
1. Mengelola Keamanan Sistem
Bekerja pada bagian infrastruktur IT, seorang DevOps juga mendesain infrastruktur keamanan yang disebut dengan cyber-secure system.
2. Manajemen Proyek
DevOps engineer, harus bisa mengelola berbagai proyek. Maka ada beberapa tanggung jawab yang berkaitan dengan hal tersebut, yaitu membuat jadwal, mengadakan rapat, membuat deadline, mengecek pekerjaan tiap anggota tim serta melakukan asesmen, membimbing dan memberi masukan mengenai proyek.
3. Automasi Task yang Berulang
Task berulang membuat task yang dikerjakan menjadi kurang efektif, untuk itu, DevOps engineer bertugas sebagai orang yang mengurangi task yang repetitif tersebut. Dengan begitu, pekerjaan developer akan lebih efisien dan cepat dengan kesalahan minim.
4. Meningkatkan Infrastruktur IT
DevOps engineer berfokus pada pendekatan CI/CD yang membantu mereka dalam membuat perubahan kecil pada bagian infrastruktur IT.
5. Memonitor dan Report Error
DevOps engineer secara teratur memantau perangkat lunak dan sistem untuk memperbaiki kesalahan sistem dengan cepat. DevOps engineer secara khusus tertarik untuk mengurangi waktu antara saat masalah diidentifikasi (yaitu, Waktu untuk Mendeteksi atau TTD) dan ketika itu diperbaiki (yaitu, Waktu untuk Meminimalkan atau TTM).
6. Optimasi Release Cycles
Insinyur DevOps mempersingkat siklus rilis sistem dengan meminimalkan jumlah waktu dan sumber daya yang diperlukan untuk proyek atau pembaruan.
Insinyur DevOps dapat mengoptimalkan siklus rilis dalam berbagai metode, seperti mengurangi pengurasan waktu, memprioritaskan komponen penting dari setiap rilis, atau memperkenalkan perangkat lunak dan teknologi baru.
7. Benchmarking Performa dan Testing
DevOps engineer menggunakan pengujian benchmark untuk memantau operasi infrastruktur TI sehari-hari. Benchmark testing membantu mereka dalam mengidentifikasi inefisiensi dalam sistem dan mengurangi masalah sebelum terjadi.
Baca Juga: Pengertian Benchmarking, Jenis, Proses, Hambatan, Manfaat, dan Contohnya
Setiap DevOps engineer menerapkan tes benchmark yang berbeda tergantung pada organisasi dan proyek yang dijalankan, tetapi mereka semua mengikuti tujuh prinsip benchmarking. Ketujuh konsep benchmarking tersebut adalah relevansi, keterwakilan, keseimbangan, pengulangan, cost-effectiveness, skalabilitas, keterbukaan.
Skill DevOps Engineer
Berikut beberapa hard skill wajib seorang DevOps engineer di antaranya,
1. Memahami cara menggunakan tool automasi seperti Jenkins dan Bamboo Atlassian.
2. Mengerti cara menggunakan VCS (version control system) seperti Git.
3. Bisa menggunakan tool repositori seperti GitHub, GitLab atau BitBucket.
4. Paham cara penggunaan tool manajemen konfigurasi seperti Puppet dan Chef.
5. Mampu memahami cara menggunakan software monitoring seperti Nagios dan Raygun.
6. Memiliki skill coding dan memahami bahasa pemrograman dan skrip.
7. Menguasai tool container seperti Kubernetes dan Docker.
8. Familiar dengan tool pengelolaan proyek seperti Trello, Monday, Jira atau Confluence.
9. Memahami apa itu komputasi awan atau cloud computing.
10. Bisa menggunakan dan mengembangkan WordPress.
Sementara soft skill yang harus dikuasai DevOps engineer di antaranya,
1. Kemampuan komunikasi.
2. Bisa berkolaborasi dengan tim lain.
3. Mampu berbicara dengan pelanggan.
4. Memiliki skill problem-solving.
5. Berpikir kreatif dan memiliki pemikiran yang terbuka.
Manfaat DevOps di perusahaan
Berikut beberapa manfaat jika sebuah perusahaan besar, maupun startup memiliki posisi ini di perusahaan di antaranya,
1. Mempercepat proses develop aplikasi serta mengurangi risiko kegagalan
Ketika tim Developer sudah diberikan keleluasaan dalam melakukan deploy kode, dan rollback kodenya sendiri, developer mampu menulis kode secara lokal di laptop serta mengunggah kode ke server test. Setelah itu, QA/Tester melakukan pengecekan selanjutnya developer mengunggah kode ke Server Production.
Langkah ini lebih cepat, efisien, serta mengurangi risiko kegagalan dibandingkan jika tim Developer dan tim Operation dipisah.
2. Tim yang lebih produktif
Dengan digabungkannya tim Developer dengan tim Operation, tentunya membuat mereka akan jauh lebih memungkinkan untuk berkolaborasi dan berkomunikasi secara lebih efektif. Hal ini membuat kedua tim akan memiliki satu tujuan bersama, yaitu mampu meluncurkan fitur atau bug secepat mungkin ke pengguna.
Tujuannya adalah untuk memunculkan rasa saling memiliki dan meningkatkan produktivitas tim.
3. Angka human error yang lebih rendah
Dengan bantuan beberapa tools yang digunakan seperti server yang berada di Cloud (AWS, GCP, Azure, dll), Jenkins, Ansible, hingga Python, 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.
Dari berbagai sumber
Post a Comment