DEVOPS (Development (Dev) & IT Operations (Ops))

 DEVOPS

Seiring berkembangnya teknologi, pembuatan aplikasi kini bisa dilakukan secara cepat dan efektif. Salah satu caranya adalah dengan sistem DevOps. DevOps adalah prinsip yang kini diadopsi oleh banyak perusahaan besar seperti Gojek, Amazon, dan Microsoft karena beragam manfaatnya. DevOps telah menjadi fenomena yang dibahas dengan jelas dalam rekayasa perangkat lunak selama beberapa tahun terakhir.

DevOps menjawab tantangan dari apa yang sering digambarkan sebagai kesenjangan antara pengembangan dan personil operasi. Laporan  membawa harapan positif dari DevOps dan organisasi menjadi semakin tertarik dengan fenomena tersebut dan bagaimana memanfaatkan potensi manfaatnya. Namun, istilah itu sendiri dikelilingi oleh ambiguitas. Sedangkan tujuan jelas "menjembatani kesenjangan antara pengembangan dan operasi", ada masih banyak interpretasi tentang apa arti DevOps sebenarnya.


APA ITU DEVOPS?

DevOps merupakan singkatan dari dua kata Development dan Operation. Di mana kedua kata tersebut memiliki arti menggabungkan proses pengembangan dari sebuah sistem/aplikasi dengan operasional. Di dalam proyek, tim development bertanggung jawab untuk terus menciptakan aplikasi baru dan memodifikasi yang sudah ada untuk membuatnya lebih baik. Sementara, tim operations harus dapat memastikan semuanya beroperasi secara optimal serta memastikan bahwa sumber daya jaringan tersedia dan berfungsi dengan kinerja yang baik.


APA TUJUAN DEVOPS?

DevOps bertujuan untuk meningkatkan kolaborasi antara tim development dan tim operation dari mulai perencanaan hingga aplikasi/fitur ter-deliver ke pengguna. Semua itu harus dilakukan secara otomatis agar:

  1. Meningkatkan deployment frequency.
  2. Meningkatkan waktu pemasaran.
  3. Menurunkan tingkat kegagalan pada rilisan terbaru.
  4. Mempersingkat waktu perbaikan.
  5. Meningkatkan waktu pemulihan.

SIKLUS HIDUP DEVOPS

Siklus hidup DevOps membentang dari awal pengembangan perangkat lunak hingga pengiriman, pemeliharaan, dan keamanan. 10 tahap siklus hidup adalah:

1. Manage : DevOps menutup loop dan menggabungkan umpan balik dan pembelajaran dari seluruh siklus hidup ke dalam iterasi yang sedang berlangsung.

2.  Plan : DevOps menjelaskan pekerjaan yang perlu dilakukan, memprioritaskannya, dan melacak penyelesaiannya.

3. Create : DevOps menulis kode, mengusulkan perubahan, dan mendiskusikan proposal ini dengan rekan kerja.

4.  Verify : DevOps secara otomatis menguji kode untuk memastikan kode berfungsi dengan benar.

5. Package : DevOps menyimpan perangkat lunak dalam keadaan yang dapat digunakan kembali nanti.

6. Secure : DevOps memeriksa apakah perangkat lunak mengandung kerentanan melalui pengujian statis dan dinamis, pengujian fuzz, dan pemindaian ketergantungan.

7. Release : DevOps menyebarkan perangkat lunak ke pengguna akhir.

8. Configure : DevOps mengelola infrastruktur dan platform perangkat lunak.

9. Monitor : DevOps melihat dampak perangkat lunak pada infrastruktur dan pengguna. Ini juga menyediakan data untuk membantu merespons insiden secara efektif.

10. Protect : DevOps mengamankan infrastruktur tempat perangkat lunak berjalan dengan memastikan container selalu up to date dan terkunci.


Penerapan metode DevOps memiliki banyak sekali kelebihan, akan tetapi terdapat juga kekurangan juga dari penerapan metode ini.

Berikut adalah kelebihan dan kekurangan dari penerapan metode DevOps.

Kelebihan :

1.     Siklus pengembangan yang lebih pendek

2.     Meningkatkan kualitas dan fleksibilitas

3.     Biaya yang lebih efisien

4.     Kontrol Resiko dan Pemulihan yang lebih baik

5.     Dapat meningkatkan Praktik Keamanan

 

Kekurangan :

1.     Penerapan Metode DevOps harus merubah kebiasaan atau kebudayaan dalam pengembangan proyek

2.     Membutuhkan Software Engineering yang ahli

3.     Memerlukan kolaborasi yang kuat


MANFAAT DEVOPS

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 dibandingan 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.

 

4.   Skillset menjadi DevOps Engineer

seorang insinyur DevOps memiliki prioritas utama untuk menghadirkan fitur bernilai tinggi dalam waktu singkat melalui kolaborasi lintas tim. Hal ini membuat insinyur DevOps membutuhkan keterampilan yang lengkap di bidang teknis, peralatan, dan juga interpersonal. Hal ini membuat seorang insinyur DevOps


membutuhkan campuran keterampilan di bidang softskill dan hardskill atau technical skill.

 

Juga beberapa kemampuan yang umum dimiliki oleh seorang insinyur DevOps adalah sebagai berikut,

 

1) Kolaborasi dan komunikasi, DevOps menghadirkan pendekatan kolaboratif untuk proses pengembangan, pengujian, dan produksi perangkat lunak. Hal ini berarti adanya tujuan bersama dalam sebuah tim dilakukan secara efisien dan komunikatif. Kolaborasi dan komunikasi antar persona dalam urusan teknis hingga manajemen internal amat diperlukan dalam DevOps karena kepentingan efektivitas pengembangan.

 

2) Pemahaman alat, seorang insinyur DevOps juga diwajibkan mengetahui dan memahami cara menggunakan beberapa alat dalam pengembangan hingga pengiriman perangkat lunak seperti version control, continuous integration servers, configuration management, deployment automation, containers, infrastructure orchestration, monitoring and analytics, Testing and Cloud Quality tools, dan Network protocols.

 

3) Keterampilan pemrograman khusus dan coding, hampir semua pendekatan pengembangan memerlukan keterampilan pemrograman. Begitu pula bagi insinyur DevOps yang diwajibkan menguasai hal ini untuk mempertahankan serangkaian tanggung jawab pengodean unik pada tiap perangkat lunak atau aplikasi yang dikembangkan. Keterampilan ini meliputi Java, JavaScript, Ruby, Python, PHP, Bash, dan lain sebagainya.

 

4) Sinkronisasi dengan tim Quality Assurance (QA), insinyur DevOps harus melakukan sinkronisasi dengan tim QA. Semua aktivitas pengujian, termasuk otomatis dan manual harus diketahui dan terlihat oleh teknisi DevOps untuk memastikan organisasi memenuhi tujuan dan tanggal rilis hingga hasil. Insinyur DevOps harus memahami kegiatan pengujian, mengetahui riwayat pengujian dalam siklus CI/CD (Continuous integration/Continuous delivery), dan memahami kerangka kerja yang dipimpin oleh Tim QA

 


Refrensi : https://about.gitlab.com/topics/devops/

Komentar

Postingan populer dari blog ini

Sejarah Sistem Informasi dan Teknologi sampai saat ini

Information Technology Infrastructure Library (ITIL)

MANUSIA DALAM INDIVIDU, DALAM KELUARGA, DALAM LINGKUNGAN HIDUP DAN DALAM LINGKUNGAN KAMPUS.