Menciptakan sebuah software secara efisien dengan sedikit atau bahkan tanpa bug memang menjadi sebuah pekerjaan menantang, dan hal ini justru seringkali dialami developer. Untuk bisa membangun software yang sempurna, developer tak cuma harus menerapkan cara terbaik, tetapi juga perlu diikuti oleh code Quality Assurance (QA) berkelanjutan yang optimal.

Karenanya, dalam memastikan software yang dibangun bisa bekerja efektif dan tetap aman, penting bagi developer untuk mengujinya secara menyeluruh di semua tahap pengembangan dan di setiap pembaruan code baru yang dirilis. Salah satunya adalah dengan menggunakan SonarQube, tool teknologi yang ada di dalam Static Application Security Testing atau SAST. Sesuai dengan namanya, SAST menjadi cara ideal untuk mengeliminasi bug yang bisa membantu developer aplikasi dalam melakukan checking code dan rilis.

Banyak developer menggunakan SonarQube sebagai tool yang dapat mendeteksi bug, kerentanan, dan juga code smells. Tak cuma itu, SonarQube juga bisa diintegrasikan ke dalam Software Development Life Cycle (SDLC), sehingga tim developer bisa dengan mudah mengetahui kualitas dari code yang sedang diubah.

Kali ini, i3 akan membahas secara lebih mendalam terkait apa itu SonarQube, arsitektur dan flow SonarQube, dan bagaimana penerapannya di dalam SDLC. Artikel ini diharapkan bisa berguna bagi QA and DevOps specialist, developer, serta manager yang ingin memastikan kualitas code terbaik. Ingin tahu lebih lengkap? Simak pemaparannya di artikel berikut ini.

Apa Itu SonarQube?

SonarQube adalah platform open-source yang dikembangkan oleh SonarSource, digunakan untuk inspeksi berkelanjutan pada kualitas code aplikasi. Lebih dari itu, SonarQube juga dapat melakukan analisis code secara statis, yang mana menyediakan laporan lebih detail terkait bug, code smells, kerentanan hingga duplikasi code.

Seperti Apa Arsitektur SonarQube?

arsitektur sonarqube

Arsitektur SonarQube dapat dilihat dari ilustrasi di atas. Komponennya terdiri dari Bahasa Pemrograman, SonarQube Scanner, SonarQube Server, serta SonarQube Database.

Bagian SonarQube Scanner akan digunakan dalam CI/CD tools untuk mengirim report ke dalam SonarQube Server, SonarQube scanner juga mendukung berbagai macam bahasa framework seperti MSBuild, Maven, Ant, dan Gradle.

Adapun SonarQube Server dapat diinstal di sistem operasi Windows, Linux, dan hingga container, sehingga SonarQube bisa dipasang via microservices di atas container orchestration seperti OpenShift dan Kubernetes.

Sejauh ini bahasa pemrograman yang didukung SonarQube cukup banyak, yaitu 17 untuk versi community, 24 untuk versi developer, 29 untuk versi enterprise dan data center. Bahasa pemrograman tersebut merupakan bahasa yang telah melalui built-in rulesets dan bisa diperpanjang dengan berbagai jenis plugins. Masing-masing versi tersebut memiliki fitur-fitur yang berbeda, seperti pada tabel berikut:

fitur-fitur sonarqube

Bagaimana Flow SonarQube?

flow sonarqube

Terkait flow, SonarQube dapat diletakkan setelah stage build (untuk beberapa bahasa pemrograman seperti Java dan Golang) atau sebelum stage build.

Pada saat developer melakukan perubahan atau penambahan code di Source Code Management (SCM), code tersebut akan di-scan oleh SonarQube dan kemudian akan ditampilkan hasilnya di dashboard. Ilustrasi di atas merupakan gambaran sederhana mengenai workflow yang biasanya digunakan untuk CI/CD.

Seperti Apa Penerapan SonarQube dalam SDLC?

penerapan sonarqube dalam SDLC

Menjaga code baru tetap bersih artinya akan memperbaiki issue di awal phase, yang tentunya akan membuahkan hasil yang optimal.

Ketika kondisi quality gate dari SonarQube failed, maka pipeline juga akan gagal atau berhenti (optional). SonarQube juga dapat diintegrasikan dengan workflow SDLC dan juga CI/CD (Jenkins, Bamboo, Azure DevOps, Gitlab-CI, dan lain sebagainya), sehingga proses SAST SonarQube dapat dilakukan secara terus menerus dan automated. Sebagai bagian dari SDLC, SonarQube memiliki WebAPI dan Webhook yang dapat mempermudah workflow dan menjadi full automation.

Berikut beberapa contoh pipeline CI/CD untuk SonarQube:

  1. Jenkins

    pipeline Sonarqube Jenkins

  2. Gitlab-CI
    pipeline Sonarqube Gitlab-CI

Baca Juga :
Pastikan Code Aplikasi Berkualitas dengan SonarQube

Penerapan SonarQube Oleh Perusahaan Layanan Finansial Bersama i3

SonarQube telah diimplementasikan oleh salah satu perusahaan dari industri finansial di Indonesia. Perusahaan penyedia layanan finansial ini memerlukan penerapan SonarQube untuk proses peninjauan code quality secara otomatis, dengan tujuan untuk menghemat lebih banyak waktu dan menghadirkan delivery yang lebih cepat.

Perusahaan tersebut memanfaatkan SonarQube dari i3, dengan solusi DevSecOps dan memastikan source code mereka sudah sesuai framework. Selain itu, SonarQube juga membantu perusahaan ini untuk mendeteksi adanya error, celah keamanan, serta aspek lain pada code yang tengah dikembangkan.

Sebagai hasilnya, analisis code SonarQube ini pun berfungsi untuk mengidentifikasi bug kerentanan serta segment code yang sulit untuk dikelola secara otomatis. Dengan demikian, analisis ini bisa mendukung alur kerja yang lebih cepat di lingkungan DevSecOps. Seperti diketahui, tim i3 berhasil menyelesaikan tahap implementasi di perusahaan ini pada periode November 2020-Januari 2021.

Saatnya Implementasikan SonarQube untuk Workflow Anda Bersama i3

Seiring dengan teknologi yang semakin berkembang, tentu kerentanan pada aplikasi yang merugikan juga kian meningkat. Di sinilah SonarQube memberikan kemampuan untuk menjaga kualitas code Anda, sehingga dapat mencegah hal-hal yang tidak diinginkan.

Proses implementasi SonarQube yang dilakukan i3 ditujukan untuk mendeteksi bug pada software selama deployment dan terus mengevaluasi kondisi code, dan i3 akan terus memastikan jaminan kualitas berkelanjutan saat membangun software.

Proses ini juga akan membantu Anda untuk bisa mengontrol kualitas code dari tahap pengembangan awal, mendeteksi dan memperbaiki bug lebih gesit, serta meningkatkan keandalan software secara keseluruhan. Jaminan kualitas code berkelanjutan pun akan mencakup pengujian statis source code yang tepat setelah dibuat. Karenanya, i3 senantiasa memastikan penerapan automatic tools pada analisis code statis dalam mempercepat proses uji dan deteksi bugs sesegera mungkin.

i3 pun selalu menambahkan analisis static source code sebagai langkah tambahan dalam pipeline CI/CD kami untuk seluruh project yang kami kerjakan. Dengan demikian, langkah ini membuat kami mampu untuk mengurangi jumlah masalah yang ada dalam produk IT kami.

Setelah mengetahui bagaimana cara mengkonfigurasi dan menggunakan SonarQube, Anda pasti akan lebih mudah menciptakan potensi terbaik pada tool analisis code statis ini. Dengan menerapkan SonarQube secara rutin, mengintegrasikannya ke dalam pipeline CI/CD, serta mengembangkannya sebagai strategi pengujian berdasarkan hasil analisis, Anda akan mampu meningkatkan kualitas proses pengembangan dan produk secara keseluruhan.

i3 didukung dengan tim yang profesional dan bersertifikasi, yang mana akan senantiasa membantu Anda untuk meningkatkan kualitas code Anda dengan SonarQube, memastikan keandalan produk,meningkatkan efisiensi dan performa, serta keamanan produk secara komprehensif.

Saatnya percayakan implementasi SonarQube Anda bersama i3, karena i3 memiliki lebih dari 50 konsultan dengan 228 sertifikasi, menjadi training partner terbaik di Indonesia selama empat tahun berturut-turut, dipercaya Red Hat untuk menghadirkan Red Hat GPS ke pasar ASEAN, memiliki pusat Research and Development sendiri, dan tersertifikasi ISO 27001.

Hubungi kami melalui info@i-3.co.id untuk mendapatkan info lebih lanjut tentang dukungan ahli dalam memastikan kualitas software Anda sekarang.

Penulis: Afriansyah – i3 Consultant

Editor: Jeko Iqbal Reza – Content Writer CTI Group