mengenal devops

DevOps adalah gabungan dari Development dan Operations. Kombinasi tersebut dirancang agar dapat meningkatkan kemampuan sebuah perusahaan untuk proses delivery aplikasi dengan kecepatan tinggi. Simak yuk dengan seksama Yuk Kenalan dengan DevOps, Tugasnya, dan Skill Wajibnya

Apa Itu DevOps?

DevOps sebenarnya merupakan blending dari istilah development dan operations. Istilah ini ditemukan oleh Patrick Debois di awal tahun 2000-an,lebih tepatnya 2009.

devops

Jadi, bisa dibilang istilah DevOps muncul belum lama ini dan mulai mendapatkan pamor sekitar tahun 2010-an.

DevOps sendiri adalah sekumpulan praktek, pendekatan, dan juga tools untuk mengelola pengembangan software sekaligus proyek yang berbasis teknologi dan informatika.

Nah, orang-orang yang bekerja di bidang ini disebut sebagai DevOps engineer.

Tujuan DevOps

Tujuan DevOps adalah membangun komunikasi, integrasi, otomatisasi, dan kerja sama yang erat di antara semua orang. Dev Ops memiliki tujuan tersebut agar menghasilkan:

  • Adaptasi terhadap pasar dan persaingan dengan cepat
  • Menjaga stabilitas dan keandalan sistem
  • Menurunkan kendala komunikasi antar tim 
  • Mempersingkat waktu perbaikan dan pemulihan aplikasi
  • Mempercepat waktu delivery product
  • Memangkas biaya infrastruktur
  • Menghasilkan budaya kerja yang baik

Ternyata tujuan DevOps ini memang ada manfaatnya, lho. Apa manfaat dari DevOps ini?

Seperti yang dikutip dari atlassian.com, DevOps Trends Survey 2020 menyatakan hampir semua (99%) responden mengatakan Dev Ops membuat dampak positif pada organisasi mereka. Tim yang mempraktikkan DevOps mengirimkan hasil pekerjaan yang lebih baik dan lebih cepat, meminimalisir respon insiden, dan meningkatkan kolaborasi dan komunikasi antar tim.

Tugas DevOps

Dev Ops memiliki tugas yang terbilang cukup banyak, lho. Lantas, apa saja tugas-tugasnya? 

  • Membuat ide, mendefinisikan, dan menjelaskan fitur serta kemampuan aplikasi atau sistem yang akan dibangun.
  • Melakukan otomatisasi dengan alat-alat selama proses pengembangan aplikasi, agar pengembang aplikasi dapat berjalan dengan cepat dan maksimal.
  • Membuat prototype dari hasil diskusi dengan pelanggan agar pengembangan aplikasi sesuai dengan yang diharapkan.
  • Mendokumentasi progres selama SDLC (siklus pengembangan aplikasi).
  • Melacak bug, memonitoring sistem, dan mengelola pengembangan software dengan cepat.
  • Saling berkomunikasi terkait masalah yang terjadi pada setiap proses development.
  • Berinovasi dengan cepat tanpa mengorbankan kualitas, stabilitas, dan produktivitas.
  • Mengidentifikasi masalah sebelum mempengaruhi pengalaman user.

Itulah tugas-tugas umum dari DevOps engineer. Meski terlihat banyak, tugas-tugas tersebut dapat dilakukan dengan efektif berkat adanya kolaborasi dan komunikasi yang baik antartim.

Nah, jika dijelaskan secara lebih rinci, tugas DevOps meliputi: 

  • Continuous Integration – DevOps engineer akan melakukan testing secara berulang untuk menemukan error dan memperbaiki kode. Jika pada proses ini terdapat error maka error tersebut akan bisa cepat diketahui dan tertangani oleh tim Developer dan QA.
  • Continuous Delivery – Dalam proses ini, tim akan melakukan beberapa pengujian manual untuk menemukan error. Setelah proses pengujian dijalankan, tim akan melakukan lebih banyak pembaharuan dan perbaikan pada aplikasi.  
  • Continuous Deployment – Setelah proses Continuous Integration-Delivery sudah dinyatakan dengan baik, tim development dapat melihat perubahan yang terjadi pada environment test atau environment development atau environment production.
  • Configuration Management – Proses ini berkaitan dengan pemeliharaan konfigurasi pada aplikasi yang mana tim akan memastikan otomatisasi pada aplikasi dapat berjalan dengan baik dan maksimal.
  • Infrastructure as a Code (IAC) – IAC adalah manajemen infrastruktur sebuah aplikasi melalui kode yang dapat diprogram, distandarisasi, dan diduplikasi. Nah, IAC ini berguna agar ketika data aplikasi hilang, tim tidak perlu kesulitan membangun aplikasi dari awal karena IAC akan bisa menyediakan sumber daya, mengembalikan konfigurasi, dan memulihkan data-data lainnya dari cadangan.
  • Logging – Tim akan meninjau setiap kejadian dalam sistem, termasuk keberhasilan update dan error. Dari situ, tim akan membuat catatan penting tentang aplikasi secara real-time. Nantinya, data log ini menjadi acuan dan dapat membantu tim Dev Ops memecahkan masalah dengan mengidentifikasi perubahan yang ada.
  • Monitoring – Sementara dalam monitoring, tim akan bertugas untuk mendeteksi seluruh hal yang berkaitan pada sistem, termasuk aplikasi dan layanan cloud. Jika ada penyimpangan / anomali, tim akan mencatat dan sesegera mungkin dan memperbaikinya. Proses monitoring juga berguna untuk melihat perubahan kode aplikasi. Apakah kode ini memberikan dampak baik atau tidak. Nah, proses monitoring ini membutuhkan hasil dari logging. Karena jika tidak ada data log, proses monitoring tidak akan berjalan baik karena kekurangan sumber data penting.

Skill DevOps Engineer

Okay, beginilah skill DevOps Engineer yang harus kalian tahu:

1. Memahami Konsep Utama dari DevOps

Meski DevOps lekat dengan konsep yang serba otomatis dan canggih tapi DevOps bukanlah teknologi atau alat. DevOps adalah metodologi yang tidak memiliki kerangka kerja yang ketat. 

Target utama metodologi Dev Ops adalah menyatukan tim developer dan operation untuk mengurangi kesenjangan di antara mereka sehingga pekerjaan dilakukan lebih cepat. Dengan menggunakan metodologi DevOps, perusahaan akan bisa memberikan software berkualitas lebih cepat. 

Oia, perlu diingat ya bahwa untuk memahami konsep utama Dev Ops, seseorang perlu memahami tugas-tugas DevOps terutama tentang pemahaman teknis.

2. Menguasai Tools Development dan Operations

Seorang DevOps membutuhkan pengetahuan mendalam tentang alat-alat development dan operations. Pasalnya, dalam praktik DevOps akan erat hubungannya dengan otomatisasi. Dengan begitu, setiap orang harus mampu mengintegrasikan alat dan sistem yang berbeda.

Dalam Dev Ops, tim akan menggabungkan, membangun, menguji, mengemas, dan menyebarkan kode secara bersama. Semua orang ikut berperan dalam proses rilis software

yuk kenali devops 2

Namun, untuk menjadi seorang DevOps Engineer sebenarnya tidak ada aturan baku untuk tools apa yang harus dikuasai. Tapi, alangkah baiknya tetap terus melakukan eksperimen dengan tools Dev Ops dan mencari solusi terbaru. Bukan tanpa alasan karena setiap waktu teknologi terus berkembang dan otomatis perusahaan juga harus mengikuti perkembangan tools terbaru.

devops

Setidaknya ada 10 alat terbaik yang sering diandalkan oleh DevOps, yaitu: 

  • Slack – Dengan Slack, tim pengembang dapat berkolaborasi menggunakan toolchain di lingkungan yang sama saat berkomunikasi dengan tim operation dan tim lainnya.
  • Jenkins – Alat ini dapat mengotomatiskan siklus pembangunan software. Di sini pengembang secara otomatis dapat memasukkan kode ke dalam repositori, menjalankan kasus pengujian, serta mengambil laporan yang diperoleh setelah pengujian.
  • Docker – Alat ini mampu melakukan pengemasan, penerapan, dan pengoperasian aplikasi secara aman. Biasa juga diandalkan untuk menaruh infrasturktur source code, file pendukung, waktu proses, file konfigurasi sistem, dan lain-lain. 
  • Phantom Tool ini digunakan ketika ingin membangun infrastruktur yang dapat dipertahankan sejak awal SDLC. Phantom juga memberi opsi dalam mengurangi risiko kesalahan konfigurasi, dengan menggunakan teknik seperti file detonation, device quarantine, dan sebagainya.
  • Nagios – Alat ini memiliki peran untuk pemantauan yang cenderung mengawasi aplikasi, server, serta infrastruktur bisnis secara keseluruhan. 
  • Vagrant –  Ini adalah alat untuk bekerja dengan mesin virtual dalam satu alur kerja. Saat menggunakan Vagrant, anggota tim dapat berbagi lingkungan software yang berjalan dan bisa menguji aplikasi lebih cepat tanpa membuang waktu. 
  • Ansible – Ansible adalah salah satu alat manajemen konfigurasi dan orkestrasi IT yang paling sederhana tapi efektif.
  • GitHub – Alat ini menjadi salah satu alat DevOps teratas untuk membantu kolaborasi tim dengan mudah. Di Github, para pengembang dapat membuat iterasi cepat pada kode, yang pemberitahuannya dikirim secara instan ke anggota tim lainnya. 
  • Sentry – Alat ini biasa diandalkan untuk deteksi kesalahan atau bug dengan baik. Tool gratis ini mendukung bahasa, seperti Ruby, IOS, JavaScript, dan sebagainya. 
  • BitBucket – Alat yang membantu mengelola kode proyek sepanjang siklus pengembangan software. BitBucket memiliki fitur repositori pribadi.

Itulah alat-alat yang biasa diandalkan oleh para Dev Ops. kalian mungkin bisa mencoba salah satunya untuk mulai belajar DevOps dan mengimplementasikan kolaborasi dengan tim kalian.

3. Memahami Tentang Cloud

Skill DevOps yang harus dikuasai juga meliputi pemahaman tentang cloud computing.  

Komputasi cloud biasa digunakan oleh perusahaan dan organisasi untuk kebutuhan internal. Misalnya, untuk menyimpan dan mengolah data perusahaan yang biasanya mengandalkan sebuah data center.

Nah, keahlian cloud computing ini meliputi pemahaman merancang dan membangun sistem cloud, mengatasi kompleksitas sistem cloud, dan memaksimalkan berbagai fitur lainnya dari layanan cloud

4. Linux Fundamental and Scripting

Saat ini, sebagian besar perusahaan lebih suka meng-hosting aplikasi mereka di OS Linux. Karena tools manajemen konfigurasi, seperti Puppet, Chef, dan Ansible memiliki master node yang berjalan di Linux maka memiliki keterampilan dalam menangani sistem operasi Linux akan sangat penting bagi seorang DevOps Engineer.

Seorang DevOps juga harus dapat menangani bahasa scripting yang cukup banyak dan harus berpengalaman setidaknya dengan satu bahasa scripting. Umumnya, saat ini scripting Python lebih diutamakan. 

5. Problem Solving

Bagi seorang DevOps, merespons masalah secara efektif dan menyelesaikannya dengan cepat adalah tanggung jawab utama. DevOps harus memiliki pengalaman memecahkan masalah-masalah selama proses pengembangan aplikasi. Seperti mengatasi bug, menemukan anomali pada sistem, menyesuaikan cara kerja sistem dengan feedback user, dan sebagainya.

Untuk mendukung problem solving itu, DevOps engineer juga harus memiliki keterampilan interpersonal. Kecakapan ini berguna untuk membantu menjembatani kesenjangan antara tim yang terpisah, yang mana nantinya tim akan dapat menganalisis kode dan mengkomunikasikan review secara detail dengan lebih efektif untuk perkembangan software

6. Update Pengetahuan DevOps dengan Buku-Buku 

problem solving

Apabila pengetahuan DevOps kalian masih dirasa kurang, kalian bisa mempelajari lebih dalam tentang DevOps sebelum mempraktikkannya. Ada beberapa rekomendasi buku tentang belajar DevOps yang ditulis dari orang yang sudah terjun lama dalam dunia DevOps, antara lain:

  • The Phoenix Project, karya Kevin Behr, Gene Kim, dan George Spafford – Ditulis oleh beberapa nama paling berpengaruh di dunia DevOps, di mana buku ini menceritakan kisah akrab tim IT yang bekerja lintas tim bisnis;
  • The Unicorn Project, karya Gene Kim – Buku ini sekuel dari “The Phoenix Project”, yang menceritakan kisah menyelesaikan pekerjaan dari perspektif pengembang software;
  • The DevOps Handbook, karya Gene Kim, Patrick Debois, John Willis, dan Jez Humble – Buku ini bisa dibilang sebagai tindak lanjut dari buku “The Phoenix Project” dan “The Unicorn Project”. Buku ini menawarkan saran yang lebih praktis untuk mencapai kelincahan, keandalan, dan keamanan kelas dunia dalam organisasi teknologi;
  • Accelerate, karya Nicole Forsgren, Jez Humble, dan Gene Kim – Para penulis dalam buku ini akan menyajikan temuan penelitian dengan analisis yang ketat tentang membangun dan men-skalakan organisasi teknologi berkinerja tinggi.

Fase DevOps Pipeline: Bagaimana Cara DevOps Bekerja?

Pipeline DevOps adalah sekumpulan proses yang memungkinkan tim developer dan tim IT operations dapat bekerja sama untuk membangun dan menerapkan kode ke production environment. Meskipun setiap perusahaan yang menjalankan model DevOps ini dapat bekerja dengan proses yang berbeda-beda namun secara garis besar mereka akan mengikuti fase DevOps pipeline berikut:

1. Plan

Fase ini melibatkan perencanaan untuk seluruh alur kerja yang dibutuhkan sebelum tim pengembang mulai menulis kode. Dalam tahap ini, manajer produk dan manajer proyek akan memainkan peran penting. Mereka akan bekerjasama untuk mengumpulkan requirements dan feedback dari klien atau stakeholders. Informasi tersebut lalu 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. Jika kode tidak memiliki masalah maka developer tersebut akan menyetujui pull request yang telah dikirim sebelumnya.

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

Fase release menjadi 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

Tahap selanjutnya adalah deployment. 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. Hal ini dilakukan untuk memastikan bahwa produk atau aplikasi yang dikembangkan dapat berjalan dengan lancar. Mereka juga mengumpulkan data-data penting dari log, analitik, sistem monitoring serta melihat feedback dari pengguna untuk mengetahui jika ada masalah pada kinerja aplikasi.

Okay, jadi bisa disimpulkan bahwa 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.

Oia, kenalan yuk sama Aplikasi Ujian Online milik Jetorbit, Ujione! Berbasis Cloud Pertama di Indonesia! Jadi, bisa melaksanakan ulangan harian, quiz, ujian akhir dan tugas bisa dari aplikasi Android, IOS dan juga Web. kalian tidak perlu menyiapkan perangkat server/hosting lagi, lho. Pokoknya mudah! 

Selain itu, kami juga menyediakan VPS, lho.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rata rata rating 5 / 5. Jumlah rate 1

Yuk Rate 5 Artikel Ini!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Bagikan:

2 responses to “Yuk Kenalan dengan DevOps, Tugasnya, dan Skill Wajibnya”

  1. […] tahap ini, tim pengembang dan tim operasi sistem (DevOps) harus memastikan bahwa semua sumber daya dan software yang dibutuhkan telah tersedia dan terpasang […]

    1. silvia Avatar

      Terima kasih sudah berkunjung ke blog kami ya, Kak 🙂

Leave a Comment