SlideShare a Scribd company logo
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
Marc Müller
Principal Consultant
@muellermarc
▪
▪
▪
▪
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
https://twitter.com/dberkholz/status/689211852157407233
Write Code
Customer use the
code
Write Code
Customer use the
code
100 deployments
per day!
▪
▪
▪
▪
▪
▪
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
▪ Versioned artifact
▪ Isolated deployable unit
▪ Container image is bit by bit identical when
deployed
▪ Abstraction of data center resources
▪
▪ Orchestration is “Cattle Business”
▪
▪
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
Server
Host OS
Hypervisor
Server
Host OS
Docker Engine
Guest
OS
Guest
OS
Guest
OS
Bins/Libs Bins/Libs
App A App A’ App B
Bins/Libs Bins/Libs
AppA
AppA’
AppB
AppB’
AppB
AppB’
AppB
AppB’
Containers are isolated, but
share OS and, where
appropriate, bins/librariesBins/Libs
Image Source: https://sec.ch9.ms/sessions/build/2016/B822.pptx
▪
▪
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
Developer PC / Laptop
Docker Engine
Container Container Container
FROM microsoft/aspnetcore:2.0
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "a.dll"]
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY *.sln ./
COPY SampleWebApplication/SampleWebApplication.csproj
SampleWebApplication/
RUN dotnet restore
COPY . .
WORKDIR /src/SampleWebApplication
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "SampleWebApplication.dll"]
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
App1
App2
VSTS Build
VSTS Release
Management
Docker Registry
Build App
Test
Build Container
Repo
Container Info
Publish to Target
Host
Container Info
Push
Host
Pull
Config
Artifact
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
Pod
Container
Pod
Container Container
10.0.10.14 10.0.10.16
localhost
Multi container Pods should only be
used for highly coupled containers!
Pod
Container
10.0.10.15
▪
▪
Replication Controller / Deployment
(Replication Set)
Pod Container
Pod Container
Pod Container
▪
▪
▪
▪
▪
▪
▪
▪
▪
Service
Pod Container
Pod Container
Pod Container
A
1.2
A
1.2
A
1.2
A
1.2
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
▪
▪
▪
▪
▪
▪
▪
▪
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
Image Source: https://docs.docker.com/registry/spec/api/
▪
▪
▪
▪
▪
▪
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS
Azure Resource Group
DCOS Master
DCOS Master
Master
Agent
VSTS Agent
App1
App1
App1
App1
App1
App2
Git
Build
Release
Internet
AzureLoadBalancer
Ingress LeGo
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
▪
▪
▪
▪
▪
▪
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
▪
▪
▪
▪
▪
▪
▪
▪
VSTS Build Agent
Build Pool
Build Pool
Build Pool
Build
Definition
Build
Definition
Build
Queue
Docker Engine
Build
Agent
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
▪
▪
▪
▪
▪
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
We are looking for
great talents to
join our team!
Apply to job@4tecture.ch
www.4tecture.ch/jobs
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
VSTS/ TFS automated Release Pipelines for Web Applications with Docker
Param(
[string]$vstspat = "xxxxxxx",
[string]$subscriptionname = "xxxxxxx",
[string]$rsakeyfile = "xxxxxxx",
[string]$vstsaccount = "xxxxxxx"
)
### setup the cli settings
kubectl config unset contexts.demo-4t-k8s
az account set --subscription $subscriptionname
az account show
#az login #if needed
### setup kubernetes cluster
az group create -n "KubernetesDemo" -l "westeurope"
az acs create -n KubernetesDemo -d demo-4t-k8s -g KubernetesDemo --generate-ssh-keys --orchestrator-type kubernetes
az acs kubernetes get-credentials -g=KubernetesDemo -n=KubernetesDemo --ssh-key-file=$rsakeyfile
az acr create --name 4tKubernetesDemoRegistry --resource-group KubernetesDemo --sku Basic
az acr update -n 4tKubernetesDemoRegistry --admin-enabled true
$acrusername = az acr credential show -n 4tKubernetesDemoRegistry --query username
$acrpassword = az acr credential show -n 4tKubernetesDemoRegistry --query passwords[0].value
kubectl create secret docker-registry 4tkubernetesdemoregistry --docker-username=$acrusername --docker-password=$acrpassword--docker-server='4tkubernetesdemoregistry.azurecr.io' --
docker-email='info@4tecture.ch'
### deploy k8s configurations
kubectl apply -f .devfun_namespaces.yaml
kubectl apply -f nginx-ingress-defaultbackend.yaml
kubectl apply -f nginx-ingress-controller.yaml
kubectl apply -f nginx-ingress-service.yaml
kubectl -n kube-system get po
kubectl apply -f vsts_namespaces.yaml
kubectl create secret generic vsts --from-literal=VSTS_TOKEN=$vstspat --from-literal=VSTS_ACCOUNT=$vstsaccount --namespace=vsts
kubectl apply -f vsts_agent.yaml
kubectl apply -f lego_namespaces.yaml
kubectl apply -f lego_configmap.yaml
kubectl apply -f lego_deployment.yaml
kubectl apply -f devfun_ingress-dev.yaml
kubectl apply -f devfun_ingress-test.yaml
kubectl apply -f devfun_ingress-prod.yaml
VSTS/ TFS automated Release Pipelines for Web Applications with Docker

More Related Content

PDF
VSTS Release Pipelines with Kubernetes
PDF
Agiles Peru 2019 - Infrastructure As Code
PPTX
Ruby on Rails and Docker - Why should I care?
PDF
Terraform and cloud.ca
PPTX
Baking in the cloud with packer and puppet
PDF
Usecase examples of Packer
PPTX
Introduction to Packer and Suitcase: A Packer-based OS Image Build System
PPTX
Packer, where DevOps begins
VSTS Release Pipelines with Kubernetes
Agiles Peru 2019 - Infrastructure As Code
Ruby on Rails and Docker - Why should I care?
Terraform and cloud.ca
Baking in the cloud with packer and puppet
Usecase examples of Packer
Introduction to Packer and Suitcase: A Packer-based OS Image Build System
Packer, where DevOps begins

What's hot (19)

PDF
Rapid Infrastructure Provisioning
PDF
Ansible Introduction - Ansible Brno #1 - David Karban
PDF
Service Delivery Assembly Line with Vagrant, Packer, and Ansible
PPTX
Automation with Packer and TerraForm
PPTX
PowerShell User Group Hamburg - PowerCLI
PDF
A Introduction of Packer
PDF
Ansible 101 - Presentation at Ansible STL Meetup
PDF
PDF
Virtualize and automate your development environment for fun and profit
ODP
ansible why ?
PPTX
Ansible fest Presentation slides
PDF
A quick intro to Ansible
PDF
Terraform: Cloud Configuration Management (WTC/IPC'16)
PPTX
Introduction to ansible
PDF
Ansible Meetup Hamburg / Quickstart
PDF
以 Laravel 經驗開發 Hyperf 應用
PDF
Using Ansible for Deploying to Cloud Environments
PDF
Ansible 2 and Ansible Galaxy 2
PPTX
Ansible - Crash course
Rapid Infrastructure Provisioning
Ansible Introduction - Ansible Brno #1 - David Karban
Service Delivery Assembly Line with Vagrant, Packer, and Ansible
Automation with Packer and TerraForm
PowerShell User Group Hamburg - PowerCLI
A Introduction of Packer
Ansible 101 - Presentation at Ansible STL Meetup
Virtualize and automate your development environment for fun and profit
ansible why ?
Ansible fest Presentation slides
A quick intro to Ansible
Terraform: Cloud Configuration Management (WTC/IPC'16)
Introduction to ansible
Ansible Meetup Hamburg / Quickstart
以 Laravel 經驗開發 Hyperf 應用
Using Ansible for Deploying to Cloud Environments
Ansible 2 and Ansible Galaxy 2
Ansible - Crash course
Ad

Similar to VSTS/ TFS automated Release Pipelines for Web Applications with Docker (20)

PDF
DevDay 2017 - Automatisierte Release-Pipeline mit VSTS und Kubernetes für ASP...
PDF
BASTA 2019 - Docker + Azure DevOps + Kubernetes = ♥
PDF
Basta! Spring 2019 - Docker + Azure DevOps + Kubernetes = ♥
PDF
.NET Day Switzerland 2019 - DOCKER + AZURE DEVOPS + KUBERNETES = ♥
PDF
BASTA! 2018: Docker – Warum die Zukunft im Container stattfindet
PDF
Experts Live Switzerland 2018 - DOCKER - WARUM DIE ZUKUNFT IM CONTAINER STATT...
PDF
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
PDF
Kubernetes Boston — Custom High Availability of Kubernetes
PPTX
Scaling Docker Containers using Kubernetes and Azure Container Service
PPTX
Reactive summit 2020 microsoft orleans the easy way
PPTX
Deploying your web application with AWS ElasticBeanstalk
PDF
Terraform Cosmos DB
PDF
Cutting through the fog of cloud
PDF
From development environments to production deployments with Docker, Compose,...
PDF
AtlasCamp 2015: The age of orchestration: From Docker basics to cluster manag...
PDF
OpenSource ToolChain for the Hybrid Cloud
PPTX
Kubered -Recipes for C2 Operations on Kubernetes
PDF
Immutable Deployments with AWS CloudFormation and AWS Lambda
PPTX
Azure Bootcamp 2016 - Docker Orchestration on Azure with Rancher
PDF
Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...
DevDay 2017 - Automatisierte Release-Pipeline mit VSTS und Kubernetes für ASP...
BASTA 2019 - Docker + Azure DevOps + Kubernetes = ♥
Basta! Spring 2019 - Docker + Azure DevOps + Kubernetes = ♥
.NET Day Switzerland 2019 - DOCKER + AZURE DEVOPS + KUBERNETES = ♥
BASTA! 2018: Docker – Warum die Zukunft im Container stattfindet
Experts Live Switzerland 2018 - DOCKER - WARUM DIE ZUKUNFT IM CONTAINER STATT...
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
Kubernetes Boston — Custom High Availability of Kubernetes
Scaling Docker Containers using Kubernetes and Azure Container Service
Reactive summit 2020 microsoft orleans the easy way
Deploying your web application with AWS ElasticBeanstalk
Terraform Cosmos DB
Cutting through the fog of cloud
From development environments to production deployments with Docker, Compose,...
AtlasCamp 2015: The age of orchestration: From Docker basics to cluster manag...
OpenSource ToolChain for the Hybrid Cloud
Kubered -Recipes for C2 Operations on Kubernetes
Immutable Deployments with AWS CloudFormation and AWS Lambda
Azure Bootcamp 2016 - Docker Orchestration on Azure with Rancher
Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...
Ad

More from Marc Müller (20)

PDF
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
PDF
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
PDF
.NET Day - Continuous Deployment Showdown: Traditional CI/CD vs. GitOps
PDF
DWX 2023 - GitHub Actions für Azure-DevOps-Pipelines-Benutzer
PDF
DWX 2023 - Datenbank-Schema Deployment im Kubernetes Release
PDF
DWX 2023 - Schnelles Feedback mit Pull-Request Deployments
PDF
DWX 2023 - .NET-Microservices mit Dapr: Zu viel Abstraktion oder der richtige...
PDF
Global Azure Austria 2023 - Fast feedback with pull request deployments
PDF
BASTA Spring 2023 - SCHNELLES FEEDBACK MIT PULL REQUEST DEPLOYMENTS
PDF
BASTA Spring 2023 - AUTOMATISIERTES DATENBANK-DEPLOYMENT IM DEVOPS-PROZESS
PDF
BASTA! 2022 - Einführung in Helm, der Paket-Manger für Kubernetes
PDF
BASTA! 2022 - Automatisiertes Datenbank-Deployment im DevOps-Prozess
PDF
BASTA! 2022 - GitHub Actions für Nutzer der Azure DevOps Pipelines
PDF
.NET Day 2022 - Fast feedback with pull request deployments
PDF
DWX 2022 - DevSecOps mit GitHub
PDF
DWX 2022 - Automatisiertes Datenbank-Deployment im DevOps-Prozess
PDF
Einführung in Helm - der Paket-Manger für Kubernetes
PDF
DWX 2022 - Top 10 Best-Practices für YAML-Pipelines in Azure DevOps
PDF
Helm introduction
PDF
ADCD 2022 - Handling secrets in the release process with Azure DevOps and Azu...
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
.NET Day - Continuous Deployment Showdown: Traditional CI/CD vs. GitOps
DWX 2023 - GitHub Actions für Azure-DevOps-Pipelines-Benutzer
DWX 2023 - Datenbank-Schema Deployment im Kubernetes Release
DWX 2023 - Schnelles Feedback mit Pull-Request Deployments
DWX 2023 - .NET-Microservices mit Dapr: Zu viel Abstraktion oder der richtige...
Global Azure Austria 2023 - Fast feedback with pull request deployments
BASTA Spring 2023 - SCHNELLES FEEDBACK MIT PULL REQUEST DEPLOYMENTS
BASTA Spring 2023 - AUTOMATISIERTES DATENBANK-DEPLOYMENT IM DEVOPS-PROZESS
BASTA! 2022 - Einführung in Helm, der Paket-Manger für Kubernetes
BASTA! 2022 - Automatisiertes Datenbank-Deployment im DevOps-Prozess
BASTA! 2022 - GitHub Actions für Nutzer der Azure DevOps Pipelines
.NET Day 2022 - Fast feedback with pull request deployments
DWX 2022 - DevSecOps mit GitHub
DWX 2022 - Automatisiertes Datenbank-Deployment im DevOps-Prozess
Einführung in Helm - der Paket-Manger für Kubernetes
DWX 2022 - Top 10 Best-Practices für YAML-Pipelines in Azure DevOps
Helm introduction
ADCD 2022 - Handling secrets in the release process with Azure DevOps and Azu...

Recently uploaded (20)

PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPT
Introduction Database Management System for Course Database
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
System and Network Administration Chapter 2
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Digital Strategies for Manufacturing Companies
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
history of c programming in notes for students .pptx
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Introduction Database Management System for Course Database
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Understanding Forklifts - TECH EHS Solution
Design an Analysis of Algorithms II-SECS-1021-03
System and Network Administration Chapter 2
Navsoft: AI-Powered Business Solutions & Custom Software Development
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Digital Strategies for Manufacturing Companies
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Online Work Permit System for Fast Permit Processing
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Upgrade and Innovation Strategies for SAP ERP Customers
Wondershare Filmora 15 Crack With Activation Key [2025
history of c programming in notes for students .pptx
2025 Textile ERP Trends: SAP, Odoo & Oracle
How to Migrate SBCGlobal Email to Yahoo Easily

VSTS/ TFS automated Release Pipelines for Web Applications with Docker