Azure DevOps Open Source IntegrationsArun Chandrasekhar, Pui Chee Chan
Azure DevOps Open Source Integrations
Arun Chandrasekhar
Pui Chee Chan
Context
• Fit into multi-cloud strategy
– Deploy to Kubernetes
– Deploy to Web App on Linux
Recap - since Jenkins World 2016
• Running Jenkins on Azure:
– Jenkins Master in Azure Marketplace
– All Jenkins plugins for Azure are now pipeline ready
• First native support for deploying to Azure:
– Azure App Service plugin
• Jenkins on Azure resources:
– https://aka.ms/azjenkinshub
Kubernetes Integration
Follow immutable infrastructure practices to mitigate deployment risk
Reuse the same delivery pipeline on multiple clouds and for multiple apps
Provision and configure open source app platforms using Terraform & Ansible
Multi-cloud platform
Commit Build
Demo: Movie DB Java app
– Web app in Linux container
– Data apps in Kubernetes cluster (ACS)
– Azure Database for MySQL
– Azure storage for media content
https://github.com/azure-devops/movie-db-java-on-azure
Storage blob
Azure Container Registry
Data app/REST API on Kubernetes Clusters on ACS
Web App
Java Spring Boot app running on Linux containers on Azure App Service
Azure Function
Demo – CI/CD using Kubernetes
[NEW] Azure container agent
• Run build agents in Kubernetes on Azure
– Azure Container Instances (experimental)
Jenkins Core
Jenkins Master
Pod
Kubernetes(ACS/ACI)
DockerHub/ACR
Agent Image
Execute Job1
[NEW] Deploy to Kubernetes plugin
• Deploy to local Kubernetes cloud or to any configured Kubernetes cluster.
• We support open source and open source community!
Clone Repo Code
Build
Docker
Build
Docker
Push
Deploy
Secrets in
k8s
Expand
Variable in
Config File
Deploy
Config to
k8s
K8s Creates
Deployment
Read the latest image tag
from build output and apply
to the yaml file.
[NEW] Deploy to ACS plugin
• Deploy to Azure Container Service
– based on the “generic” Kubernetes plugin
Supports
ACS Plugin
K8S on Azure
Web App Integration
Adopt a simple, familiar toolchain for software delivery for Java
Define best-practice Jenkins pipelines for common workloads/scenarios
Use tools that integrate seamlessly with Maven, Spring, and other Java tools
Turnkey deployment to Azure from Jenkins
Demo – Deploy to App Service on Linux
App service plugin
Java update
Maven dev experience
App Service on Linux
Kubernetes on Azure
IntelliJ | Eclipse dev experiences
App Service on Linux
IntelliJ Community Edition
Coming soon:
Java support in Azure Functions
Azure SDK:Cosmos DB
Azure Container Service & Registry
Active Directory Graph
Spring on Azure
Spring Boot Starters for Azure Services
Roadmap
Coming next
— Key Vault support
— Deploy to Function for Java
Future:
— Hosted Jenkins high availability cluster
— Better single sign-on/AAD integration
Available by September:
– Container build agent for ACS/K8S
– Deploy to K8S
– Deploy to ACS - K8S, DC/OS & Docker Swarm
– Deploy to VM Scale Set
Question & Answer
• Arun Chandrasekhar, [email protected]
• Pui Chee (PC) Chan, [email protected]
• Azure Jenkins Support, [email protected]
Help us prioritize – https://aka.ms/AzureLovesJenkins
Q&A
Thank you!
Resources (Jenkins)
• Solution Template on Azure Marketplace: https://aka.ms/jenkins-on-azure
• Deploy to app service plugin: https://aka.ms/azapp-service
• Container build agent for Azure Container Service(ACS)/Kubernetes
• Deploy to Kubernetes
• Deploy to K8S, DC/OS & Docker Swarm on Azure
• https://aka.ms/azjenkinshub
Resources (Java)
Java
Azure Management Libraries 1.1
https://github.com/azure/azure-sdk-for-java#sample-code
Maven
• Deploy a Spring Boot app to Azure App Service
• Deploy a containerized Spring Boot app to Azure App Service
• Deploy a containerized Spring Boot app to Azure App Service via Azure Container Registry
Resources (Java - continue)
Eclipse/IntelliJ
• GitHub Repo: https://github.com/Microsoft/azure-tools-for-java
• Eclipse: https://docs.microsoft.com/en-us/azure/azure-toolkit-for-eclipse
• IntelliJ: https://docs.microsoft.com/en-us/azure/azure-toolkit-for-intellij
Spring on Azure
• GitHub Repo: https://github.com/Microsoft/azure-spring-boot-starters