7. S c a r y YAML files
A unique simple file
For Only
SOLUTION: CREATE A SIMPLE DEPLOYMENT FILE
met adat a:
busi nessI mpact Level : medi um
ser vi ces:
webser ver :
wor kl oadType: web
endpoi nt :
i nt er nal Por t : 8080
publ i cHost name: mywebapp
access: publ i c- aut h
depl oyment :
r epl i caCount : 4
Tailored to your uses cases
9. ❝ Yann's presentation is insanely awesome !!!!!!!!!! ❞
WE ARE JUST BUILDING A PAAS!
❝ Kubernetes is a platform for building platforms ❞
❝ Kubernetes is an infrastructure framework [...] but far from the
developer productivity you find in a PaaS or FaaS platform ❞
Kelsey
Hightower
Famous Kubernetes
Expert @Google
14. VALIDATE FILES IN DEVELOPER'S IDE ITSELF!
Define your validation rules as a JSON schema
Document how to configure it for your dev's favorite IDE
Supported by
○ Jetbrain IDEs out of the box
○ Visual Code with plugin
○ pretty much all other IDE with plugin
15. Exampl e wi t h Vi sual Code
VALIDATE FILES IN DEVELOPER'S IDE ITSELF!
19. THE RETURN OF THE DEPLOYMENT FILE
Describe all your required services in it!
ser vi ces:
webser ver :
wor kl oadType: web
endpoi nt :
i nt er nal Por t : 8080
publ i cHost name: mywebapp
access: publ i c- aut h
ser vi ces:
webser ver :
wor kl oadType: web
endpoi nt :
i nt er nal Por t : 8080
publ i cHost name: mywebapp
access: publ i c- aut h
managedSer vi ces:
mysql :
my- mysql - dat abase:
ver si on: 8. 0
mongodb:
my- mongo- dat abase:
Ver si on: 4. 2
20. A PRACTICAL IMPLEMENTATION
ser vi ces:
webser ver :
wor kl oadType: web
endpoi nt :
i nt er nal Por t : 8080
publ i cHost name: mywebapp
access: publ i c- aut h
managedSer vi ces:
mysql :
my- mysql - dat abase:
ver si on: 8. 0
mongodb:
my- mongo- dat abase:
Ver si on: 4. 2
Services Subscriptions
Manager
Create secrets
Provision DB
Provision DB
24. DISPLAY CLEAR LINTING ERROR MESSAGES
Anatomy of a clear error message
Exact error localisation
Clear explanation about the cause
Optional hint about how to fix the error
25. SHOW CONTEXTUAL INFORMATION OR LINKS
Developers are a bunch of lazy guys!
So are we !
Don't ask them to find info
you could directly show to them!!!
So
26. EXAMPLE FOR A K8S DEPLOYMENT FAILURE
In case of failure, you can show
Last N lines of application logs
Kubernetes deployment logs
29. PRACTICAL SELF-TROUBLESHOOT-ABLENESS
Make your DevOps source code readable to developers
Always save and expose tracing/debug information
Allow developers to execute shell in their containers
Make your intermediate Kubernetes YAML files available
30. HOW TO EXPORT TRACING/DEBUG INFO?
Export tracing information in a file Exit handler installation
Example of error message for unexpected failure
With
31. HOW TO EXPORT TRACING/DEBUG INFO?
With
And other
languages
Use an error tracking
software like
Example of error message
Example of Sentry issue
32. PRINCIPLES of a Dev-Friendly CI/ CD
SIMPLE INTERFACE
FAIL FAST
SELF-SERVICE
ERROR MESSAGE
TROUBLESHOOT-ABLE
DOCUMENTED