SonarQube Cloud is a
cloud-based code quality and security analysis tool.
It automatically scans your code to find:
Bugs
Security vulnerabilities
Code smells (bad coding practices)
Managed by SonarSource
Works
directly with cloud CI/CD pipelines
No server installation or maintenance needed
👉 Think of SonarCloud as a
“code quality checker in the cloud”
What Is SonarQube Server?
SonarQube is the self-hosted version of Sonar’s code analysis platform
You install and manage it On-prem servers or Virtual machines or Kubernetes
Requires Server setup, Database & maintenance
Why SonarQubeCloud Matters in DevOps
Detects issues
early in CI/CD pipelines
Prevents
bad or insecure code
from reaching production
Enforces
Quality Gates
(pass/fail rules)
Improves Code maintainability, Security posture, Team collaboration
👉 Think of SonarQube as
“code quality on your own servers”
🔄 SonarQube Server vs SonarQube Cloud (Easy Comparison)
Feature
SonarQube Server
SonarQube Cloud
Hosting
Self-hosted (on-prem or private cloud)
Fully cloud-hosted (SaaS)
Setup
Manual install & config
No setup needed
Maintenance
You manage servers, upgrades, scaling
Zero maintenance, Sonar handles everything
Cost
Free + paid tiers for advanced features
Subscription based on lines of code; free for public repos
Data Control
Full control over data and environment
Data stored in SonarCloud’s infrastructure
Best For
Enterprises, regulated orgs
Cloud & DevOps teams
Integrations
Works with most CI/CD systems, including on-prem
Deep integration with GitHub, GitLab, Bitbucket Cloud, Azure DevOps
Branch/PR Analysis
Requires Developer Edition or higher
Included by default
Customization
Supports plugins, custom rules, and deep configuration
More limited customization compared to SonarQube
Scalability
You scale it
Auto-scales
When Should You Use SonarQube Cloud?
You use
GitHub / Azure DevOps / Bitbucket
You want quick setup
You don’t want to manage servers
You’re building Cloud-native apps or DevSecOps pipelines or Open-source
projects
🧠 Additional Context (Industry Understanding)
Even though the article highlights practical differences, other sources also emphasize technical nuance:
Both tools use the same core analysis engine (so results and rules are similar), but SonarCloud is optimized for cloud workflows and integrates first-class with GitHub, GitLab, Bitbucket, and Azure DevOps.
SonarCloud is typically easier to start with because it’s SaaS, but enterprises with strict compliance might prefer SonarQube’s on-prem deployment options.
📝 Final Thoughts
SonarQube Cloud = Best for
modern DevOps & cloud teams
SonarQube Server = Best for
enterprise & on-prem needs
Both help you
shift-left security and quality
👉 If you’re learning
DevOps, DevSecOps, or CI/CD, mastering SonarQube Cloud is
a must.
SonarQube Cloud is ideal for teams who want zero maintenance and fast cloud adoption.
SonarQube Server is best for organizations needing data control, customization, and
on‑prem compliance.
Difference between SonarQube Cloud and SonarQube Server:
Once added SonarQube plug-in, click on proceed to Organization..
How to integrate SonarQube with Azure DevOps:
Create Token in SonarQube to authenticate with Azure DevOps
You need to login to SonarQube using your admin password. admin/admin123 and click on Admin on your top side.
Click on My Account, Security.
Under Tokens, Give some value for token name and choose Global analysis token, click on generate Tokens. Copy the token value generated.
Create Service Connections in Azure DevOps
Login to Azure DevOps. Select your project dashboard.
Click on Project settings --> Service connections
click on New service connection
Type SonarQube and Click Next
Enter SonarQube server url and enter Token created
Give name for service connection and select Grant access permission to all pipelines.
Click on Save.
Create a YAML Pipeline in Azure DevOps
1. Login to Azure DevOps. Go to Azure Pipelines. Click on create a new pipeline, Select GitHub:
2. Select your GitHub repo and select the Maven as YAML pipeline template
3. Click on show assistant on right hand side, type SonarQube and select Prepare Analysis on SonarQube task and then select Service connection from the drop down and choose Integrate with Maven or Gradle option and then click on Add task
Sample Code for entire pipeline is here below
Azure DevOps Pipeline YAML Code:
# Maven
# Build your Java project and run tests with Apache Maven.
# Add steps that analyze code, save build artifacts, deploy, and more:
SONAR_HOST_URL and SONAR_TOKEN configured as secrets in GitHub Repo
How to Create Quality gate in SonarQube and integrate with GitHub Actions?
Make sure SonarQube is up and running and integrated with GitHub Actions. Please click here if you would like to setup SonarQube and integrate with GitHub Actions.
We will be executing below steps:
Login to SonarQube
Create Quality Gate in SonarQube
Add conditions in Quality Gate
Make quality gate as Default
Create GitHub Actions CICD workflow yaml
Add tasks for Maven build and Sonar Scan
Add tasks for integrating Quality gate
pass/fail the builds in SonarQube
What is Quality gate?
In SonarQube a quality gate is a set of conditions that must be met in order for a project to be marked as passed.
Create Quality Gate
Login to SonarQube, Click on Quality gate, enter some name
Once you create the quality gate. Click on Add condition.
Select new issues from the drop down and enter 2
Select new bugs from the drop down and enter 1 as error
Setup a Default Gate
Create GitHub Actions CICD workflow yaml:
Go to GitHub repo where your Java project is, create a new file:
.github/workflows/cicd.yml
The below file have four steps(tasks)
- Checkout
- Install Java on runner
- Build using Maven
- run Sonar Scan (this task need to have projectKey defined, otherwise build will fail)
- run quality gate check
- pass/fail the build
Copy the the whole yellow color marked content from below:
name: CI/CD workflow for Maven Build, Sonar Code scan and Quality gate check on: push: branches: - main workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up JDK 11 uses: actions/setup-java@v2 with: distribution: 'adopt' java-version: '11' - name: Build with Maven run: mvn install -f MyWebApp/pom.xml - name: SonarQube Scan uses: sonarsource/sonarqube-scan-action@master with: projectBaseDir: . args: > -Dsonar.organization=my-org -Dsonar.projectKey=my-Java-web-app env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} # Check the Quality Gate status. - name: SonarQube Quality Gate check id: sonarqube-quality-gate-check uses: sonarsource/sonarqube-quality-gate-action@master # Force to fail step after specific time. timeout-minutes: 5 env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} #OPTIONAL # Show the output from the Quality Gate. # The possible outputs of the `quality-gate-status` variable are `PASSED`, `WARN` or `FAILED`. - name: "Here is SonarQube Quality Gate Status value.." run: echo "The Quality Gate status is ${{ steps.sonarqube-quality-gate-check.outputs.quality-gate-status }}"
Commit the file.
As soon as you commit, build will run immediately in GitHub Actions.
Now you can see the output of build in Actions tab.
Now login to SonarQube to see the Scan report
If your code have any defects, you can see some build fails.
SonarQube Quality gate failed:
Watch Steps in YouTube channel:
Notes:
You can also refer the documentation below from below websites.