Apa itu DevOps? Berikut Penjelasan Lengkapnya

Apa itu DevOps? Berikut Penjelasan Lengkapnya

Sebagai seorang programmer mungkin kamu sering mendengar istilah “DevOps” ya. Bahasan artikel kali ini menjadi sangat menarik karena DevOps bukan sejenis software, aplikasi, teknologi, ataupun tools. Melainkan sebuah prinsip atau pola pikir yang digunakan di dunia IT.

Kamu bisa jadi lelah jika harus mempelajari jutaan kode di berbagai bahasa pemrograman, algoritma atau sistem terstruktur setiap saat. Sekali-kali kamu belajar mengenai bagaimana manajemen perusahaan dalam merencanakan sebuah project sehingga tim yang dikendalikan dapat bekerja dengan baik.

Sejarah DevOps dimulai sejak tahun 2007, di mana Patrick Debois (seorang konsultan development) memiliki tujuan untuk mempelajari berbagai aspek tentang IT. Ia merasa terganggu dengan perbedaan antara cara tim development dan tim operations bekerja. Lalu Patrick dipertemukan dengan Andrew Shafer untuk memulai Agile System Administration.

Tahun 2010 pembahasan mengenai DevOps mulai gencar di seluruh dunia dengan tagar DevOpsDays bermunculan di media sosial. Hingga tahun 2014 perusahaan besar seperti Target, Nordstrom, dan LEGO menjadi perusahaan pertama yang menerapkan prinsip DevOps ke perusahaannya.

Apa itu DevOps?

Apa itu 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.

DevOps merupakan singkatan dari dua kata yaitu Development dan Operation. Di mana kedua kata tersebut bermakna menggabungkan proses development/pengembangan dari sebuah sistem/aplikasi dengan operation/operasional. 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.

Tentunya koordinasi yang diterapkan pada DevOps membutuhkan sebuah tools. Banyak tools yang bisa kamu gunakan, 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 GitHu, GitLab, Bitbucket, atau yang lainnya. Namun SCM saja tak cukup untuk mengomunikasikan antara tim development dengan tim operational.

Agar tim operational dapat mengetahui permasalahn yang terjadi, biasanya akan dihubungkan ke Product Management Software, seperti Jira. Melalui Product Management Software, tim operation dapat mengetahui berbagai permasalahan yang terjadi pada sistem/aplikasi. Sehingga antara pihak development dengan operational akan saling terhubung satu sama lain.

Tujuan DevOps

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.

Menurut laporan State of DevOps pada tahun 2015, organisasi IT yang menerapkan DevOps menghasilkan kinerja 30x lebih tinggi dengan 200x efisiensi waktu, kegagalan 60x lebih sedikit, dan proses pemulihan 168x lebih cepat.

Tools yang Digunakan DevOps

Tools DevOps

Melalui berbagai referensi, ternyata ada banyak alat bantu untuk menerapkan DevOps yang harus kamu tahu.

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

Skill DevOps Engineer

Skill DevOps

Melalui data yang diberikan oleh platform kerja Jobstreet, terdapat informasi 16 lowongan kerja dengan jabatan DevOps Engineering. Gaji yang diberikan berkisar mulai dari 8 juta hingga 20 juta dengan syarat berpengalaman 3 – 5 tahun.

Sebelum terjun ke dunia DevOps, perlu kamu ketahui dulu beberapa skill yang dibutuhkan untuk mengerjakan tanggung jawab ini. Skill tersebut seperti Python, AWS, Agile, SDLC, DevOps, Kubernetes, Docker, Scripting, Jenkins, dan Linux. Permintaan skill tersebut berdasarkan informasi rekrutmen di perusahaan LogisFleet yang sedang membutuhkan pekerja sebagai DevOps Engineering.

Kegiatan DevOps

Gambar alur devops

Alur dari sistem DevOps via Atlassian.

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

Kesimpulan

DevOps adalah instrumen lingkungan kerja pada perusahaan IT yang sedang berkembang saat ini. Prinsip ini dibuat dan digunakan untuk mengatasi berbagai permasalahan yang ada perusahaan IT untuk mengatur alur source code dalam hal pengembangan dan operasional.

“Kepemimpinan yang efektif adalah mengutamakan hal terpenting. Manajemen yang efektif adalah disiplin dan just do it.” (Stephen Covey)

Saat ini, DevOps Engineer menjadi salah satu profesi yang sedang berkembang dan prospek di masa mendatang. Kamu hanya cukup memenuhi persyaratan dan skill yang dibutuhkan perusahaan melalui rekrutmen kerja.

Baca juga artikel terkait berikut ini :

  1. Pengenalan dan Registrasi IBM BlueMix
  2. Cerita Magang di Dicoding : Empat Belia, Empat Cerita, Empat Asa

Apa itu DevOps? Berikut Penjelasan Lengkapnya – karya Alfian Dharma Kusuma, Intern Junior Content Writer di Dicoding

Belajar mengembangkan aplikasi atau game dengan kurikulum yang telah divalidasi langsung oleh industri dengan Dicoding Academy.

Belajar di Dicoding Sekarang →
Share this:

Intern Junior Content Writer di Dicoding