1. 1S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
DevOps, Waffles
Superheroes - Oh my!
Jessica Deen|Senior Cloud
Advocate
2. 2S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Before we
begin…
Disclaimer
@jldeen- [ ] -# D E E N O F D E V O P S
What to
expect in
the next 60
minutes…
3. 3S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Get you thinking
Show you what’s possible
Get you excited
Offer resources to learn more
This session was designed to
4. 4S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Life runs on code
5. 5S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Source
https://informationisbeautiful.net/visualizations/million-lines-of-code/
Urban traffic control system
5 million lines of code
Artificial pancreas
160K lines of code
Space shuttle
400K lines of code
Luxury car
120 million lines of code
6. 6S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Intelligent vehicle
Smart city
Smart devices
Digital life
Intelligent experiences
Digital factory
Smart home68
Connected retail
8. 8S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Add Docker and Kubernetes Support from
scratch
Automation with Azure DevOps and Codefresh
Deploy our app to Azure Kubernetes
Tips on running deploying Kubernetes in
Production
Goals for this session
9. 12S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
”DevOps is the union of people, process,
and products to enable continuous delivery
of value to our end users.”
- Donovan Brown
What is DevOps?
10. 13S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Why Containers?
Developers
Enable ‘write-once, run-
anywhere’ apps
Enables microservice
architectures
Operations
Portability
Standardization
Abstraction
Higher compute density
Scale
DevOps
11. 14S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
What is
Kubernete
s?
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
12. 15S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
It was designed to simplify
automation.
13. 16S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Release
Automatio
n
Kubernetes is hard.
Kubernetes is
complex.
Let’s simplify more.
14. 17S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Demo – Helm and Draft
15. 18S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
What is a
container
?
N o t a r e a l t h i n g- [ ] -
16. 19S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
N o t a r e a l t h i n g- [ ] -
17. 20S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
N o t a r e a l t h i n g- [ ] -
18. 21S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
N o t a r e a l t h i n g- [ ] -
19. 22S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Virtualization vs.
Containerization
C o m i n g t o g e t h e r- [ ] -
Infrastructure
Host OS
Docker
Bins/L
ibs
Bins/L
ibs
Bins/L
ibs
App A App B App C
Contain
er
Infrastructure
Hypervisor
Bins/L
ibs
App A
Guest
OS
Bins/L
ibs
App B
Guest
OS
Bins/L
ibs
App C
Guest
OS
VM
Infrastructure
Host OS
Hypervisor
Bins/L
ibs
App A
Guest
OS
Bins/L
ibs
App B
Guest
OS
Bins/L
ibs
App C
Guest
OS
VM
20. 24S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Repeatable builds and deployments
Fast startup
Package dependencies with the app
Containers run everywhere
Benefits of using Containers
21. 25S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
API
server
Controlle
r
Manager
Schedule
r
etcd
Cloud
Controller
Self-managed master
node(s)
App/
workload
definitionUser
Agent Pool
Docker
Pods
Docker
Pods
Docker
Pods
Docker
Pods
Docker
Pods
Kubernetes
API
endpoint
Kubernetes Architecture
22. 26S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
API
server
Controlle
r
Manager
Schedule
r
etcd
Cloud
Controlle
r
Self-managed master
node(s)
App/
workload
definitionUser
Agent Pool
Docker
Pods
Docker
Pods
Docker
Pods
Docker
Pods
Docker
Pods
Kubernetes
API
endpoint
Azure managed control plane
Kubernetes Architecture
23. 27S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Demo – Add a dash of DevOps
24. 28S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
What just happened?
Kubernetes Pipeline
Kubernetes Repository
Build
Package
Deploy
25. 29S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
26. 30S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
K.I.SS
Keep It Super
Simple
27. 31S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
“The steps you take don't have to be big,
they just have to take you in the right
direction.” // Jemma Simmons
28. 32S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
What are my main
objectives?
29. 33S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
What are my indicators for
those objectives?
30. 34S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
What will my pipeline
look like?
• Compile
• Build/Push
• Scan
• Deploy to Dev
• Test/Gates/Etc.
• Promote to staging > QA > Prod
• Private Package Feed
• Private Repository
• XRay, Aqua
• CI/CD - Azure Pipelines,
Codefresh, Jenkins,
Travis CI, etc.
• Selenium, WhiteSource
Bolt, etc
• CI/CD - Azure Pipelines,
Codefresh, Jenkins,
Travis CI, etc.
31. 35S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
The foundation is the
same.
32. 36S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
Does this add value, or
does this add unnecessary
complexity?
33. 37S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
I t ’ s j u s t a w a f f l e- [ ] -
34. 38S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Automate
Build, test and deploy with confidence
Customizable
GitHub Actions
35. 39S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Demo – Full CI/CD
36. 40S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
What just happened?
Kubernetes Pipeline
Kubernetes Repository
Build
Package
Deploy
37. 46S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
Kubernetes Best
Practices
Build small
containers
- Multistage builds
Application
architecture
- Use Namespaces
- Helm charts
- RBAC
Implement health
checks
- Liveness / Readiness
Probes
38. 47S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
Kubernetes Best
Practices
Set requests
and limits
Be mindful of
your services
- Map external
services
- Don’t rely on
load balancers
39. 48S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
H e l l o !- [ ] -
I am Jessica Deen
40. 49S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
aka.ms/jldeen/waffleops SEARCH
41. 50S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
THANK YOU
43. - T E C H C O N F E R E N C E -
2 1 f e b r e r o 2 0 2 0
Editor's Notes
This slide the main points that we want to make is that, leading in off the last slide.
The Kubernetes control plane is managed by us as Azure, so the customer does not need to worry about that (so greater reduced complexity to allow your business to concentrate on your application not cluster administration)
The end user is responsible for the Kubernetes worker nodes (This means operational task like OS patching)
This slide the main points that we want to make is that, leading in off the last slide.
The Kubernetes control plane is managed by us as Azure, so the customer does not need to worry about that (so greater reduced complexity to allow your business to concentrate on your application not cluster administration)
The end user is responsible for the Kubernetes worker nodes (This means operational task like OS patching)