What is DevSecOps?
DevSecOps Series #1 | Implement Security on your DevOps
Pastinya kita sudah tidak asing lagi ketika mendengar kata “DevOps” dan juga “DevSecOps” dikarenakan demand job keduanya memang sedang naik. Tapi seringkali kita berfikir mengenai perbedaan DevOps dengan DevSecOps, apakah itu merupakan pekerjaan yang sama namun berbeda namanya saja? atau bahkan berbeda sama sekali? Maka dari itu untuk menjawab pertanyan pertanyaan tersebut kami akan membahas nya dalam artikel ini.
DevOps
Sebelum membahas mengenai DevSecOps, alangkah baiknya kita membahas terlebih dahulu mengenai DevOps. Sebagai seorang yang bekerja sebagai software engineer pastinya kita sudah kenal dengan yang namanya DevOps. Seiring dengan perkembangan zaman, proses pengembangan aplikasi atau biasa disebut dengan Software Development LifeCycle (SDLC) dituntut untuk dapat mengembangkan beragam fitur ataupun pembaharuan aplikasi namun juga dengan jarak rilis yang cepat. Untuk menangani hal itu perusahaan menggunakan “DevOps” sebagai bagian dari proses tersebut. DevOps merupakan penggabungan dari istilah “Development” dan “Operation” dalam SDLC, tujuan dari DevOps sendiri adalah mengatasi masalah yang sering terjadi antara tim development dan tim operation guna mempercepat proses perilisan aplikasi. Banyak yang beranggapan bahwasanya dengan menerapkan DevOps maka semua proses nya akan berjalan sukses dan sangat cepat. Namun faktanya dengan penerapan DevOps yang salah akan berakibat pada proses aplikasi yang semula normal menjadi semakin lambat.
DevOps bukan hanya seorang engineer ataupun pekerjaan, namun DevOps merupakan sebuah kultur, tools, dan metodologi pada SDLC dengan tujuan untuk menghilangkan “pembatas” antara tim development dan tim operation agar produk lebih cepat dalam proses delivery ke user. Lalu dengan DevOps engineer sendiri adalah mereka yang bertanggung jawab untuk menerapkan kultur DevOps dalam SDLC, contohnya DevOps dapat menggunakan tools pendukung yang sering disebut dengan istilah CICD. Penerapan DevOps secara best practice tentunya tidak terlepas dari beberapa konsep DevOps yang harus diterapkan, banyak perusahaan yang salah konsep dalam menerapkan DevOps sehingga hasil penerapannya tidak sesuai keinginan..
DevOps is an organizational culture shift that emphasizes continuous learning and continuous improvement, especially through team autonomy, fast feedback, high empathy and trust, and cross-team collaboration.
DevSecOps
DevSecOps stands for development, security, and operations. It’s an approach to culture, automation, and platform design that integrates security as a shared responsibility throughout the entire IT lifecycle
DevSecOps Merupakan akronim dari Development, Security, Operations. DevSecOps juga merupakan penambahan akronim dari DevOps. DevOps merupakan kombinasi dari kultur, dan tools yang digunakan untuk mendukung sebuah perusahaan atau badan dalam melaksanakan proses agile methodology dalam siklus pengembangan perangkat lunak. Dimana dengan adanya akronim Sec / Security berarti proses yang dijalankan sangat menekankan pada aspek security nya. Sedangkan CICD merupakan tools yang dapat membantu penerapan DevOps Culture, dimana praktik ini dengan menggabungkan seluruh proses yang ada dalam satu alur.
Mengapa DevSecOps?
Seperti yang sudah diketahui sebelumnya bahwa DevSecOps merupakan penambahan security dalam proses DevOps. Mengapa demikian? Dikarenakan pada sebelumnya DevOps hanya eksklusif saja pada tim Dev dan Ops, sehingga tim IT security mendapatkan bagian pada akhir proses development produk. Hal tersebut terjadi karena memang DevOps bertujuan untuk meningkatkan keaktifan dan efficiency namun alangkah baiknya dengan menggabungkan elemen security dalam proses nya. Penerapan security dalam DevSecOps tidak hanya bergantung kepada tools automation untuk security testing, namun penerapanya juga dapat dengan menerapkan SDLC yang ada seperti TDD (Test Driven Development) dan BDD (Behavior Driven Development).
How to Adopt?
Penerapan konsep DevSecOps tentunya tidak jauh berbeda dengan DevOps dengan kata lain kita dapat melakukan enhancement pada apsek security terhadap DevOps yang sudah ada, Berikut adalah konsep yang dapat diterapkan dalam DevOps maupun DevSecOps.
1. Culture
Mencoba untuk membangun kultur kolaborasi antar tim menjadi hal yang sangat fundamental dalam menerapkan praktik DevOps maupun DevSecOps. Sesuai dengan tujuan awalnya DevOps digunakan untuk menjadikan tim lebih berkolaborasi dengan menghilangkan jarak ataupun permasalahan yang terjadi antara tim development dan tim operation. Terlebih lagi dengan penerapan DevSecOps diharapkan kolaboratif antar tim development, operation dan qa dapat terjalin sehingga dengan adanya kolaborasi yang baik mampu menciptakan dan mendeliver produk dengan cepat kepada client. Selain itu penerapan agile methodology dalam proses pengembangan aplikasi juga sangat memerlukan kolaborasi yang baik.
2. Shift Left
Dalam penerapan DevSecOps terdapat 1 konsep yang sangat penting untuk diterapkan dalam proses nya yaitu “shift left”. “Shift left” merupakan istilah dimana dalam sebuah alur pipeline pengembangan aplikasi tradisional, dimana proses yang sebelumnya berada pada akhir proses yaitu testing (Security, Bug, DLL) ditukar posisi nya menjadi paling kanan atau pada awal proses. Sehingga mitigasi terhadap kerentanan dan kualitas aplikasi dapat terpantau sejak awal dan developer akan lebih cepat dalam menangani hal tersebut, untuk menunjang penerapan praktik tersebut terdapat beberapa macam metode pengujian seperti SAST, dan DAST.
3. Move to microservices
Perubahan arsitektur aplikasi yang sebelumnya dari monolith ke microservice memang membutuhkan effort dan proses yang tidak sederhana, namun dengan perubahan tersebut akan sangat berdampak dengan efektivitas kerja aplikasi. Dengan konsep membagi beban kerja tiap proses yang ada dari aplikasi ke beberapa modul sehingga ketika aplikasi menerima traffic yang tinggi tidak berdampak pada down system. Dari hal tersebut lah mengapa konsep microservice sangat cocok diterapkan pada DevOps, mengapa demikian? Dikarenakan dengan membagi tiap service yang ada pada aplikasi akan sangat memudahkan dalam proses pengembangan, pembaharuan, implementasi dan testing terhadap komponen aplikasi tanpa perlu khawatir akan mengganggu kerja sistem aplikasi secara keseluruhan. Karena konsep inti dari microservices adalah membagi beban kerja yang bersifat kompleks menjadi beberapa bagian yang lebih kecil sehingga akan lebih mudah dalam manajemen nya.
4. Continuous Integration / Continuous Delivery
Dalam penerapan DevOps penting untuk menggunakan automation tools yang tepat guna menunjang proses nya. Dengan adanya automation tool maka proses yang sebelumnya dijalankan secara manual dan membutuhkan waktu yang lama dapat dipersingkat. Selain itu CICD dapat berfungsi sebagai jembatan penghubung antara tim development dan operation terhadap tanggung jawab masing pada setiap proses, karena proses yang dikerjakan antar team telah menjadi 1 framework maka kolaborasi dapat terwujud. Hal ini tentu sejalan dengan maksud diterapkanya DevOps. Selain itu proses ini juga dapat mempercepat development yang dikerjakan, dengan adanya CICD developer dapat mengetahui bug trace pada aplikasinya dan operation team mengetahui konfigurasi yang menyebabkan kegagalan dalam proses deployment. Banyak tools yang dapat digunakan dalam proses CICD terutama tools yang berkaitan dengan DevSecOps seperti SonarQube, Trivy, Snyk dan masih banyak lagi, Berikut adalah referensi yang dapat digunakan https://github.com/hahwul/DevSecOps
5. Continuous Security
Tentu saja mengenai aspek security tidak dapat dihindari lagi dalam penerapan baik itu DevOps terutama DevSecOps. Konsentrasi dalam hal security tidak hanya berfokus dalam environment nya saja, namun hal hal lain seperti standarisasi pengkodean perlu diperhatikan. Selain itu pengujian keamanan secara bertahap dan otomatis perlu diterapkan dalam proses CICD pipeline. Pemahaman sekuritas dari tiap tim wajib ada sehingga kolaborasi dalam hal sekuritas dapat terwujud. Alih-alih memaksa developer untuk merubah struktur code nya agar lebih secure, namun developer sendiri juga sudah paham bagaimana menyusun kode agar terhindar dari kerentanan.
6. Continuous Monitoring
Salah satu hal yang tidak kalah penting adalah pemantauan yang berkelanjutan, proses pengembangan aplikasi menggunakan CICD tidak berhenti pada proses deployment saja. Namun proses pengembangan aplikasi dengan menerapkan DevOps adalah praktik pengembangan aplikasi yang berkelanjutan. Dengan pemantauan yang berkelanjutan maka langkah awal ataupun mitigasi terhadap kendala yang ada dapat segera teratasi. Selain itu developer juga akan dengan cepat untuk menerima feedback sehingga mampu merespon dan melakukan pembaharuan aplikasi dengan cepat.
Kesimpulan
Dengan artikel ini semoga dapat menjawab pertanyaan-pertanyaan yang ada mengenai DevOps dan DevSecOps secara umum. Tentu saja jika dibahas lebih dalam secara teoritis akan sangat panjang. Disini kami mencoba untuk memberikan beberapa highlight yang ada. Pada artikel selanjutnya kami akan memasuki pembahasan teknis mengenai implementasi DevSecOps menggunakan kombinasi tools yang populer yaitu Jenkins. Stay tune :)
Our Tagline
# Together is Better & Continuous Learning
Author :
Muhammad Fauzan Rafi, Staff of Research Btech
Connect with me | 🔗Linkedln