This document provides an overview of DevOps concepts and tools. It discusses containers and container orchestration with Kubernetes. It also mentions Azure DevOps and Azure Kubernetes Service (AKS) as tools that can help with DevOps practices like continuous integration/delivery (CI/CD). Helm charts are presented as a way to define and manage complex Kubernetes applications and services. Some best practices for Kubernetes are also listed.
7. 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
8. 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
12. People. Process. Products.
What is DevOps?
DevOps is the union of people,
process, and products to
enable continuous delivery of
value to your end users.
“
”
Build
&
Test
Continuous
Delivery
Deploy
Operate
Monitor
&
Learn
Plan
&
Track
Develop
13. High Performance DevOps Companies Achieve…
DevOps
Source: 2018 Accelerate: State of DevOps: Strategies for a New Economy." N. Forsgren, J. Humble, G. Kim. DevOps Research and Assessment (DORA)
Faster
Time to Market
Increased
Revenue
2,604x Faster Mean
Time to Recover
2,555x Faster Lead
Time For Changes
7x Lower Change
Failure Rate
46x Deployment
Frequency
$
14. 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)
15. 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
16. 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
17. 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)
18. 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
21. 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
44. 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
45. 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
46. 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
47.
48. 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
49. Azure DevOps – Get started for FREE
https://azure.com/devops
50. 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
51.
52. 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
Jamie:
We’re going to be spending a lot of time taking about DevOps today. It would probably be a good idea to start of with what exactly we mean when we say DevOps.
Donovan, you’ve spent more time talking with folks about DevOps than anyone I know, what does DevOps mean to you?
Donovan:
DevOps is the union of people, process and products to enable the continuous delivery of value to your end customers
…
Jamie:
We know that DevOps tools & practices help folks ship faster.
The numbers in this slide are from the latest State of DevOps report.
On the surface these numbers can seem crazy.
But I have experienced them 1st hand.
10 years ago, 2 year ship cycles were the norm. If we shipped something to customers more than once a year it was a good year. Last week we shipped hundreds of changes, just in my team. & wow our developers happier when they don’t have to wait to ship what they’ve built.
It has completely been a DevOps transformation; our people have learned; and our processes and tools are better.
Add in graphic from Codefresh layer example -
Add in graphic from Codefresh layer example -
Jamie
Today I’m very excited to announce Azure DevOps.
A set of services for developers that span the software lifecycle.
You can use them together or independently. It all depends on what you need.
Either way, I know they can help you ship faster.
How? Because they are what we use at Microsoft. In the last month over 80k folks here at MS have used Azure DevOps to ship our software to you.. Both the small teams & the large teams.
Transition…
Lets jump in & take a look at Azure DevOps, starting with Azure Pipelines.
(just Jamie)
The What…
Azure Pipelines is our offering for the heart of your DevOps needs… CI/CD… continuous integration & deployment.
Azure Pipelines is the perfect launchpad for your code – automating everything… from your builds and deployments so you spend less time with the nuts and bolts and more time being creative
At Microsoft we do just that. We deploy over 78k times a day with Azure Pipelines.
Open & extensible…
It’s great for any type of application, any platform or any cloud.
It has cloud hosted pools of Linux, Mac & Windows VMs that we manage for you.
Your not restricted to the functionality we provide, Pipelines has rich extensibility. Partners and the community can contribute extensions in our marketplace for everyone
One of my favourite things is when new extensions show up. We have over 500 today, ranging from community built to services from Slack to SonarCloud.
works has rich extensibility with a wide range of community extensions along with
If you want to build & test a Node app in a GitHub repo and deploy it via a docker container to AWS… go for it.
Containers / Modern…
Containers are becoming more & more the unity of deployment & Azure Pipelines is great for containers.
Azure Pipelines can build images, push them to container registries like Docker Hub and Azure Container Registry. You can deploy to any container host including Kubernetes.
Transition…
Donovan, is going to show us Azure Pipelines in action.
We use Azure DevOps at scale inside of Microsoft
We have been using these core services for years to build many of the products from Microsoft, from Windows to Office to Minecraft.
We do…
over 4m builds each month.
500m tests executed every day
Over 78k deployments every day.
Now Donovan is going to show us how we use Azure DevOps to build Azure DevOps
From Martin: We have been using these core services for years to build many of the products from Microsoft, from Windows to Office to Minecraft. At the moment we do on third of a million code reviews a month using pull requests in Azure Repos. Microsoft deploy OVER 78,000 times A DAY using Azure Pipelines.