Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Configuration management and Kubernetes

36 views

Published on

My slides from #UWDC 2018

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Configuration management and Kubernetes

  1. 1. K8s and CM Alex Chistyakov, an engineer
  2. 2. Outline - A brief discussion on retarded animals like these / - Tragical events of my life - Random jokes - A state of the industry 2
  3. 3. DevOps engineering is magic - Any DevOps engineers on that conference? 3
  4. 4. DevOps engineering is magic - BTW WTF is DevOps? 4
  5. 5. Evolution - BTW WTF is DevOps? 5
  6. 6. CM was good - Please start crying if you are a Chef expert 6
  7. 7. CM was good - Please start crying if you are a Chef expert - If you are a Puppet expert, what are you doing here? 7
  8. 8. CM was good - Please start crying if you are a Chef expert - If you are a Puppet expert, what are you doing here? - You should be extinct 8
  9. 9. Ansible was good - I’ve been using Ansible past four years 9
  10. 10. Ansible was good - I’ve been using Ansible past four years - Earned enough money to get a personal shrink 10
  11. 11. Ansible was good - I’ve been using Ansible past four years - Earned enough money to get a personal shrink - Authored and co-authored 200+ publicly available Ansible roles in various repos 11
  12. 12. Ansible was never good - How come, Red Hat Inc.? 12
  13. 13. Ansible was never good - How come, Red Hat Inc.? - 6 years since initial release 13
  14. 14. Ansible was never good - How come, Red Hat Inc.? - 6 years since initial release - And still no decent Linux firewall configuration module? 14
  15. 15. I need an escape plan - Let’s write our own Ansible! 15
  16. 16. I need an escape plan - Let’s write our own Ansible! - Or maybe just fix an existing one 16
  17. 17. Breakdown and milestones - Develop a firewall configuration module for Ansible finally 17
  18. 18. Breakdown and milestones - Develop a firewall configuration module for Ansible finally - Rewrite Ansible in Haskell 18
  19. 19. Breakdown and milestones - Develop a firewall configuration module for Ansible finally - Rewrite Ansible in Kotlin 19
  20. 20. Breakdown and milestones - Develop a firewall configuration module for Ansible finally - Rewrite Ansible in Scala/Native 20
  21. 21. Breakdown and milestones - Develop a firewall configuration module for Ansible finally - Rewrite Ansible in Racket 21
  22. 22. Breakdown and milestones - Develop a firewall configuration module for Ansible finally - Rewrite Ansible in Rust (QUIA POSSUMUS!) 22
  23. 23. I’m agile - Rewriting Ansible in any language is like this: 23
  24. 24. Let’s collect some requirements - We need a way to describe a desired state declaratively 24
  25. 25. Let’s collect some requirements - We need a way to describe a desired state declaratively - … and safely! (so, static typing or a linter) 25
  26. 26. Let’s collect some requirements - We need a way to describe a desired state declaratively - … and safely! (so, static typing or a linter) - We need a way to enforce the desired state 26
  27. 27. Let’s collect some requirements - We need a way to describe a desired state declaratively - … and safely! (so, static typing or a linter) - We need a way to enforce the desired state - Ansible, really? Are you kidding? 27
  28. 28. OK, but the firewall is still there - Writing an Ansible module seems to be simple 28
  29. 29. OK, but the firewall is still there - Writing an Ansible module seems to be simple - Except when it’s not 29
  30. 30. OK, but the firewall is still there - Writing an Ansible module seems to be simple - Except when it’s not - The desired state should be clearly defined (how?) 30
  31. 31. OK, but the firewall is still there - Writing an Ansible module seems to be simple - Except when it’s not - The desired state should be clearly defined (how?) - The desired state should be enforced unambiguously 31
  32. 32. We need a plan again - A desired state is just a complex data structure expressed in YAML 32
  33. 33. We need a plan again - A desired state is just a complex data structure expressed in YAML - Or a program in a Ruby eDSL 33
  34. 34. We need a plan again - A desired state is just a complex data structure expressed in YAML - Or a program in a Ruby eDSL 34
  35. 35. What is Docker? - An infrastructure company without a decent monetization strategy 35
  36. 36. What is Docker? - An infrastructure company without a decent monetization strategy - Will be shut down or sold next year, I hope 36
  37. 37. What is Docker? - A piece of software written not in Python 37
  38. 38. What is Docker? - A piece of software written not in Python - So, is better than OpenStack anyway 38
  39. 39. What is Docker? - A piece of software written not in Python - So, is better than OpenStack anyway - Will be properly modularized and largely rewritten in Rust, I hope 39
  40. 40. Why is Docker still relevant? - Because of Kubernetes! 40
  41. 41. What is Kubernetes? - A container orchestration tool 41
  42. 42. What is Kubernetes? - A container orchestration tool - (The last survived one) 42
  43. 43. What is Kubernetes? - A container orchestration tool - (The last survived one) - http://smartenesse.sirotin.eu/anna-karenina-principle-i n-software-engineering 43
  44. 44. What is Kubernetes? - A container orchestration tool - (The last survived one) - http://smartenesse.sirotin.eu/anna-karenina-principle-i n-software-engineering - A modern operating system (to some degree) 44
  45. 45. Modern container orchestrator - Should have a working network layer 45
  46. 46. Modern container orchestrator - Should have a working network layer - Should describe environments declaratively 46
  47. 47. Kubernetes - Pluggable network providers - YAML for configs 47
  48. 48. What is Helm? - A package manager for Kubernetes 48
  49. 49. What is Helm? - A package manager for Kubernetes - A CM tool 49
  50. 50. What is Helm? - A package manager for Kubernetes - A CM tool - A template engine (oh noes!) 50
  51. 51. What is Helm? - A package manager for Kubernetes - A CM tool - A template engine (oh noes!) - Written by Lisp lovers 51
  52. 52. What is Helm? - A package manager for Kubernetes - A CM tool - A template engine (oh noes!) - Written by Lisp lovers - A de facto standard in K8s world 52
  53. 53. Alternatives - “kubectl apply -f” (should be parameterized externally) - https://github.com/fkorotkov/k8s-kotlin-dsl - https://ksonnet.io - https://gitkube.sh - https://draft.sh 53
  54. 54. Helm has an m-healthy community - https://kubeapps.com - a public repo of K8s-ized apps - Charts repo on Github: https://github.com/kubernetes/charts 54
  55. 55. Conclusions - Helm is a better Ansible (maybe not Ansible at all, but better) - My personal shrink will be able to buy some more real estate property soon 55
  56. 56. Questions? - alexclear@gmail.com - Skype, Telegram: demeliorator - A Telegram channel (dormant): http://t.me/lhommequipleure 56

×