DevOps


Apa itu DevOps?


    DevOps adalah kombinasi budaya, praktik, dan alat yang dirancang untuk meningkatkan kemampuan organisasi dalam menjalankan proses pengiriman aplikasi/perangkat lunak lebih cepat dibandingkan proses pengembangan perangkat lunak tradisional.
     Seperti namanya, istilah DevOps menggabungkan kata pengembangan dan operasi.
Secara umum, metodologi DevOps menggambarkan proses pengembangan aplikasi atau perangkat lunak berkualitas tinggi dengan mengotomatisasi dan mengintegrasikan upaya tim pengembangan (developer) dan tim operasi TI (operasi).
     Dalam model DevOps ini, tim pengembang dan operasi TI berkolaborasi di semua tahap siklus hidup pengembangan perangkat lunak untuk menghasilkan produk digital berkualitas tinggi secara efektif dan efisien.
Anda mungkin bertanya-tanya, "Apa itu Insinyur DevOps?
" Pada dasarnya, seorang insinyur DevOps adalah seorang profesional TI yang bekerja dengan pengembang perangkat lunak, operator sistem, staf operasi TI, dll.
untuk mengawasi atau memfasilitasi penerapan kode berdasarkan integrasi berkelanjutan dan alur kerja pengiriman berkelanjutan (CI/CD).

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.

Sejarah DevOps

     Kisah DevOps dimulai pada tahun 2007 ketika Patrick Debois (seorang konsultan pengembangan) berupaya mempelajari berbagai aspek TI.
Dia merasa terganggu dengan perbedaan cara kerja tim pengembangan dan operasi.
Patrick kemudian bertemu Andrew Shafer dan mulai bekerja dengan manajemen sistem tangkas.

Mengapa DevOps dibutuhkan dalam proses pengembangan software?


    Setelah Anda memahami apa itu DevOps, mungkin Anda akan bertanya-tanya apa fungsi DevOps ini. Perlu Anda tahu, dalam proses pengembangan produk, klien biasanya menginginkan agar proses delivery produk dapat dilakukan dengan cepat. Klien juga berharap agar produk yang dikembangkan memiliki kualitas yang baik serta mampu bekerja dengan stabil.

    Untuk memenuhi permintaan tersebut, tim developer dapat bekerja dengan cepat dalam proses pengembangan produk. Namun di sisi lain, tim operations memahami bahwa perubahan atau pengembangan yang dilakukan dengan cepat tanpa pengamanan yang tepat dapat membuat sistem menjadi tidak stabil.

    Oleh karena itulah, DevOps dirancang untuk mengatasi permasalahan tersebut dengan cara mengintegrasikan semua orang yang terkait dengan software development dan deployment baik itu business users, developers, test engineers, security engineers, system administrators, dan lain-lain. Tim ini akan bekerja sama untuk mencapai tujuan dan fokus utama yaitu delivery produk / software berkualitas tinggi yang dapat  memenuhi semua user requirements namun tetap mampu menjaga integritas dan stabilitas seluruh sistem.

Jika dilakukan dengan baik, DevOps dapat memberi berbagai manfaat dam proses pengembangan produk. Beberapa diantaranya seperti:

  • Perusahaan dapat bergerak dengan cepat

    Praktik DevOps memungkinkan Anda untuk dapat bergerak cepat dalam berinovasi dan beradaptasi dengan perubahan pasar. Dengan demikian, praktik ini mampu mendorong bisnis agar bisa berkembang dengan cepat.

  • Delivery yang cepat

Praktik DevOps dapat membantu Anda untuk dapat merilis produk dengan waktu yang lebih cepat. Dengan cara ini, Anda memiliki peluang untuk bisa lebih unggul dari kompetitor Anda.

  • Keandalan

    DevOps bekerja seperti pada praktik CI/CD (Continuous Integration / Continuous Delivery) yang dapat membantu Anda memastikan bahwa produk yang dikembangkan memiliki kualitas yang tinggi. Di sisi lain, Anda juga dapat mengirim produk yang andal dengan kecepatan tinggi. 

  • Kolaborasi tim yang lebih baik

    Di bawah model DevOps, tim pengembang dan tim operasi akan berkolaborasi, berbagi tanggung jawab, dan menggabungkan alur kerja mereka. Cara ini dapat membantu Anda untuk bekerja secara efektif dan efisien.

  • Aman

    Anda dapat mengadopsi model DevOps tanpa perlu mengorbankan keamanan dengan menggunakan alat pengujian keamanan terintegrasi dan otomatis

Tahapan DevOps Pipeline: Bagaimana cara kerja DevOps?
    Pipeline DevOps adalah serangkaian proses yang memungkinkan tim pengembangan dan operasi TI bekerja sama untuk membuat kode dan menyebarkannya ke produksi.
Setiap perusahaan yang menjalankan model DevOps ini mungkin memiliki proses yang berbeda, namun biasanya mengikuti tahapan pipeline DevOps 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 ataupun stakeholders. 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. 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. 

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.

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

    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

#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 alat lingkungan kerja dalam mengembangkan perusahaan IT.
Prinsip ini dikembangkan dan digunakan untuk mengatasi berbagai masalah yang dihadapi perusahaan IT ketika mengelola aliran kode sumber dari perspektif pengembangan dan operasi." Kepemimpinan yang efektif berarti mendahulukan hal yang penting. Manajemen yang efektif berarti disiplin dan bertindak dengan adil." (Stephen Covey) Saat ini teknik DevOps adalah profesi yang terus berkembang dan menjanjikan. Yang harus Anda lakukan adalah mengisi posisi tersebut dan memenuhi persyaratan serta keterampilan perusahaan.






https://www.logique.co.id/blog/2021/05/28/apa-itu-devops/#Mengapa_DevOps_dibutuhkan_dalam_proses_pengembangan_software
https://www.dicoding.com/blog/apa-itu-devops/










Comments