Java CI/CD using Jenkins and Azure Web Apps

App Service
Container Instances
Database for MySQL
Web Apps
GitHub

Solution ideas

This article is a solution idea. If you'd like us to expand the content with more information, such as potential use cases, alternative services, implementation considerations, or pricing guidance, let us know by providing GitHub feedback.

Azure App Service is a fast and simple way to create web apps using Java, Node, PHP or ASP.NET, as well as support for custom language runtimes using Docker.

Potential use cases

This solution provides a continuous integration and continuous deployment (CI/CD) pipeline that pushes each of your changes automatically to Azure app services, which allows you to deliver value faster to your customers.

Architecture

Architecture diagram Download an SVG of this architecture.

Dataflow

  1. Change application source code
  2. Commit code to GitHub
  3. Continuous Integration Trigger to Jenkins
  4. Jenkins triggers a build job using Azure Container Instances for a dynamic build agent
  5. Jenkins builds and stores artifact in Azure Storage
  6. Jenkins deploys Java application to Azure Web Apps backed by Azure Database for MySQL
  7. Azure App Insights provides metrics on application performance
  8. Monitor application and make improvements

Components

  • Azure Web Apps: Quickly create and deploy mission critical Web apps at scale
  • Container Instances: Easily run containers on Azure without managing servers
  • Azure Database for MySQL: Managed MySQL database service for app developers
  • Application Insights: Detect, triage, and diagnose issues in your web apps and services
  • Azure DevOps: Build and deploy multi-platform apps to get the most from Azure services

Deploy this scenario

Next steps