SlideShare a Scribd company logo
Using Azure DevOps to
continuously build, test,
and deploy containerized
applications with ease
Adrian Todorov, Cloud Solutions Architect
@todorov_adrian | linkedin.com/in/adriantodorov
Hello!
I am Adrian Todorov
love
heavily
developers
I need to create applications
at a competitive rate without
worrying about IT
New applications run smoothly
on my machine but malfunction
on traditional IT servers
My productivity and application
innovation become suspended
when I have to wait on IT
IT
I need to manage servers
and maintain compliance
with little disruption
I’m unsure of how to integrate
unfamiliar applications, and I
require help from developers
I’m unable to focus on both
server protection and
application compliance
Security
threats
Datacenter
efficiency
Supporting
innovation
Servers Services
Software Development Lifecycle
Software Development Lifecycle
DevOps = efficiencies that speed up this lifecycle
Key DevOps Practices
Infrastructure as
Code
Continuous
Integration
Continuous
Deployment
Automated Testing Release Management Performance
Monitoring
Availability
Monitoring
Load Testing &
Auto Scale
Automated
Recovery
(Rollback & Roll
Forward)
Why Containers?
Developers
Enable ‘write-once, run-anywhere’ apps
Enables microservice architectures
Great for dev/test of apps and services
Production realism
Growing Developer Community
Operations
Portability, Portability, Portability
Standardized development, QA, and prod
environments
Abstract differences in OS distributions
and underlying infrastructure
Higher compute density
Easily scale-up and scale-down in response
to changing business needs
DevOps
container
Containers = operating system virtualization Traditional virtual machines = hardware virtualization
Windows Server containers: maximum speed and density Hyper-V containers: isolation plus performance
OS
Kernel
Applications
Container Container Container
Hardware
Hardware
Container Container Container
Hyper-V
Container
Kernel
Container
Kernel
Container
Kernel
Hardware
OS
Application
VM VM VM
App
OS
App
OS
App
OS
container
Not a real thing. An application delivery mechanism with
process isolation based on several Linux kernel features.
(what a process can see) (what a process can use)
What is ?
 An open source container runtime
 Mac, Windows & Linux support
 Command line tool
 “Dockerfile” file format for building container
images
 The Docker image format with layered filesystem
Docker Layered Filesystem
Docker Layered Filesystem
Virtualization Containerization
Type 1
Hardware
Hypervisor 1
VM VM VM
Hardware
Type 2
Host OS
Hypervisor 2
VM VM VM
Virtual machine
Guest OS
Dependencies
Application
Hardware
Host OS
Docker Engine
Dependency 1 Dependency 2
C C C C C
Container
App dependencies
Application XYZ
Virtualization versus containerization
advantage
Fast
iteration
Agile
delivery
Immutability Cost
savings
Elastic
bursting
Efficient
deployment
For ITFor developers
Container Orchestration
orchestration
Scheduling Affinity/anti-
affinity
Health
monitoring
Failover
Scaling Networking Service
discovery
Coordinated
app upgrades
Kubernetes
Portable
Public, private, hybrid,
multi-cloud
Extensible
Modular, pluggable,
hookable, composable
Self-healing
Auto-placement, auto-restart,
auto-replication, auto-scaling
Kubernetes
Deploy your
applications quickly
and predictably
Scale your
applications on
the fly
Roll out
new features
seamlessly
Limit hardware
usage to required
resources only
Container Orchestration:
Kubernetes
What is Kubernetes?
Kubernetes - Agility
Kubernetes - Agility
Kubernetes - Scalability
Kubernetes - Scalability
Kubernetes - Scalability
Kubernetes - Reliability
Azure Container Service
(AKS)
Why AKS?
Getting Started with AKS
Managing an AKS cluster
Maersk uses AKS for a customer service process to elevate
NSAT, an industry-wide challenge
Needs: Get near-real-time data to provide better customer service
Collect data for future Machine Learning driven features
Challenges: Compute & memory intensive features
Data integration difficulties
Limited organisational experience in Cloud & Kubernetes
Requirements: Spend less time on container software management
Automation and continuous delivery
Full visibility to application, container and infrastructure
Fine grained security and access control
Click icon to learn more
Architectural approach
1. Azure Pipelines for automation
and CI/CD pipelines; adding
Terraform for further automation
2. Key Vault to secure secrets and
for persistent configuration store
3. Azure Monitor for containers
provides better logging,
troubleshooting, with no direct
container access
4. RBAC control for fine grained
Kubernetes resources access
control
Firewall
App Gateway
AKS w/
RBAC
Azure
Monitor
Azure
Pipeline
SQL
Database
Cosmos
DB
Performance
Document DB
Key
Vault
Event Hub
Batch processing
Event Simulation
Data
Factory
Data
Management
Gateway
On-premises
database
Express
Route
Service Bus
Internal Queuing
SQL
Database
Results
Reduced environment
provisioning time from
1+ weeks to 2.5 hours
Deploy times reduced
to minutes with the
introduction of
Terraform
Increased developer
autonomy with ARM
Templates and
Terraform
<>
Less time spend on
managing secrets with
AKS and Key Vault
AKS and CaaS can
potentially save 33%
on run cost
100% automated
production
deployments
Release automation tools
Simplifying the Kubernetes experience
Streamlined
Kubernetes
development
The package
manager for
Kubernetes
Event-driven
scripting for
Kubernetes
Visualization
dashboard for
Brigade
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
Helm
The best way to find, share, and use software
built for Kubernetes
Manage complexity
Charts can describe complex
apps; provide repeatable
app installs, and serve as a
single point of authority
Easy updates
Take the pain out
of updates with in-
place upgrades and
custom hooks
Simple sharing
Charts are easy to
version, share, and host
on public or private
servers
Rollbacks
Use helm rollback
to roll back to an older
version of a release
with ease
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
Helm
Helm Charts helps you define, install, and upgrade
even the most complex Kubernetes application
custom
services
Chart.yml
db
load balancer
ci
…
Azure Container
Service (AKS)
Azure Container
Instances (ACI)
Azure Container
Registry
Open Service
Broker API (OSBA)
Release
Automation Tools
Introducing Azure DevOps
Kanban Boards, Backlogs,
Dashboards, and Reporting
CI/CD platform, FREE for open source
projects
Unlimited, Cloud-Hosted Private
Git Repos
Manual and Exploratory Testing
Tools
Package Management for Maven,
npm, and NuGet
Azure Boards Azure ReposAzure Pipelines
Azure Test Plans Azure Artifacts
https://azure.com/devops
Azure DevOps – Get started for FREE
https://azure.com/devops
DevOps at Microsoft
Data: Internal Microsoft engineering system activity, August 2018
372k
Pull Requests per
month
2m
Git commits per month
78,000Deployments per day
4.4m
Builds per month
500m
Test executions per day
500k
Work items updated
per day
5m
Work items viewed per
day
Azure DevOps is the toolchain of choice for Microsoft internal engineering with over 90,000 internal users
https://aka.ms/DevOpsAtMicrosoft
Database tier
AKS production cluster
Source
code control
Helm
chart
Inner loop
Test
Debug
Azure
DevSpaces
AKS dev
cluster
Azure
Container
Registry
Azure Pipelines/
DevOps Project
Auto-build
Business
logic
Front end
Azure
Monitor
CI/CD
Azure makes Kubernetes easy
Accelerate containerized application development
Task The Old Way With Azure
Build a containerized app and
deploy to Kubernetes
Build the app
Write a Dockerfile
Build the container image
Push the container to a registry
Write Kubernetes manifests/Helm chart
Deploy to Kubernetes
draft init to configure your environment
draft create to auto-create Dockerfile/Helm chart
draft up to deploy to Kubernetes
Build a containerized app and
deploy to Kubernetes
Set up a local dev environment using Minikube
Determine the transitive closure of your dependencies
Identify behavior of dependencies for key test cases
Stub out dependent services with expected behavior
Make local changes, check-in, and hope things work
Validate with application logs
Use DevSpaces
Do breakpoint debugging in your IDE
Expose web apps to the internet
with a DNS entry
Deploy an ingress controller
Create a load-balanced IP for it
Add an ingress resource to your deployment
Acquire a custom domain
Create a DNS A-record for your service
Turn HTTP application routing on in your cluster
Add an ingress resource to your deployment
Azure makes Kubernetes easy
Set up CI/CD in a few clicks
Task The Old Way With Azure
Set up a CI/CD pipeline and
deploy to Kubernetes
Create git repo
Create a build pipeline
Create a container registry
Create a Kubernetes cluster
Configure build pipeline to push to container registry
Configure build pipeline to deploy to Kubernetes
Create an Azure DevOps project with AKS as a target
Make container images
available for deployment
worldwide
Create a container registry in every region
Configure build pipeline with multiple endpoints
Loop through all regions and push following build
Create an Azure Container Registry with geo-replication
Push your image to a single endpoint
Track health with consolidated
cluster and application logs
Choose a logging solution
Deploy log stack in your cluster or provision a service
Configure and deploy a logging agent onto all nodes
Checkbox “container monitoring” in the Azure portal
 Build small containers
 Application architecture
 Use Namespaces
 Use helm charts
 RBAC
 Implement Health checks
 Set requests and limits
 Be mindful of your services
 Map external services
 Don’t rely on load balancers
5 Kubernetes Best Practices
Microsoft
Questions?
Secure your Kubernetes environment
Compliant Kubernetes
service with
certifications covering
SOC, HIPAA, and PCI
Control access through
AAD and RBAC
Safeguard keys and
secrets with Key Vault
Secure network
communications with
VNET and CNI
Scale and run with confidence
Built-in
auto scaling
Global
data center
Geo-replicated
container registry
Elastically burst
using ACI
Browser
Traffic
manager
Geo-replicated
container registry
AKS clusters
Azure Container Instances
Pod Pod
Pod Pod
Pod Pod
VM
Pods
VM
Pods
VM
Pods
VM
Pods
Kubernetes
control pane
Azure Container Instances (ACI)
Pods
ACI
Connector
Application
Architect
Infrastructure
Architect
Deployment/
tasks

More Related Content

What's hot

Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
Felipe Artur Feltes
 
Azure DevOps - Azure Guatemala Meetup
Azure DevOps - Azure Guatemala MeetupAzure DevOps - Azure Guatemala Meetup
Azure DevOps - Azure Guatemala Meetup
Guillermo Zepeda Selman
 
Welcome to Azure Devops
Welcome to Azure DevopsWelcome to Azure Devops
Welcome to Azure Devops
Alessandro Scardova
 
Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
Juan Fabian
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
 
Azure devops
Azure devopsAzure devops
Azure devops
Mohit Chhabra
 
Drive business outcomes using Azure Devops
Drive business outcomes using Azure DevopsDrive business outcomes using Azure Devops
Drive business outcomes using Azure Devops
Belatrix Software
 
Azure DevOps CI/CD For Beginners
Azure DevOps CI/CD  For BeginnersAzure DevOps CI/CD  For Beginners
Azure DevOps CI/CD For Beginners
Rahul Nath
 
DevOps Best Practices
DevOps Best PracticesDevOps Best Practices
DevOps Best Practices
Giragadurai Vallirajan
 
Modern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsModern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOps
GlobalLogic Ukraine
 
Azure dev ops
Azure dev opsAzure dev ops
Azure dev ops
Swaminathan Vetri
 
Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps  Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps
Chetan Gordhan
 
Leveraging Azure DevOps across the Enterprise
Leveraging Azure DevOps across the EnterpriseLeveraging Azure DevOps across the Enterprise
Leveraging Azure DevOps across the Enterprise
Andrew Kelleher
 
Tour of Azure DevOps
Tour of Azure DevOpsTour of Azure DevOps
Tour of Azure DevOps
Callon Campbell
 
(ARC307) Infrastructure as Code
(ARC307) Infrastructure as Code(ARC307) Infrastructure as Code
(ARC307) Infrastructure as Code
Amazon Web Services
 
Getting Started with Azure DevOps
Getting Started with Azure DevOpsGetting Started with Azure DevOps
Getting Started with Azure DevOps
Jessica Deen
 
DevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation SlidesDevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation Slides
SlideTeam
 
Azure Boards.pptx
Azure Boards.pptxAzure Boards.pptx
Azure Boards.pptx
Nitin Sethi
 
Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
Michael Jesse
 
Intro to Azure DevOps
Intro to Azure DevOpsIntro to Azure DevOps
Intro to Azure DevOps
Lorenzo Barbieri
 

What's hot (20)

Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
 
Azure DevOps - Azure Guatemala Meetup
Azure DevOps - Azure Guatemala MeetupAzure DevOps - Azure Guatemala Meetup
Azure DevOps - Azure Guatemala Meetup
 
Welcome to Azure Devops
Welcome to Azure DevopsWelcome to Azure Devops
Welcome to Azure Devops
 
Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
 
Azure devops
Azure devopsAzure devops
Azure devops
 
Drive business outcomes using Azure Devops
Drive business outcomes using Azure DevopsDrive business outcomes using Azure Devops
Drive business outcomes using Azure Devops
 
Azure DevOps CI/CD For Beginners
Azure DevOps CI/CD  For BeginnersAzure DevOps CI/CD  For Beginners
Azure DevOps CI/CD For Beginners
 
DevOps Best Practices
DevOps Best PracticesDevOps Best Practices
DevOps Best Practices
 
Modern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsModern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOps
 
Azure dev ops
Azure dev opsAzure dev ops
Azure dev ops
 
Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps  Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps
 
Leveraging Azure DevOps across the Enterprise
Leveraging Azure DevOps across the EnterpriseLeveraging Azure DevOps across the Enterprise
Leveraging Azure DevOps across the Enterprise
 
Tour of Azure DevOps
Tour of Azure DevOpsTour of Azure DevOps
Tour of Azure DevOps
 
(ARC307) Infrastructure as Code
(ARC307) Infrastructure as Code(ARC307) Infrastructure as Code
(ARC307) Infrastructure as Code
 
Getting Started with Azure DevOps
Getting Started with Azure DevOpsGetting Started with Azure DevOps
Getting Started with Azure DevOps
 
DevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation SlidesDevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation Slides
 
Azure Boards.pptx
Azure Boards.pptxAzure Boards.pptx
Azure Boards.pptx
 
Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
 
Intro to Azure DevOps
Intro to Azure DevOpsIntro to Azure DevOps
Intro to Azure DevOps
 

Similar to Using Azure DevOps to continuously build, test, and deploy containerized applications with ease

Microsoft Ignite 2018 BRK3192 Container DevOps on Azure
Microsoft Ignite 2018 BRK3192 Container DevOps on AzureMicrosoft Ignite 2018 BRK3192 Container DevOps on Azure
Microsoft Ignite 2018 BRK3192 Container DevOps on Azure
Jessica Deen
 
Kubernetes vs App Service
Kubernetes vs App ServiceKubernetes vs App Service
Kubernetes vs App Service
Lorenzo Barbieri
 
The state of containers for your DevOps journey
The state of containers for your DevOps journeyThe state of containers for your DevOps journey
The state of containers for your DevOps journey
Agile Montréal
 
Kubernetes VS. App Service: When the orchestrator challenges the platform
Kubernetes VS. App Service: When the orchestrator challenges the platformKubernetes VS. App Service: When the orchestrator challenges the platform
Kubernetes VS. App Service: When the orchestrator challenges the platform
Lorenzo Barbieri
 
Kubernetes for .NET Developers
Kubernetes for .NET DevelopersKubernetes for .NET Developers
Kubernetes for .NET Developers
Lorenzo Barbieri
 
Microsoft, Linux, Open Source, DevOps
Microsoft, Linux, Open Source, DevOpsMicrosoft, Linux, Open Source, DevOps
Microsoft, Linux, Open Source, DevOps
Jessica Deen
 
Running Containers on Azure
Running Containers on AzureRunning Containers on Azure
Running Containers on Azure
Nick Trogh
 
DCSF 19 Developing Apps with Containers, Functions and Cloud Services
DCSF 19 Developing Apps with Containers, Functions and Cloud ServicesDCSF 19 Developing Apps with Containers, Functions and Cloud Services
DCSF 19 Developing Apps with Containers, Functions and Cloud Services
Docker, Inc.
 
Dockercon 2019 Developing Apps with Containers, Functions and Cloud Services
Dockercon 2019 Developing Apps with Containers, Functions and Cloud ServicesDockercon 2019 Developing Apps with Containers, Functions and Cloud Services
Dockercon 2019 Developing Apps with Containers, Functions and Cloud Services
Patrick Chanezon
 
Cloud for Kubernetes : Session4
Cloud for Kubernetes : Session4Cloud for Kubernetes : Session4
Cloud for Kubernetes : Session4
WhaTap Labs
 
Microsoft, Linux, Open Source, DevOps
Microsoft, Linux, Open Source, DevOpsMicrosoft, Linux, Open Source, DevOps
Microsoft, Linux, Open Source, DevOps
Jessica Deen
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
Kumton Suttiraksiri
 
DevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm Webinar
Codefresh
 
ClearScale: Continuous Automation with Docker on AWS
ClearScale: Continuous Automation with Docker on AWSClearScale: Continuous Automation with Docker on AWS
ClearScale: Continuous Automation with Docker on AWS
Amazon Web Services
 
All you need for Containerized application in Microsoft Azure
All you need for Containerized application in Microsoft AzureAll you need for Containerized application in Microsoft Azure
All you need for Containerized application in Microsoft Azure
Evgeny Rudinsky
 
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
Ian Choi
 
Containers On Azure.
Containers On Azure.Containers On Azure.
Containers On Azure.
Omnia Ismail
 
Containers and Kubernetes
Containers and KubernetesContainers and Kubernetes
Containers and Kubernetes
Nills Franssens
 
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud ServicesGIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
Patrick Chanezon
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
Amazon Web Services
 

Similar to Using Azure DevOps to continuously build, test, and deploy containerized applications with ease (20)

Microsoft Ignite 2018 BRK3192 Container DevOps on Azure
Microsoft Ignite 2018 BRK3192 Container DevOps on AzureMicrosoft Ignite 2018 BRK3192 Container DevOps on Azure
Microsoft Ignite 2018 BRK3192 Container DevOps on Azure
 
Kubernetes vs App Service
Kubernetes vs App ServiceKubernetes vs App Service
Kubernetes vs App Service
 
The state of containers for your DevOps journey
The state of containers for your DevOps journeyThe state of containers for your DevOps journey
The state of containers for your DevOps journey
 
Kubernetes VS. App Service: When the orchestrator challenges the platform
Kubernetes VS. App Service: When the orchestrator challenges the platformKubernetes VS. App Service: When the orchestrator challenges the platform
Kubernetes VS. App Service: When the orchestrator challenges the platform
 
Kubernetes for .NET Developers
Kubernetes for .NET DevelopersKubernetes for .NET Developers
Kubernetes for .NET Developers
 
Microsoft, Linux, Open Source, DevOps
Microsoft, Linux, Open Source, DevOpsMicrosoft, Linux, Open Source, DevOps
Microsoft, Linux, Open Source, DevOps
 
Running Containers on Azure
Running Containers on AzureRunning Containers on Azure
Running Containers on Azure
 
DCSF 19 Developing Apps with Containers, Functions and Cloud Services
DCSF 19 Developing Apps with Containers, Functions and Cloud ServicesDCSF 19 Developing Apps with Containers, Functions and Cloud Services
DCSF 19 Developing Apps with Containers, Functions and Cloud Services
 
Dockercon 2019 Developing Apps with Containers, Functions and Cloud Services
Dockercon 2019 Developing Apps with Containers, Functions and Cloud ServicesDockercon 2019 Developing Apps with Containers, Functions and Cloud Services
Dockercon 2019 Developing Apps with Containers, Functions and Cloud Services
 
Cloud for Kubernetes : Session4
Cloud for Kubernetes : Session4Cloud for Kubernetes : Session4
Cloud for Kubernetes : Session4
 
Microsoft, Linux, Open Source, DevOps
Microsoft, Linux, Open Source, DevOpsMicrosoft, Linux, Open Source, DevOps
Microsoft, Linux, Open Source, DevOps
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
 
DevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm Webinar
 
ClearScale: Continuous Automation with Docker on AWS
ClearScale: Continuous Automation with Docker on AWSClearScale: Continuous Automation with Docker on AWS
ClearScale: Continuous Automation with Docker on AWS
 
All you need for Containerized application in Microsoft Azure
All you need for Containerized application in Microsoft AzureAll you need for Containerized application in Microsoft Azure
All you need for Containerized application in Microsoft Azure
 
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
 
Containers On Azure.
Containers On Azure.Containers On Azure.
Containers On Azure.
 
Containers and Kubernetes
Containers and KubernetesContainers and Kubernetes
Containers and Kubernetes
 
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud ServicesGIDS 2019: Developing Apps with Containers, Functions and Cloud Services
GIDS 2019: Developing Apps with Containers, Functions and Cloud Services
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 

Recently uploaded

Hands-on with Apache Druid: Installation & Data Ingestion Steps
Hands-on with Apache Druid: Installation & Data Ingestion StepsHands-on with Apache Druid: Installation & Data Ingestion Steps
Hands-on with Apache Druid: Installation & Data Ingestion Steps
servicesNitor
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
Jhone kinadey
 
Cost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App DevelopmentCost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App Development
Softradix Technologies
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
Maitrey Patel
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
What’s New in VictoriaLogs - Q2 2024 Update
What’s New in VictoriaLogs - Q2 2024 UpdateWhat’s New in VictoriaLogs - Q2 2024 Update
What’s New in VictoriaLogs - Q2 2024 Update
VictoriaMetrics
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
kalichargn70th171
 
Refactoring legacy systems using events commands and bubble contexts
Refactoring legacy systems using events commands and bubble contextsRefactoring legacy systems using events commands and bubble contexts
Refactoring legacy systems using events commands and bubble contexts
Michał Kurzeja
 
Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
Paul Brebner
 
Folding Cheat Sheet #5 - fifth in a series
Folding Cheat Sheet #5 - fifth in a seriesFolding Cheat Sheet #5 - fifth in a series
Folding Cheat Sheet #5 - fifth in a series
Philip Schwarz
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 
What’s new in VictoriaMetrics - Q2 2024 Update
What’s new in VictoriaMetrics - Q2 2024 UpdateWhat’s new in VictoriaMetrics - Q2 2024 Update
What’s new in VictoriaMetrics - Q2 2024 Update
VictoriaMetrics
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
Upturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in NashikUpturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in Nashik
Upturn India Technologies
 
Call Girls Bangalore🔥7023059433🔥Best Profile Escorts in Bangalore Available 24/7
Call Girls Bangalore🔥7023059433🔥Best Profile Escorts in Bangalore Available 24/7Call Girls Bangalore🔥7023059433🔥Best Profile Escorts in Bangalore Available 24/7
Call Girls Bangalore🔥7023059433🔥Best Profile Escorts in Bangalore Available 24/7
manji sharman06
 
Folding Cheat Sheet #6 - sixth in a series
Folding Cheat Sheet #6 - sixth in a seriesFolding Cheat Sheet #6 - sixth in a series
Folding Cheat Sheet #6 - sixth in a series
Philip Schwarz
 
Best Practices & Tips for a Successful Odoo ERP Implementation
Best Practices & Tips for a Successful Odoo ERP ImplementationBest Practices & Tips for a Successful Odoo ERP Implementation
Best Practices & Tips for a Successful Odoo ERP Implementation
Envertis Software Solutions
 

Recently uploaded (20)

Hands-on with Apache Druid: Installation & Data Ingestion Steps
Hands-on with Apache Druid: Installation & Data Ingestion StepsHands-on with Apache Druid: Installation & Data Ingestion Steps
Hands-on with Apache Druid: Installation & Data Ingestion Steps
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
 
Cost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App DevelopmentCost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App Development
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
What’s New in VictoriaLogs - Q2 2024 Update
What’s New in VictoriaLogs - Q2 2024 UpdateWhat’s New in VictoriaLogs - Q2 2024 Update
What’s New in VictoriaLogs - Q2 2024 Update
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
 
Refactoring legacy systems using events commands and bubble contexts
Refactoring legacy systems using events commands and bubble contextsRefactoring legacy systems using events commands and bubble contexts
Refactoring legacy systems using events commands and bubble contexts
 
Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
 
Folding Cheat Sheet #5 - fifth in a series
Folding Cheat Sheet #5 - fifth in a seriesFolding Cheat Sheet #5 - fifth in a series
Folding Cheat Sheet #5 - fifth in a series
 
bgiolcb
bgiolcbbgiolcb
bgiolcb
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 
What’s new in VictoriaMetrics - Q2 2024 Update
What’s new in VictoriaMetrics - Q2 2024 UpdateWhat’s new in VictoriaMetrics - Q2 2024 Update
What’s new in VictoriaMetrics - Q2 2024 Update
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
Upturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in NashikUpturn India Technologies - Web development company in Nashik
Upturn India Technologies - Web development company in Nashik
 
Call Girls Bangalore🔥7023059433🔥Best Profile Escorts in Bangalore Available 24/7
Call Girls Bangalore🔥7023059433🔥Best Profile Escorts in Bangalore Available 24/7Call Girls Bangalore🔥7023059433🔥Best Profile Escorts in Bangalore Available 24/7
Call Girls Bangalore🔥7023059433🔥Best Profile Escorts in Bangalore Available 24/7
 
Folding Cheat Sheet #6 - sixth in a series
Folding Cheat Sheet #6 - sixth in a seriesFolding Cheat Sheet #6 - sixth in a series
Folding Cheat Sheet #6 - sixth in a series
 
Best Practices & Tips for a Successful Odoo ERP Implementation
Best Practices & Tips for a Successful Odoo ERP ImplementationBest Practices & Tips for a Successful Odoo ERP Implementation
Best Practices & Tips for a Successful Odoo ERP Implementation
 

Using Azure DevOps to continuously build, test, and deploy containerized applications with ease

  • 1. Using Azure DevOps to continuously build, test, and deploy containerized applications with ease Adrian Todorov, Cloud Solutions Architect @todorov_adrian | linkedin.com/in/adriantodorov
  • 2. Hello! I am Adrian Todorov love heavily
  • 3.
  • 4.
  • 5. developers I need to create applications at a competitive rate without worrying about IT New applications run smoothly on my machine but malfunction on traditional IT servers My productivity and application innovation become suspended when I have to wait on IT
  • 6. IT I need to manage servers and maintain compliance with little disruption I’m unsure of how to integrate unfamiliar applications, and I require help from developers I’m unable to focus on both server protection and application compliance
  • 9.
  • 11. Software Development Lifecycle DevOps = efficiencies that speed up this lifecycle
  • 12. Key DevOps Practices Infrastructure as Code Continuous Integration Continuous Deployment Automated Testing Release Management Performance Monitoring Availability Monitoring Load Testing & Auto Scale Automated Recovery (Rollback & Roll Forward)
  • 13. Why Containers? Developers Enable ‘write-once, run-anywhere’ apps Enables microservice architectures Great for dev/test of apps and services Production realism Growing Developer Community Operations Portability, Portability, Portability Standardized development, QA, and prod environments Abstract differences in OS distributions and underlying infrastructure Higher compute density Easily scale-up and scale-down in response to changing business needs DevOps
  • 14. container Containers = operating system virtualization Traditional virtual machines = hardware virtualization Windows Server containers: maximum speed and density Hyper-V containers: isolation plus performance OS Kernel Applications Container Container Container Hardware Hardware Container Container Container Hyper-V Container Kernel Container Kernel Container Kernel Hardware OS Application VM VM VM App OS App OS App OS
  • 15. container Not a real thing. An application delivery mechanism with process isolation based on several Linux kernel features. (what a process can see) (what a process can use)
  • 16. What is ?  An open source container runtime  Mac, Windows & Linux support  Command line tool  “Dockerfile” file format for building container images  The Docker image format with layered filesystem
  • 19. Virtualization Containerization Type 1 Hardware Hypervisor 1 VM VM VM Hardware Type 2 Host OS Hypervisor 2 VM VM VM Virtual machine Guest OS Dependencies Application Hardware Host OS Docker Engine Dependency 1 Dependency 2 C C C C C Container App dependencies Application XYZ Virtualization versus containerization
  • 21.
  • 24. Kubernetes Portable Public, private, hybrid, multi-cloud Extensible Modular, pluggable, hookable, composable Self-healing Auto-placement, auto-restart, auto-replication, auto-scaling
  • 25. Kubernetes Deploy your applications quickly and predictably Scale your applications on the fly Roll out new features seamlessly Limit hardware usage to required resources only
  • 35.
  • 38. Managing an AKS cluster
  • 39.
  • 40.
  • 41.
  • 42. Maersk uses AKS for a customer service process to elevate NSAT, an industry-wide challenge Needs: Get near-real-time data to provide better customer service Collect data for future Machine Learning driven features Challenges: Compute & memory intensive features Data integration difficulties Limited organisational experience in Cloud & Kubernetes Requirements: Spend less time on container software management Automation and continuous delivery Full visibility to application, container and infrastructure Fine grained security and access control Click icon to learn more
  • 43. Architectural approach 1. Azure Pipelines for automation and CI/CD pipelines; adding Terraform for further automation 2. Key Vault to secure secrets and for persistent configuration store 3. Azure Monitor for containers provides better logging, troubleshooting, with no direct container access 4. RBAC control for fine grained Kubernetes resources access control Firewall App Gateway AKS w/ RBAC Azure Monitor Azure Pipeline SQL Database Cosmos DB Performance Document DB Key Vault Event Hub Batch processing Event Simulation Data Factory Data Management Gateway On-premises database Express Route Service Bus Internal Queuing SQL Database
  • 44. Results Reduced environment provisioning time from 1+ weeks to 2.5 hours Deploy times reduced to minutes with the introduction of Terraform Increased developer autonomy with ARM Templates and Terraform <> Less time spend on managing secrets with AKS and Key Vault AKS and CaaS can potentially save 33% on run cost 100% automated production deployments
  • 45. Release automation tools Simplifying the Kubernetes experience Streamlined Kubernetes development The package manager for Kubernetes Event-driven scripting for Kubernetes Visualization dashboard for Brigade Azure Container Service (AKS) Azure Container Instances (ACI) Azure Container Registry Open Service Broker API (OSBA) Release Automation Tools
  • 46. Helm The best way to find, share, and use software built for Kubernetes Manage complexity Charts can describe complex apps; provide repeatable app installs, and serve as a single point of authority Easy updates Take the pain out of updates with in- place upgrades and custom hooks Simple sharing Charts are easy to version, share, and host on public or private servers Rollbacks Use helm rollback to roll back to an older version of a release with ease Azure Container Service (AKS) Azure Container Instances (ACI) Azure Container Registry Open Service Broker API (OSBA) Release Automation Tools
  • 47. Helm Helm Charts helps you define, install, and upgrade even the most complex Kubernetes application custom services Chart.yml db load balancer ci … Azure Container Service (AKS) Azure Container Instances (ACI) Azure Container Registry Open Service Broker API (OSBA) Release Automation Tools
  • 48.
  • 49. Introducing Azure DevOps Kanban Boards, Backlogs, Dashboards, and Reporting CI/CD platform, FREE for open source projects Unlimited, Cloud-Hosted Private Git Repos Manual and Exploratory Testing Tools Package Management for Maven, npm, and NuGet Azure Boards Azure ReposAzure Pipelines Azure Test Plans Azure Artifacts https://azure.com/devops
  • 50. Azure DevOps – Get started for FREE https://azure.com/devops
  • 51. DevOps at Microsoft Data: Internal Microsoft engineering system activity, August 2018 372k Pull Requests per month 2m Git commits per month 78,000Deployments per day 4.4m Builds per month 500m Test executions per day 500k Work items updated per day 5m Work items viewed per day Azure DevOps is the toolchain of choice for Microsoft internal engineering with over 90,000 internal users https://aka.ms/DevOpsAtMicrosoft
  • 52. Database tier AKS production cluster Source code control Helm chart Inner loop Test Debug Azure DevSpaces AKS dev cluster Azure Container Registry Azure Pipelines/ DevOps Project Auto-build Business logic Front end Azure Monitor CI/CD
  • 53.
  • 54. Azure makes Kubernetes easy Accelerate containerized application development Task The Old Way With Azure Build a containerized app and deploy to Kubernetes Build the app Write a Dockerfile Build the container image Push the container to a registry Write Kubernetes manifests/Helm chart Deploy to Kubernetes draft init to configure your environment draft create to auto-create Dockerfile/Helm chart draft up to deploy to Kubernetes Build a containerized app and deploy to Kubernetes Set up a local dev environment using Minikube Determine the transitive closure of your dependencies Identify behavior of dependencies for key test cases Stub out dependent services with expected behavior Make local changes, check-in, and hope things work Validate with application logs Use DevSpaces Do breakpoint debugging in your IDE Expose web apps to the internet with a DNS entry Deploy an ingress controller Create a load-balanced IP for it Add an ingress resource to your deployment Acquire a custom domain Create a DNS A-record for your service Turn HTTP application routing on in your cluster Add an ingress resource to your deployment
  • 55. Azure makes Kubernetes easy Set up CI/CD in a few clicks Task The Old Way With Azure Set up a CI/CD pipeline and deploy to Kubernetes Create git repo Create a build pipeline Create a container registry Create a Kubernetes cluster Configure build pipeline to push to container registry Configure build pipeline to deploy to Kubernetes Create an Azure DevOps project with AKS as a target Make container images available for deployment worldwide Create a container registry in every region Configure build pipeline with multiple endpoints Loop through all regions and push following build Create an Azure Container Registry with geo-replication Push your image to a single endpoint Track health with consolidated cluster and application logs Choose a logging solution Deploy log stack in your cluster or provision a service Configure and deploy a logging agent onto all nodes Checkbox “container monitoring” in the Azure portal
  • 56.  Build small containers  Application architecture  Use Namespaces  Use helm charts  RBAC  Implement Health checks  Set requests and limits  Be mindful of your services  Map external services  Don’t rely on load balancers 5 Kubernetes Best Practices
  • 59. Secure your Kubernetes environment Compliant Kubernetes service with certifications covering SOC, HIPAA, and PCI Control access through AAD and RBAC Safeguard keys and secrets with Key Vault Secure network communications with VNET and CNI
  • 60. Scale and run with confidence Built-in auto scaling Global data center Geo-replicated container registry Elastically burst using ACI Browser Traffic manager Geo-replicated container registry AKS clusters Azure Container Instances Pod Pod Pod Pod Pod Pod
  • 61. VM Pods VM Pods VM Pods VM Pods Kubernetes control pane Azure Container Instances (ACI) Pods ACI Connector Application Architect Infrastructure Architect Deployment/ tasks

Editor's Notes

  1. Microsoft Envision 2016
  2. S4 Solution Specialist Sales Summit
  3. Developers are going to come out with the idea, they are going to implement the idea, they are going to take the code that they write and then build it, test it, put it through the release process until it finally gets out into production where your customers can use it Every new feature that you build into your application is going to go through that lifecycle After your customers can get their hands on it, you can start to learn from it Development team can look at the customer usage data from the application, they can get feedback from the customer and they can start to plan and take educated decisions on what they want to do next 2 Important things to note about this development lifecycle First: The speed of the completing that loop (to build a new feature and to get it into the hands of your customers and have your customers start using it and learning from their usage) – the speed of completing that loop determines your business agility The faster we’re able to iterate through the loop, the more responsive you will be to customers and the quicker you will be able to innovate We need to focus on improving that loop as quickly as we can Second thing to note: Developers are adding value to the customer when they are working on the left side, writing new code and building new features Any time the developers spend in the middle of this diagram, all of this time will be lost in the eyes of the customer. Either building the delivery pipeline or handholding changes through that pipeline, all of that time will be lost in the eyes of your customers So what you want to do is maximize your time your developers are writing new features and minimize the time developers are spending in the middle
  4. And it’s really those 2 things that make the heart of the DevOps, the heart of DevOps is any efficiencies you might make, that can you drive, that helps you loop through this faster. And this is why it’s so confusing to implement DevOps. There are many things you can do here. You can make organizational changes, cultural changes, process changes, tool changes and I think that’s okay, anything that you can use to make improvements to this delivery pipeline and feedback loop count as DevOps
  5. You might also hear Pipeline as Code. Another newer term is GitOps. All of these practices help you
  6. Add in graphic from Codefresh layer example -
  7. Add in graphic from Codefresh layer example -
  8. Agile delivery is part of DevOps, so everything is starting to tie together.
  9. 49
  10. 50
  11. 51
  12. 57