DevOps: Pengertian, Sejarah, dan Tujuan

DevOps: Pengertian, Sejarah, dan Tujuan
DevOps: Pengertian, Sejarah, dan Tujuan

DevOps: Pengertian, Sejarah, dan Tujuan - Kali ini saya akan membahas Pengertian DevOps, Sejarah, dan Tujuannya. Jika kalian seorang programmer mungkin sering mendengar istilah DevOps. DevOps bukan sejenis software, aplikasi, teknologi, ataupun tools. Tetapi sebuah prinsip atau pola pikir yang digunakan di dunia IT.

Apa itu DevOps?

DevOps adalah singkatan dari dua kata yaitu Development dan Operation. Dua kata tersebut bermakna “operasional pengembang”. 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 bisa dilakukan dengan cara singkat sehingga tidak membutuhkan banyak pertanyaan. Tim operation atau development cukup mengonfigurasi beberapa komponen yang dibutuhkan melalui prosedur yang dibuat.

Koordinasi yang diterapkan pada DevOps membutuhkan sebuah tools. Banyak tools yang bisa kalian gunakan, salah satunya adalah Source Code Management (SCM) yang biasa digunakan secara umum oleh tim development. Produk SCM yang paling terkenal yaitu Git, ditemani oleh Source Code Repository (SCR) seperti GitHu, GitLab, Bitbucket, atau yang lainnya. Tetapi SCM saja tak cukup untuk mengomunikasikan antara tim development dan tim operational.

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

Sejarah DavOps

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

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

Tujuan DevOps

DevOps bertujuan untuk meningkatkan kolaborasi antara tim development dan tim operation dari mulai perencanaan samai aplikasi atau fitur terdeliver ke pengguna. Semua itu harus dilakukan secara otomatis agar :
  • Meningkatkan deployment frequency.
  • Meningkatkan waktu pemasaran.
  • Menurunkan tingkat kegagalan pada rilisan terbaru.
  • Mempersingkat waktu perbaikan.
  • Meningkatkan waktu pemulihan.

Tools yang Digunakan DevOps

DevOps Tools, ternyata ada banyak alat bantu untuk menerapkan DevOps, yaitu :
  1. Source Code Management

  2. Melalui sumber repository, antar developer dapat memeriksa dan mengubah kode tanpa perlu saling menulis satu sama lainnya. Source control telah ada sejak 40 tahun yang lalu dan merupakan komponen utama dari Continuous Integration atau CI. Contoh produk yang berfungsi sebagai SCM yaitu Git, Subversion, Cloudforce, Bitbucket, dan TFS.

  3. Build Server

  4. Build server adalah alat otomatisasi yang mengkompilasi kode dalam SCR (Source Code Repository) ke dalam basis kode yang dapat dieksekusi. Alat ini dapat kalian temui seperti Jenkins, SonarQube, dan Artifactory.

  5. Configuration Management

  6. Manajemen konfigurasi berfungsi untuk menetapkan konfigurasi pada server atau lingkungannya. Alat yang populer seperti Puppet dan Chef.

  7. Virtual Infrastructure

  8. Virtual Infrastructure disediakan oleh vendor cloud yang menjual insrastruktur atau Platform as a Service (PaaS). Infrastruktur ini mempunyai API yang memungkinkan membuat mesin baru yang terprogram dengan alat manajemen konfigurasi. Contoh infrastruktur virtual adalah Amazon Web Services dan Microsoft Azure.

    Ada juga private cloud di mana private infrastructure virtual memungkinkan untuk 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. Apabila kalian mau menguji kode baru, cukup mengirimkan kode ke infrastruktur cloud untuk membangun lingkunganya saja. Lalu tes akan dijalankan tanpa adanya campur tangan manusia.

  9. Test Automation

  10. 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 yaitu Selenium dan Air.

DevOps Engineer Skill 

DevOps Engineer adalah seseorang yang sangat memahami Software Development Life Cycle dan memiliki tanggung jawab untuk mengerti berbagai macam tools otomatis yang dapat membangun digital pipelines. Skill yang dibutuhkan seperti Python, AWS, Agile, SDLC, DevOps, Kubernetes, Docker, Scripting, Jenkins, dan Linux. Permintaan skill berdasarkan informasi rekrutmen yang ada pada tiap perusahaan LogisFleet yang sedang membutuhkan pekerja sebagai DevOps Engineering.

Kegiatan DevOps

  1. Continuous Integration

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

  3. Continuous Delivery

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

  5. Continuous Deployment

  6. Setelah proses Continuous Integration-Delivery sudah bisa dikatakan baik, tim development bisa melihat perubahan yang pada environment test / environment development / environment production.

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

  9. Infrastructure as a Code (IAAC)

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

  11. Monitoring

  12. Produk IT sangat baik karena adanya proses monitoring saat produk tersebut digunakan oleh user. Bertujuan untuk mengetahui bagaimana perubahan yang ada pada kode cukup berdampak pada produk dan penggunanya.

  13. Logging

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

Penutup

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

Perlu kalian ketahui bahwa DevOps Engineer ini merupakan salah satu profesi yang sedang berkembang dan prospek di masa mendatang. Kalian hanya cukup memenuhi persyaratan dan skill yang dibutuhkan perusahaan melalui rekrutmen kerja atau kalian bisa mengikuti Devops Bootcamp.