Sonarqube là gì? Tính Năng & Lợi Ích Khi Sử Dụng Sonarqube

SonarQube là công cụ kiểm tra mã nguồn mạnh mẽ với nhiều tính năng hữu ích giúp nâng cao chất lượng mã và bảo mật, được các nhà phát triển lựa chọn sử dụng. Vậy công cụ này có tính năng gì, lợi ích ra sao cùng cài đặt SonarQube như thế nào? Theo dõi ngay bài viết này nhé!

Sonarqube là gì?

SonarQube là công cụ kiểm tra mã nguồn mạnh mẽ với nhiều tính năng hữu ích giúp nâng cao chất lượng mã và bảo mật cho các dự án phần mềm. Nền tảng mã nguồn này thường được sử dụng trong các quy trình DevOps và CI/CD để đảm bảo mã đáp ứng các tiêu chuẩn mã hóa và yêu cầu bảo mật, mang lại giá trị cho các tổ chức có yêu cầu cao về chất lượng mã, bảo mật và khả năng bảo trì.

Sonarqube là gì? Tính Năng & Lợi Ích Khi Sử Dụng Sonarqube
Sonarqube là gì?

Tính năng chính của công cụ Sonarqube

  • Phân tích mã tĩnh: SonarQube thực hiện phân tích mã tĩnh, đi sâu vào cơ sở mã để xác định các vấn đề khác nhau của mã như lỗi trùng lặp, thiếu mã, lỗ hổng và các vấn đề về mã trong cơ sở dữ liệu mã.
  • Độ tin cậy và phân tích bảo mật mã: SonarQube đảm bảo độ tin cậy và bảo mật của mã bằng cách xác định các lỗ hổng, các mối đe dọa bảo mật tiềm ẩn ngay từ đầu chu kỳ phát triển, giúp các nhóm ưu tiên giải quyết các vấn đề về bảo mật.
  • Quản lý nợ kỹ thuật: SonarQube giảm nợ kỹ thuật bằng cách xác định và giải quyết các vấn đề về độ phức tạp của mã, trùng lặp và phạm vi kiểm thử không đủ. Giúp các nhóm kỹ thuật hiểu được chi phí để giải quyết các vấn đề về chất lượng mã và bảo mật.
  • Cải tiến liên tục: Bằng cách cho phép đo lường chất lượng mã liên tục theo thời gian, công cụ SonarQube tạo điều kiện cho các nỗ lực cải tiến liên tục, giúp các nhà phát triển theo dõi tiến trình và xác định xu hướng hiệu quả.
  • Tích hợp CI/CD: SonarQube tích hợp liền mạch với CI/CD pipeline, cho phép phân tích mã trở thành một phần của quy trình xây dựng và triển khai tự động. Giúp hợp lý hóa quy trình phát triển và tăng cường sự hợp tác giữa các thành viên nhóm.
  • Hỗ trợ đa ngôn ngữ: SonarQube đáp ứng nhiều môi trường phát triển khác nhau khi hỗ trợ hơn 27 ngôn ngữ lập trình như C, C++, Java, JavaScript, PHP, Python,…
  • Cổng chất lượng có thể tùy chỉnh: Các tổ chức có thể xác định cổng chất lượng tùy chỉnh để đặt ngưỡng chất lượng và bảo mật, được kiểm tra trong quá trình CI/CD để ngăn chặn việc phát hành mã chất lượng thấp hoặc không an toàn.
  • Theo dõi và quản lý vấn đề : Cung cấp các công cụ theo dõi và quản lý các vấn đề đã xác định, cho phép các nhóm phân công, ưu tiên và giám sát việc giải quyết các vấn đề về mã.
  • Báo cáo và trực quan hóa : SonarQube cung cấp các báo cáo và bảng thông tin toàn diện chi tiết về chất lượng mã, trạng thái bảo mật và việc tuân thủ các tiêu chuẩn mã hóa.

Lợi ích khi sử dụng công cụ kiểm tra mã Sonarqube

SonarQube là công cụ hỗ trợ đắc lực cho các nhóm phát triển ứng dụng khi làm việc với mã, với những lợi ích như:

  • Bền vững: SonarQube giúp giảm độ phức tạp, các lỗ hổng có thể xảy ra và trùng lặp mã, tối ưu hóa tuổi thọ của ứng dụng.
  • Tăng năng suất: Giảm quy mô, chi phí bảo trì và rủi ro của ứng dụng nên công cụ này giúp các nhóm phát triển giảm được thời gian cho việc thay đổi mã.
  • Đảm bảo chất lượng mã: Việc kiểm soát chất lượng mã ngay từ những bước đầu tiên giúp quá trình phát triển mã diễn ra nhanh chóng, đảm bảo mã chất lượng trong suốt quá trình phát triển.
  • Phát hiện lỗi sớm: Công cụ giúp các nhóm phát hiện sớm các lỗi có trong mã, cảnh báo và tự động sửa lỗi trước khi xuất bản.
  • Nâng cao kỹ năng cho các nhà phát triển: Phản hồi thường xuyên về các vấn đề chất lượng mã giúp các nhà phát triển cải thiện kỹ năng lập trình của họ, tránh mắc các vấn đề trong quá trình làm việc.
  • Cải thiện khả năng bảo trì mã: Các nhóm phát triển duy trì tiêu chuẩn chất lượng mã với công cụ SonarQube, giúp mã nguồn dễ đọc, dễ hiểu và dễ bảo trì, hữu ích khi có sự thay đổi trong nhóm hoặc khi mã nguồn được sử dụng lâu dài.
  • Tiết kiệm chi phí bảo trì: Việc phát hiện sớm các lỗi, lỗ hổng bảo mật, giúp các nhóm phát triển giảm chi phí từ việc sửa lỗi, giảm chi phí bảo trì hệ thống cũng như các vấn đề nghiêm trọng khác.

SonarQube hoạt động như thế nào?

SonarQube có các thành phần chính sau:

  • Server Web: Cung cấp giao diện người dùng và là trung tâm để tương tác với SonarQube
  • Database: SonarQube dựa vào Database để lưu trữ kết quả phân tích mã và các dữ liệu khác.
  • Máy quét/máy phân tích: thực hiện việc phân tích mã, chạy trên máy chủ CI/CD hoặc trên máy cục bộ để phân tích mã và kết quả đến SonarQube Server.
  • Plugin hoặc Tiện ích mở rộng: SonarQube hỗ trợ nhiều Plugin và tiện ích mở rộng để bổ sung các tính năng và hỗ trợ nhiều ngôn ngữ lập trình khác nhau.

Sau đây là các bước làm việc của công cụ SonarQube:

  • Bước 1: Cấu hình: Người dùng cấu hình cài đặt phân tích và cổng chất lượng bằng giao diện web.
  • Bước 2: Phân tích mã: Các nhà phát triển chạy SonarQube trên mã của họ và sẽ nhận kết quả ở SonarQube Server
  • Bước 3: Xử lý và báo cáo: SonarQube Server sẽ xử lý kết quả phân tích, tính toán và tạo báo cáo dựa trên số liệu đó. Đồng thời nó cũng thực thi các cổng chất lượng do tổ chức xác định.
  • Bước 4: Xem xét và khắc phục vấn đề: Nhà phát triển và các nhóm xem xét kết quả phân tích, và tìm hướng giải quyết sớm các vấn đề về chất lượng mã và bảo mật.
  • Bước 5: Tích hợp liên tục: Phân tích SonarQube có thể được tích hợp vào quy trình CI/CD, đảm bảo chất lượng mã và kiểm tra bảo mật là công việc tất yếu và quan trọng của quy trình xây dựng và triển khai tự động.

Hướng dẫn cài đặt SonarQube trên Ubuntu

Để cài đặt SonarQube, công cụ này yêu cầu một cơ sở dữ liệu (PostgreSQL) và một phiên bản java JDK tương thích.

Hướng dẫn cài đặt SonarQube trên Ubuntu
Cài đặt SonarQube trên Ubuntu

Cài đặt các yêu cầu cơ bản

Đầu tiên, chúng ta cần chuẩn bị máy chủ Ubuntu

sudo apt update
sudo apt upgrade -y

Sau đó cài đặt các yêu cầu cơ bản của SonarQube

  • Cài đặt Java
sudo apt update
sudo apt install openjdk-11-jdk -y
  • Kiểm tra phiên bản Java

java -version

  • Cài đặt PostgreSQL

sudo apt install -y postgresql postgresql-contrib

  • Cấu hình PostgreSQL và tạo user, Database cho SonarQube.

sudo -i -u postgres
createuser sonar
createdb -O sonar sonarqube
psql
ALTER USER sonar WITH ENCRYPTED PASSWORD 'your_password';
\q
exit

  • Thay đổi tệp cấu hình PostgreSQL để cho phép kết nối từ SonarQube:

sudo nano /etc/postgresql/12/main/pg_hba.conf

  • Thêm dòng dưới đây vào cuối tệp:

host all all 127.0.0.1/32 md5

  • Khởi động lại PostgreSQL:

sudo systemctl restart postgresql

Tải và cài đặt SonarQube

Bước 1: Tải phiên bản mới nhất của SonarQube từ website chính thức:

wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-10.5.zip

Bước 2: Giải nén SonarQube

sudo apt install unzip
unzip sonarqube-10.5.zip
sudo mv sonarqube-10.5 /opt/sonarqube

Bước 3: Cấu hình SonarQube

  • Sửa tệp cấu hình SonarQube để kết nối với cơ sở dữ liệu PostgreSQL đã tạo:

sudo nano /opt/sonarqube/conf/sonar.properties

  • Tìm kiếm và sửa các dòng dưới đây để phù hợp với thiết lập của bạn:

sonar.jdbc.username=sonar
sonar.jdbc.password=your_password
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube

  • Đảm bảo SonarQube đủ bộ nhớ để chạy:

sudo nano /opt/sonarqube/conf/sonar.sh

  • Chỉnh sửa các dòng dưới đây:

#SONARQUBE_JAVA_OPTS=”-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError”

#SONARQUBE_JAVA_OPTS=”-Xmx2G -Xms1G -XX:+HeapDumpOnOutOfMemoryError”

Bước 4: Tạo User và cấu hình SonarQube

  • Tạo User mới cho SonarQube

sudo adduser --system --no-create-home --group --disabled-login sonarqube
sudo chown -R sonarqube:sonarqube /opt/sonarqube

  • Tạo file dịch vụ để khởi động SonarQube

sudo nano /etc/systemd/system/sonarqube.service

  • Dán các dòng sau vào tệp.

Description=SonarQube service
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop
User=sonar
Group=sonar
Restart=always
LimitNOFILE=65536
LimitNPROC=4096
[Install]
WantedBy=multi-user.target

  • Khởi động và kích hoạt SonarQube:

sudo systemctl enable sonarqube
sudo systemctl start sonarqube

Bước 5: Truy cập SonarQube

http://localhost:9000

Sau khi đăng nhập lần đầu, bạn nên thay đổi mật khẩu.

Bước 6: Tích hợp vào dự án

Để tích hợp SonarQube vào dự án, bạn cần cài đặt SonarScanner (công cụ gửi mã nguồn lên SonarQube để phân tích). Nó có thể được tích hợp dễ dàng vào các quy trình CI/CD.

Lời kết

Trên đây, LANIT đã chia sẻ chi tiết đến bạn các thông tin về SonarQube – công cụ để kiểm tra mã nguồn, giúp nâng cao chất lượng mã và bảo mật. Với những tính năng và lợi ích mà công cụ này mang lại, giúp các nhà phát triển tối ưu được chi phí, tăng hiệu suất phát triển dự án phần mềm hiệu quả.

Ngoài ra, nếu bạn còn thắc mắc nào hoặc cần tư vấn khi thuê VPS giá rẻ để chạy các phần mềm, ứng dụng thử nghiệm, liên hệ ngay LANIT để được hỗ trợ sớm nhất nhé!

avata Hải

Triệu Huyền Trang

Triệu Huyền Trang chuyên gia 3 năm kinh nghiệm trong ngành Công Nghệ, Phần Mềm. Chuyên chia sẻ các kiến thức phần mềm mã nguồn, ứng dụng và thông tin về công nghệ hữu ích.

Chat với chúng tôi qua Zalo!
Chat với chúng tôi qua Zalo!