Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure...

22
Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee Chan

Transcript of Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure...

Page 1: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

Azure DevOps Open Source IntegrationsArun Chandrasekhar, Pui Chee Chan

Page 2: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

Azure DevOps Open Source Integrations

Arun Chandrasekhar

Pui Chee Chan

Page 3: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

Context

• Fit into multi-cloud strategy

– Deploy to Kubernetes

– Deploy to Web App on Linux

Page 4: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

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

Page 5: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

Kubernetes Integration

Page 6: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

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

Page 7: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

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

Page 8: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

Demo – CI/CD using Kubernetes

Page 9: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

[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

Page 10: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

[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.

Page 11: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

[NEW] Deploy to ACS plugin

• Deploy to Azure Container Service

– based on the “generic” Kubernetes plugin

Supports

ACS Plugin

K8S on Azure

Page 12: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

Web App Integration

Page 13: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

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

Page 14: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

Demo – Deploy to App Service on Linux

Page 15: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

App service plugin

Page 16: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

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

Page 17: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

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

Page 18: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

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!

Page 19: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

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

Page 20: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

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

Page 21: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee

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

Page 22: Azure DevOps Open Source Integrations - Schedschd.ws/hosted_files/jenkinsworld20162017/01/Azure DevOps Open... · Azure DevOps Open Source Integrations Arun Chandrasekhar, Pui Chee