Apa itu DevOps

DevOps adalah kombinasi dari culture, praktik, dan alat untuk meningkatkan memampuan sebuah perusahaan agar proses delivery aplikasi / software dapat dilalukan dengan kecepatan yang lebih tinggi daripada proses pengembangab software tradisional. DevOps gabungan dari kata Development dan Operations. Jadi secara garis besar metodologi DevOps akan menguraikan proses pengembangan aplikasi atau perangkat lunak yang berkualitas tinggi dengan mengotomatiskan dan mengintegrasikan efforts dari tim Development (pengembang) dan tim IT Operations (operasi).

Tujuan DevOps : 

DevOps bertujuan untuk meningkatkan kolaborasi antara tim development dan tum operation dari mulau perencanaan hingga aplikasi/fitur ter-deliver ke pengguna. Semua itu harus dilalukan secara otomatis agar : 

  1. Meningkatkan  deployment freguency.
  2. Meningkatkan waktu pemasaran.
  3. Menurunkan tingkat kegagalan pada ririlisan terbaru.
  4. Mempersingkat waktu perbaikan.
  5. Meningkatkan waktu pemulihan.

Manfaat DevOps di perusahaan :

  1. Mempercepatkan proses develop aplikasi serta mengurangi risiko kegagalan, Ketika tim Developer sudah diberikan keluasaan dalam melalukan deploy kode, dan rollback kodenya sendiri, developer mampu menulis kode secara lokal di laptop serta mengunggah kode ke server test.
  2. Tim yang lebih produktif, Dengan digabungkan tim Developer dengan tim Operation, tentunya membuat mereka akan jauh lebih memungkinkan untuk berkolaborasi dan berkomunikasi secara lebih efektif.
  3. Angka human error yang lebih rendah, Dengan bantuan tools yang digunakan seperti server yang berada di cloud (AWS, GCP, Azure, dll), jenkins, Ansible, sehingga python, profesi ini dapat membuat sebuah sistem di mana Developer bisa tinggal mengetikkan 1 perintah untuk secara otomatis menggunggah kode mereka ke server, dan begitu pula dengan rollback.

Skillset menjadi DevOps Engineer :

  • Kolaborasi dan Komunikasi, seperti pada penjelasan definisinya, DevOps menghadikan pendekatan kolaboratif untuk proses pengembangan, pengujian, dan produksi perangkat lunak. Hal ini berarti adanya tjuan bersama dalam sebuah tim dilalukan secara efisien dan komunikatif.
  • Pemahaman alat, Seorang inisinyur DevOps juga diwajibkan mengetahui dan memahani cara menggunakan beberapa alat dengan dalam pengembangan hingga pengiriman perangkat lunak seperti version control, continuos integration servers, configuration management, deployment automation, containers, infrastructure orchestration, monitoring and analytics, Testing and Cloud Quality tools, dan Network protocols.
  • Keterampilan pemrograman khusus dan coding, hampir semua pendekatan pengembangan memerlukan keterampilan pemrograman. Begitu pula bagi insinyur DevOps yang diwajibkan menguasai hal ini untuk mempertahankan serangkaian tanggung jawab pengodean untuk pada tiap perangkat lunak atau aplikasi yang dikembangkan. Keterampilan ini meliputi Java, JavaScript, Ruby, Python, PHP, Bash, dan lain sebagiannya.
  • Sinkronisasi dengan tim Quality Assurance (QA), Insinyur DevOps harus melalukan sinkronisasi dengan tim QA. Semua aktivitas pengujian, termasuk otomatis dan manual harus diketahui dan terlihat oleh teknisi DevOps harus memahami kegiatan pengujian, mengetahui riwayat pengujian dalam siklus CI/CD (Continuous Integration/Continuous Delivery), dan memahami kerangka kerja yang di pimpin oleh QA.

Tools yang digunakan DevOps : 

  1. Source Code Management, melalui sumber repository, antar developer dapar memeriksa dan mengubah kode tanpa perlu saling menulis satu sama lainnya.
  2. Build Server, Build Server adalah alat otomatisasi yang mengkompilasi kode dalam SCR (Source Code Repository) ke dalam basis kode yang di eksekusi.
  3. Configuration Management, Manajemen Konfigurasi bergunan untuk menetapkan konfigurasi pada server atau lingkungannya. Alat yang populer biasa temukan seperti Puppet dan Chef.
  4. Virtual Infrastructure, Amazon Web Services dan Microsoft Azure adalah contoh infrastruktur virtual. Virtual Infrastructure ini dissediakan oleh vendor cloud yang menjual insrastruktur atau platfrom as a service (paas). Infrastrukutur ini memiliki API yang memungkingkan kami membuar esin baru yang terprogram dengan alat manajemen konfigurasi.
  5. Test Automation, Test Automation sebenarnya sudah ada sejak lama. Pengujian diaposi oleh DevOps berfokus pada pengujian otomatis melalui pipeline untuk memastikan bahwa build deployable sudah dilalukan.

Tugas dan Tanggung Jawab DevOps Engineering

DevOps Engineering adalah seseorang generalis IT yang memiliki pengetahuan luas tentang pengembangan dan operasi. Seorang DevOps Engineer harus memiliki kemampuan interpesornal untuk menciptakan lingkuan yang lebih kolaboratif.

Kelebihan dan Kekurangan DevOps

Penerapkan metode DevOps memilki banyak sekali kelebihan, akan terdapat juga kekurangan juga dari penerapan metode ini.

Kelebihan 

  • Siklus pengembangan yang lebih pendek
  • Meningkatkan kualitas dan fleksibilitas
  • biaya yang lebih efisien
  • Kontrol resiko dan pemulihan yang lebih baik
  • Dapat meningkatkan praktik keamanan

Kekurangan

  • Penerapan metode DevOps harus merubah kebiasaan atau kebudayaan dalam pengembangan proyek
  • Membutuh software engineering yang ahli
  • Memerlukan kolaborasi yang kuat


Referensi : 



Komentar