Java CI/CD using Jenkins and Azure Web Apps

Solution Idea

If you'd like to see us expand this article with more information (implementation details, pricing guidance, code examples, etc), let us know with 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. A continuous integration and continuous deployment (CI/CD) pipeline that pushes each of your changes automatically to Azure app services allows you to deliver value faster to your customers.

Architecture

Architecture diagram Download an SVG of this architecture.

Data Flow

  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

Next steps

Deploy to Azure