Professional Documents
Culture Documents
MicrosoftTraining DevOps
MicrosoftTraining DevOps
FOR USE ONLY AS PART OF MICROSOFT VIRTUAL TRAINING DAYS PROGRAM. THESE MATERIALS ARE NOT AUTHORIZED
FOR DISTRIBUTION, REPRODUCTION OR OTHER USE BY NON-MICROSOFT PARTIES.
Microsoft Azure Virtual
Training Day:
DevOps with GitHub
Getting Started with DevOps
Who is Tailwind Traders?
Experiencing rapid growth
Looking to Implement
• DevOps methodology
• Better communication tools
• Shared tooling
Agenda
What is DevOps?
Eliminating waste
Deliver faster
Operate Deliver
Happier customers
High Performance DevOps Companies
Achieve Developer Velocity by…
208X more 106X faster from commit
frequent deployments to deploy
Faster Increased
time-to-market revenue
DevOps
OPS
DEV
WALL OF CONFUSION
G E T T I N G S T A R T E D W I T H D E V O P S 1 0
Development
Plan 1 2 Develop
Process
Operate 4 3 Deliver
Production
DevOps is about delivering value…
Prioritization Continuous
Improvement
DevOps
G E T T I N G S T A R T E D W I T H D E V O P S 1 2
Source Control
Introduction to Git and GitHub
What is Source Control
and Why do we Need it?
A form of version control
GitHub
G E T T I N G S T A R T E D W I T H D E V O P S 1 4
Components of a Git Project
.gitignore – Commits –
untracked track changes
files to ignore to artifacts
G E T T I N G S T A R T E D W I T H D E V O P S 1 5
What is GitHub?
GitHub is the leader in Git repository
hosting. Some key features of GitHub
Expertise sharing
Cross-team collaboration
Improved code reuse
Codespaces on GitHub
GitHub Actions (CI/CD)
Increased velocity Learn about GitHub
G E T T I N G S T A R T E D W I T H D E V O P S 1 6
Features of a GitHub Project
README.md file – Document your project
G E T T I N G S T A R T E D W I T H D E V O P S 1 7
Demo
GitHub In Action
Using Microsoft
Teams as a
Collaboration Hub
What is Microsoft Teams?
Microsoft Teams is the hub for teamwork.
G E T T I N G S T A R T E D W I T H D E V O P S 2 0
Microsoft Teams Integration via
GitHub Enterprise App
G E T T I N G S T A R T E D W I T H D E V O P S 2 1
Demo
Collaboration with
Teams
Extending
DevOps with
Visual Studio
Code
1
What is Visual Studio Code?
Visual Studio Code is a lightweight and
powerful source code editor.
G E T T I N G S T A R T E D W I T H D E V O P S 2 4
G E T T I N G S T A R T E D W I T H D E V O P S 2 5
Visual Studio Code Marketplace
Thousands of extensions!
G E T T I N G S T A R T E D W I T H D E V O P S 2 6
Extension Example – Live Share
Extension Pack
Share your code and collaborate
Edit
Debug
Audio calls
Chat
G E T T I N G S T A R T E D W I T H D E V O P S 2 7
Demo
Tying it all together
with Visual Studio
Code
Recap
DevOps and
Tailwind Traders
Tailwind
Traders
G E T T I N G S T A R T E D W I T H D E V O P S 3 0
Session
Resources Get Certified
Designing and Implementing
Explore Microsoft Learn Content Microsoft DevOps Solutions
for the AZ-400 Certification
Learn on AZ-400 Certification
Learn about getting started on DevOps
G E T T I N G S T A R T E D W I T H D E V O P S 3 1
DevOps in Azure: Managing the flow of work
Tailwind
Traders
all in on
DevOps OP
DEV
S
DevOps is the union of People, Process,
and Products to enable continuous
delivery of value to our end users.
− Donovan Brown
D E V O P S I N A Z U R E 3 4
Why is DevOps
so Important?
Your competition is already doing this
Increase velocity
Reduced downtime
Faster Increased
time-to-market revenue
DevOps
D E V O P S I N A Z U R E 3 6
Scrum
The Agile: Scrum Framework at a glance
Burndown/up
Inputs from Executives Team, Charts
Stakeholders, Customers, Users
Scrum Master
Daily Scrum
Meeting
Every
24 Hours
Sprint Review
The Team
Product Owner 1-4 Week
Task Sprint
Breakout
Ranked list of what Team selects starting at top
is required: features as much as it can commit Finished Work
stories,… to deliver by end of Sprint
Sprint end date and team
deliverable do not change
Product Backlog Sprint Planning Meeting Sprint Backlog
Sprint Retrospective
General Principles
Product is built incrementally
Quality is
non-negotiable
DATE FEATURES
Move? Reduce?
D E V O P S I N A Z U R E 3 9
Estimates
Never accept an
estimate over 4 hours
Everyone
Maste
r
Development
Branch
Feature Branch A A A
Feature Branch B B B
Your Users
Trunk Based Development
Using trunk based development to avoid merge debt
Topic
Topic
Topic Hotfix
Master
Releases/M129
Releases/M130
How can that
work???
Feature Flags
On
Off
Off
if (flag == true) {
// do new behaviour
}
else {
// do old behaviour
}
A/B Experiments
23%
11%
Done
D E V O P S I N A Z U R E 5 2
Demo
Feature Flags
Maintaining Quality w/Pull Requests
Tests OK
Looks good to me
Pull request
Master branch
Automation
to the
rescue!
Demo
Automation with GitHub Actions
Tailwind
Traders
is now in a
good state
Let’s Recap
D E V O P S I N A Z U R E 5 8
Tailwind
Traders
D E V O P S I N A Z U R E 5 9
Delivering Change to the Cloud
DevOps
Learning Path
Getting Started with DevOps
D E L I V E R I N G C H A N G E T O T H E C L O U D 6 1
Goals for
this Session
D E L I V E R I N G C H A N G E T O T H E C L O U D 6 2
Tailwind Traders
DevOps Accelerates Delivery
Plan Develop
Operate Deliver
CI and CD
Continuous Integration
Continuous Delivery
Continuous Deployment
Continuous Your changes work with everyone else’s changes
Integration
Delivery
Deployment
Continuous Delivery –
Automates delivery. New build artifact is available, artifact is deployed.
Continuous Deployment –
From when you commit and check in code to production, everything is
automated
Protip
Always have
Continuous Deployment to
somewhere.
Automation for any software Dozens of events that can trigger Continuous Integration and
workflow workflows Continuous Delivery
Demo
GitHub Actions – CI / CD
Protecting
Production
We might not want every change to
go to Production
Pull Request
Workflows
trunk/main
trunk/main
trunk/main
trunk/main
GitHub Actions
Azure App Service
Deployment Slots
Staging Production
Deployment Slots
Staging Production
0% 100%
D E L I V E R I N G C H A N G E T O T H E C L O U D 8 3
Deployment Slots
Staging Production
100% 0%
D E L I V E R I N G C H A N G E T O T H E C L O U D 8 4
Deployment Slots
Staging Production
10% 90%
Demo
CI / CD with pre-production and UAT
environments
Handling Keys
and Credentials
Keeping secrets secret
GitHub Secrets
D E L I V E R I N G C H A N G E T O T H E C L O U D 8 8
GitHub Secrets
D E L I V E R I N G C H A N G E T O T H E C L O U D 8 9
Azure Key Vault
B U I L D I N G I N Q U A L I T Y 9 5
Goals for
this Session
B U I L D I N G I N Q U A L I T Y 9 6
Tailwind
Traders
Website
B U I L D I N G I N Q U A L I T Y 9 7
Tailwind
Traders
Website ASP.NET Core + React
Docker container on
Azure App Service
B U I L D I N G I N Q U A L I T Y 9 8
Quality
What Tailwind
Traders Needs
Confidence
Security
B U I L D I N G I N Q U A L I T Y 9 9
Tailwind
Traders ASP.NET Core + React
Microservices with
Website backend APIs and Web
Frontend
B U I L D I N G I N Q U A L I T Y 1 0 0
Security and
Vulnerability
Management
B U I L D I N G I N Q U A L I T Y 1 0 1
Security and Vulnerability Management
B U I L D I N G I N Q U A L I T Y 1 0 2
Security and Vulnerability
Management
B U I L D I N G I N Q U A L I T Y 1 0 3
EMBEDED SECURITY IN THE DEVELOPER W ORKFLOW
PRE-COMMIT
COMMIT (CI)
• Threat modeling
• Static code analysis
• IDE security plug-in
• Security unit tests
• Pre-commit hooks
• Dependency management
• Secure coding standards
• Credential scanning
• Peer review
CodeQL
• World’s most advanced code analysis
• Vulnerability hunting tool
• Community of top security experts
B U I L D I N G I N Q U A L I T Y 1 0 5
Vulnerability Management
Over 62 million
security alerts sent
across GitHub.
B U I L D I N G I N Q U A L I T Y 1 0 6
Code Scanning
Find and fix vulnerabilities fast
Find and fix vulnerabilities before they are
merged into the code base with automated
CodeQL scans
B U I L D I N G I N Q U A L I T Y 1 0 7
Secret Scanning
B U I L D I N G I N Q U A L I T Y 1 0 8
Tailwind
Traders
Website
B U I L D I N G I N Q U A L I T Y 1 0 9
GitHub Security
Code Scanning
Find and fix vulnerabilities before they are
merged into the code base with automated
CodeQL scans
Scan containers
Scan for common vulnerabilities in Docker images
before pushing them to a container registry or
deploying them to a containerized web app or
Kubernetes cluster
D E V S E C O P S B D M 1 1 0
Demo
Azure Security and GitHub
Advanced Security
B U I L D I N G I N Q U A L I T Y 1 1 1
Container
Security
B U I L D I N G I N Q U A L I T Y 1 1 2
Kubernetes Architecture
Self-managed main node(s)
Agent Pool
Docker Docker Docker Docker Docker
B U I L D I N G I N Q U A L I T Y 1 1 3
Kubernetes Architecture
Self-managed
Azure managedmain node(s)
control plane
Agent Pool
Docker Docker Docker Docker Docker
B U I L D I N G I N Q U A L I T Y 1 1 4
Refresher on container layers
Container Layer Read/Write
91e49dfb1179
d7b1189bf667
c220123c8472
Image Layers
d31af33eb855
Read Only
a7183fb762a8
f61792ba8979
From: Alpine:3.8
B U I L D I N G I N Q U A L I T Y 1 1 5
Demo
Building Secure Containers
End-to-end, code-to-cloud DevOps
B U I L D I N G I N Q U A L I T Y 1 1 7
HARDENING DEVOPS INFRASTRUCTURE
GitHub
Code Collaborate
Develop Automate
Secure Community
Quality
B U I L D I N G I N Q U A L I T Y 1 1 9
Demo
Gaining DevOps Confidence
Bridge to Kubernetes
Simplifies microservice development
Eliminates the need to manually source,
configure, and compile external dependencies
Streamlines application
development
Sidestep operational complexities of building
and deploying code into the cluster to test and
debug
B U I L D I N G I N Q U A L I T Y 1 2 1
B U I L D I N G I N Q U A L I T Y 1 2 2
Developer Workstation
B U I L D I N G I N Q U A L I T Y 1 2 3
GitHub Actions
Automate
Customizable
B U I L D I N G I N Q U A L I T Y 1 2 4
What did we learn?
Code Scanning and
Dependency Alerts
B U I L D I N G I N Q U A L I T Y 1 2 5
Invent with purpose.
Operating Software in the Cloud
Welcome to the
Tailwind Team
Agenda
Operate Deliver
High performance DevOps Companies
Achieve Developer Velocity by…
208X more 106X faster from commit
frequent deployments to deploy
Faster Increased
time-to-market revenue
DevOps
D E V O P S I N A Z U R E 1 3 3
People
OPS
DEV
WALL OF CONFUSION
D E V O P S I N A Z U R E 1 3 4
Development
Plan 1 2 Develop
Process
Operate 4 3 Deliver
Production
D E V O P S I N A Z U R E 1 3 5
Understanding
Application
Behavior in
Production
Improve Time to
Detect
Systems
Enable Validated Learning
D E V O P S I N A Z U R E 1 3 7
Sources of Monitoring Data
Defining
Over what time
Effective period?
Monitoring
Who needs to know?
D E V O P S I N A Z U R E 1 3 9
Demo
From Instrumentation to Alerting
Responsible
Incident
Response
API calls are failing!
D E V O P S I N A Z U R E 1 4 2
Establishing a Basic Designated
Responsible Individual Rotation
Create a shared DRI Schedule
O P E R A T I N G S O F T W A R E I N T H E C L O U D 1 4 9
Reducing Manual Intervention
in Production
Move manual, repetitive tasks to automation
O P E R A T I N G S O F T W A R E I N T H E C L O U D 1 5 4