DevOps, Kuberenetes, Helm and Draft Azure Montevideo Meetup
1. 1S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Kubernetes, Helm
Jessica Deen| Senior Cloud
Advocate
And DevOps
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 45
minutes…
3. 3S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
I n t e n t- [ ] -
This session was
specifically
designed to…
Get you
thinking
Get you
excited
Show you
what’s
possible
Offer
resources to
learn more
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- [ ] -
D e v e l o p e r D e v e l o p e r D e v e l o p e r
9. 9S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
O p e r a t i o n s O p e r a t i o n s O p e r a t i o n s
10. 10S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
IT Stress Points
L E V E L S E T- [ ] -
Security InnovationEfficiency
11. 11S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
- Donovan Brown
What is DevOps?
D e f i n i t i o n- [ ] -
12. 12S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Why Containers?
C o m i n g t o g e t h e r- [ ] -
Developers
Enable ‘write-once, run-
anywhere’ apps
Enables microservice
architectures
Operations
Portability
Standardization
Abstraction
Higher compute density
Scale
DevOps
13. 13S 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- [ ] -
14. 14S 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- [ ] -
15. 15S 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- [ ] -
16. 16S 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. 17S 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
18. 18S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Refresher on
container layers
C o m i n g t o g e t h e r- [ ] -
From: Alpine:3.8
f61792ba8979
a7183fb762a8
d31af33eb855
c220123c8472
d7b1189bf667
91e49dfb1179
Container Layer Read / Write
Image layers
Read only
19. 19S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
The Container
Advantage
B e n e f i t s- [ ] -
Fast
iteration
Agile
delivery
Immutability Cost
savings
Elastic
bursting
Efficient
deployment
For ITFor
developers
20. 20S 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- [ ] -
21. 21S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
21
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
22. 22S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
22
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
23. 23S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
23
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
24. 24S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
25. 25S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
26. 26S 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 is hard.
Kubernetes is
complex.
Let’s simplify.
27. 27S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
R e l e a s e A u t o m a t i o n- [ ] -
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
The best way to find, share, and use software
built for Kubernetes
28. 28S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
R e l e a s e A u t o m a t i o n- [ ] -
Helm charts help you define,
install, and simplify
custom
services
Chart.yml
db
load balancer
ci
…
29. 29S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Release
Automatio
n
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
30. 30S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
R e l e a s e A u t o m a t i o n- [ ] -
Simple app development and
deployment into any Kubernetes
cluster
Simplified development
Using two simple commands,
developers can now begin
hacking on container-based
applications without requiring
Docker or even installing
Kubernetes themselves
Language support
Draft detects which language
your app is written in, and then
uses packs to generate a
Dockerfile and Helm Chart with
the best practices for that
language
31. 31S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
F U N T I M E
DEMO
32. 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- [ ] -
K.I.SS
Keep It Super
Simple
33. 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- [ ] -
“The steps you take don't have to be big,
they just have to take you in the right
direction.” // Jemma Simmons
34. 34S 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- [ ] -
35. 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- [ ] -
Kubernetes Best
Practices
Build small
containers
- Multistage builds
Application
architecture
- Use Namespaces
- Helm charts
- RBAC
Implement health
checks
- Liveness / Readiness
Probes
36. 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- [ ] -
Kubernetes Best
Practices
Set requests
and limits
Be mindful of
your services
- Map external
services
- Don’t rely on
load balancers
37. 37S 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
38. 38S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
aka.ms/jldeen/azuremontevid
eo
SEARCH
39. 39S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
THANK YOU
Editor's Notes
Kubernetes is a series of reconciliation loops that are constantly trying to reconcile the actual state toward the desired state specified by the declarative API
Kubernetes has a series of control plane components that run on the agents and the master nodes
Kubelet – Responsible for pulling, running and monitoring images scheduled to it
Container Runtime – Docker, application that actually runs the container (called by kubelet)
Kube-Proxy – This makes service object real and routable by containers in the cluster
Etcd – Distributed database that stores all the Kubernetes data and leverages extensively by the control plane to monitor and save state
API Server – All components of the control plane, and tooling ran (kubectl) communicate with the API Server. Which fetches or writes the data to etcd.
Controller Manager – Runs many reconciliation loops to ensure that API objects are reconciled (ReplicationController, Node Status, etc)
Cloud Controller Manager – Reconciles API objects with a cloud provider (Service types of Load Balancer, Storage, etc)