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 thường được sử dụng trong các quy trình DevOps và CI/CD để đảm bảo đá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ì.
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, 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: Cho phép đo lường chất lượng mã liên tục theo thời gian, SonarQube tạo điều kiện cho việ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, 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ừ đầu giúp quá trình phát triển mã diễn ra nhanh chóng, đảm bảo mã chất lượng.
- Phát hiện lỗi sớm: 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, tránh mắc lỗi 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ã 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ã 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 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.
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: Thực hiện các bước để 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
- 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
Bạn nên thay đổi mật khẩu.
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é!