Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Configuration management for future operating systems

Configuration management for future operating systems

Talk given at the New Directions in Operating Systems conference. A run through some of the history of configuration management as a discipline, on to future trends in infrastructure management and finally examples of using Puppet to manage high level or at-a-distance resources.

98234c645fe8c935edc0fec0186d28b8?s=128

Gareth Rushgrove

November 25, 2014
Tweet

Transcript

  1. Configuration Management Puppet Labs Gareth Rushgrove For future infrastructure

  2. @garethr

  3. Gareth Rushgrove

  4. Gareth Rushgrove

  5. What is configuration management?

  6. Any input to your infrastructure is configuration Gareth Rushgrove

  7. Configuration management is about managing all of those inputs over

    time Gareth Rushgrove
  8. Configuration management is about managing all of those inputs over

    time Gareth Rushgrove
  9. This talk

  10. A little history Gareth Rushgrove

  11. Emerging patterns Gareth Rushgrove

  12. Immutable infrastructure Infrastructure APIs Autonomous systems Simpler hosts Gareth Rushgrove

  13. Immutable infrastructure Infrastructure APIs Autonomous systems Simpler hosts Gareth Rushgrove

  14. Immutable infrastructure Infrastructure APIs Autonomous systems Simpler hosts Gareth Rushgrove

  15. Immutable infrastructure Infrastructure APIs Autonomous systems Simpler hosts Gareth Rushgrove

  16. Future infrastructure as code Gareth Rushgrove

  17. A little history

  18. 1950s research, 1960s 480 series, 1991 MIL- HDBK-61, 1998 ANSI-

    EIA-649 Gareth Rushgrove
  19. Military Handbook Configuration Management Guidance MIL-HDBK-61B Gareth Rushgrove

  20. Identification Control Status accounting Verification and audit Gareth Rushgrove

  21. National Consensus Standard for Configuration Management EIA-649 Gareth Rushgrove

  22. Configuration management verifies that a system is identified and documented

    in sufficient detail Gareth Rushgrove
  23. Configuration management verifies that a system performs as intended Gareth

    Rushgrove
  24. Service management, ITIL, ISO 20000 Gareth Rushgrove

  25. Infrastructure as code Gareth Rushgrove

  26. Gareth Rushgrove

  27. Immutable infrastructure

  28. Build once, run many times Gareth Rushgrove

  29. Amazon Machine Images Gareth Rushgrove

  30. End-to-end automation to avoid the golden image problem Gareth Rushgrove

  31. Gareth Rushgrove

  32. Containers Gareth Rushgrove

  33. Gareth Rushgrove

  34. Docker as the user interface Gareth Rushgrove

  35. How immutable are your docker containers? Gareth Rushgrove

  36. Infrastructure with APIs

  37. Infrastructure as a service Gareth Rushgrove

  38. Gareth Rushgrove

  39. Gareth Rushgrove

  40. Gareth Rushgrove

  41. Platform as a service Gareth Rushgrove

  42. Gareth Rushgrove

  43. Gareth Rushgrove

  44. Gareth Rushgrove

  45. OSv Gareth Rushgrove

  46. Gareth Rushgrove

  47. Not just compute, but network and storage too Gareth Rushgrove

  48. Gareth Rushgrove

  49. Not just *nix Gareth Rushgrove

  50. Gareth Rushgrove

  51. Configuration at a distance Gareth Rushgrove

  52. Configuring autonomous systems

  53. We’re increasingly managing higher level systems Gareth Rushgrove

  54. If servers are cattle not pets, we need to talk

    about fields and farms Gareth Rushgrove
  55. Autoscaling groups Gareth Rushgrove

  56. Gareth Rushgrove

  57. Gareth Rushgrove

  58. Simpler hosts

  59. Combinatorial package explosion Gareth Rushgrove

  60. Gareth Rushgrove

  61. Gareth Rushgrove OSTree

  62. Gareth Rushgrove

  63. Gareth Rushgrove

  64. Gareth Rushgrove

  65. CoreOS is a firmware for running containers Gareth Rushgrove John

    Vincent - http://blog.lusis.org/blog/2014/11/21/a-few-things/
  66. Moving configuration from hosts to the network Gareth Rushgrove

  67. Etcd, Consul, Zookeeper Gareth Rushgrove

  68. Future infrastructure as code

  69. From: Host centric Localised Executable for integration Gareth Rushgrove

  70. To: Cluster centric Distributed HTTP for integration Gareth Rushgrove

  71. Going from Puppet to etcd Gareth Rushgrove

  72. Gareth Rushgrove

  73. Where similar interfaces exist we can provide abstractions Gareth Rushgrove

  74. Gareth Rushgrove

  75. Gareth Rushgrove garethr/key_value_config

  76. Going from etcd to Puppet with Hiera Gareth Rushgrove

  77. Gareth Rushgrove

  78. Gareth Rushgrove garethr/hiera-etcd

  79. Installing systems Gareth Rushgrove

  80. Gareth Rushgrove

  81. Gareth Rushgrove

  82. More interestingly, using systems via APIs Gareth Rushgrove

  83. Gareth Rushgrove

  84. garethr/garethr-docker Gareth Rushgrove

  85. Gareth Rushgrove

  86. Gareth Rushgrove

  87. puppetlabs/puppetlabs-aws Gareth Rushgrove

  88. Gareth Rushgrove

  89. garethr/digitalocean Gareth Rushgrove

  90. Gareth Rushgrove

  91. Gareth Rushgrove I want a pony

  92. Managing an autoscaling CoreOS/Atomic cluster in AWS… Gareth Rushgrove

  93. …with configuration in etcd/consul… Gareth Rushgrove

  94. …with the network in VPC /Weave… Gareth Rushgrove

  95. …with docker containers arranged by Kubernetes… Gareth Rushgrove

  96. All from the Puppet DSL Gareth Rushgrove

  97. Conclusions

  98. The future is already here — it's just not very

    evenly distributed. Gareth Rushgrove William Gibson
  99. Manage. Not just provision Gareth Rushgrove

  100. Gareth Rushgrove

  101. Questions? And thanks for listening