Development and IT operations (DEVOPS)


Pengertian DevOps

DevOps merupakan singkatan dari dua kata yaitu Development dan Operation. Di mana kedua kata tersebut bermakna “operasional pengembang”. Seperti yang disebutkan sebelumnya, DevOps adalah sebuah prinsip developer untuk mengkoordinasikan antar tim yaitu tim development dengan tim operations dengan efektif dan efisien.

Pola pikir yang dibentuk oleh DevOps adalah koordinasi antar tim yang dapat dilakukan dengan cara singkat sehingga tidak membutuhkan banyak pertanyaan. Tim operation atau development cukup mengonfigurasi beberapa komponen yang dibutuhkan melalui prosedur yang dibuat.

 

Tujuan DevOps

1.      Meningkatkan deployment frequency.

2.      Meningkatkan waktu pemasaran.

3.      Menurunkan tingkat kegagalan pada rilisan terbaru.

4.      Mempersingkat waktu perbaikan.

5.      Meningkatkan waktu pemulihan.


Kegiatan DevOps

1.      Continuous Integration

Continuous Integration merupakan layanan yang diberikan DevOps untuk melakukan build dan automation testing. Kegiatan ini dikerjakan dengan menggunakan tools berupa Source Code Repository (SCR) untuk menemukan error code dan fixed code.

2.      Continuous Delivery

Continuous Delivery selalu bekerja di dalam software development untuk merubah kode. Proses ini dilakukan setelah Continuous Integration untuk menambah update lebih banyak untuk aplikasi yang sedang berjalan.

3.      Continuous Deployment

Setelah proses Continuous Integration-Delivery sudah dinyatakan dengan baik, tim development dapat melihat perubahan yang terjadi pada environment test / environment development / environment production.

4.      Configuration Management

Proses ini berkaitan dengan system engineering yang bertujuan untuk maintain konfigurasi sebuah produk. Configuration Management memungkinkan otomatisasi dan standardisasi konfigurasi produk.

5.      Infrastructure as a Code (IAAC)

IAAC adalah pekerjaan yang mana infrastruktur suatu produk didefinisikan melalui kode yang dapat diprogram, distandarisasi, dan mudah dalam duplikasi. Melalui IAAC, tim development dapat menambah mesin melalui satu baris kode.

6.      Monitoring

Produk IT menjadi sangat baik karena adanya proses monitoring saat produk tersebut digunakan oleh pengguna. Tujuannya adalah untuk mengetahui bagaimana perubahan yang ada pada kode cukup berdampak pada produk dan penggunanya.

7.      Logging

Centralized logging menjadi hal yang tidak dapat dipisahkan dari kegiatan DevOps. Dengan menerapkan log aplikasi, kita developer bisa mengetahui produk yang dibuat berjalan dengan baik atau tidak.

 

Tools yang Digunakan DevOps

 

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.

 

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

 

Cara Kerja DevOps

1.    Plan

Tahap awal adalah perencanaan untuk seluruh alur kerja yang dibutuhkan sebelum tim pengembang mulai menulis kode dengan cara mereka akan bekerjasama untuk mengumpulkan requirements dan feedback dari klien. Informasi tersebut kemudian akan dikumpulkan untuk membangun roadmap produk untuk memandu proses pengembangan yang akan dilakukan.

 

2.    Code

Setelah rencana dibuat, tim developer dapat mulai menulis kode yang dibutuhkan untuk mengembangkan produk. Tim developer biasanya akan menggunakan seperangkat plugin standar yang dipasang di lingkungan pengembangan mereka untuk membantu proses pengembangan, membantu menerapkan gaya kode yang konsisten, serta menghindari kelemahan keamanan umum dan anti-pattern.

 

 

3.    Build

Setelah tim developer selesai menulis kode yang dibutuhkan, mereka akan memasukan kode tersebut ke dalam shared code repository. Developer akan mengirimkan pull request, setelah developer yang lain akan mereview perubahan yang telah dilakukan.

 

4.    Test

Langkah selanjutnya adalah melakukan pengujian.  Jika ada masalah yang ditemukan pada fase ini, maka masalah tersebut akan dikirim kembali ke tim developer untuk diselesaikan.

 

5.    Release

Relase adalah tonggak penting dalam DevOps pipeline. Pada tahap ini, setiap perubahan kode telah melewati serangkaian pengujian dan tim IT operations telah memastikan bahwa masalah yang merusak dan regresi sudah teratasi dengan baik.

 

6.    Deploy

Setelah production environment dibuat dan dikonfigurasi maka versi terakhir dari pengembangan yang telah dilakukan akan diterapkan.

 

7.    Monitor

Pada tahap terakhir ini, tim IT operations akan terus bekerja keras untuk memantau infrastruktur, sistem, dan aplikasi. Mereka juga mengumpulkan data-data penting dari log, analitik, sistem monitoring, serta melihat feedback dari pengguna untuk mengetahui jika ada masalah pada kinerja aplikasi.



 

Referensi:
https://www.logique.co.id/blog/2021/05/28/apa-itu-devops/

Komentar

Postingan Populer