Configuration Management 101

Ea72b50eef37ebe730c37d96c5b5dd51?s=47 someara
February 04, 2014

Configuration Management 101

Given at FOSDEM 2014

Ea72b50eef37ebe730c37d96c5b5dd51?s=128

someara

February 04, 2014
Tweet

Transcript

  1. 5.
  2. 6.
  3. 8.

    • What is configuration management?! • Strategies and techniques for

    managing configuration and its complexity! • The art of change management
  4. 10.

    • Intuitive! • How we all start out! • Log

    into machine, manipulate with fingers! • Make with the clicky clicky! • Long tradition
  5. 11.

    • Somehow feels the “safest"! • First instinct in emergencies!

    • This is an illusion! • Do not do this
  6. 13.
  7. 16.

    • Ad-hoc in nature! • Loss of history! • Lacks

    testing methodology! • A step in the right direction
  8. 20.

    •Distributed systems! •Shares often managed manually or with scripts! •Package

    repositories! •Pull is better than push! •Scp on a cron *
  9. 23.

    • SSH on a for loop! • Func! • Commands

    on message queues! • ISConf
  10. 26.
  11. 27.
  12. 29.
  13. 30.
  14. 33.

    • user ‘kermit’ should exist! • user ‘fonzi’ should exist!

    • group ‘muppets’ should exist! • group ‘muppets’ should contain kermit and fonzi
  15. 34.

    • package ‘ntpd’ should be installed! • ntpd should sync

    with our AD service! • service ‘ntpd’ should be running
  16. 35.

    • package ‘httpd’ should be installed! • httpd should be

    expose /mnt/software/java! • service ‘httpd’ should be running
  17. 36.

    • The Java JDK, version 7u45, found on an internally

    hosted web server, should be installed into /usr/local/jdk-7u45/
  18. 45.
  19. 46.
  20. 48.
  21. 50.
  22. 54.
  23. 55.
  24. 56.

    ! A control loop keeps the system stable and allows

    for change when policy is updated
  25. 59.
  26. 60.
  27. 61.
  28. 64.
  29. 65.
  30. 66.
  31. 67.
  32. 68.
  33. 69.
  34. 70.
  35. 71.
  36. 72.
  37. 73.
  38. 74.
  39. 75.
  40. 76.
  41. 78.
  42. 79.
  43. 80.
  44. 81.
  45. 82.
  46. 83.
  47. 85.

    YES

  48. 86.
  49. 88.

    • Agents are autonomous! • A promise is a signal

    or message perceived by an observer.! • Promises may or may not be kept.! • Agents can observe other agents! • Agents only have local information *! • Inner workings of agents are assumed to be unknown http://markburgess.org/BookOfPromises.pdf
  50. 89.

    • Agents have intentions (possible behaviors)! • Agents can make

    assessments about other agents http://markburgess.org/BookOfPromises.pdf
  51. 94.
  52. 96.
  53. 98.
  54. 99.
  55. 102.
  56. 104.
  57. 106.
  58. 108.
  59. 109.
  60. 111.
  61. 112.
  62. 118.
  63. 119.
  64. 121.
  65. 123.
  66. 126.
  67. 127.
  68. 128.
  69. 129.
  70. 130.
  71. 132.
  72. 137.

    • Push vs Pull! • Networking considerations! • Machines down

    for maintenance! • Machines that don’t exist yet
  73. 139.
  74. 140.
  75. 141.
  76. 142.
  77. 143.
  78. 144.
  79. 148.

    • lsof -i :80! • ps -ef | grep httpd!

    • curl localhost 2>&1 > /dev/null
  80. 152.
  81. 153.
  82. 154.

    • Environments can be used to test branches! • Environments

    can be used to segregate machines! • Environments can be manipulated programatically
  83. 155.
  84. 156.
  85. 160.
  86. 182.

    • Take a machine out of the pool! • Drain

    the connections! • Modify configuration! • Insert it back into the pool
  87. 194.

    • Conductor showing signals to autonomous agents (creative policy manipulation)!

    • External actor controlling sequencing (execution management)! • Application level sequencing (vector clocks, etc)
  88. 195.
  89. 196.

    • There is no separation between ‘infrastructure’ and ‘application’! •

    Distributed systems are hard! • Specialists need to work together
  90. 197.
  91. 198.

    • Study Promise Theory! • Study distributed systems! • Develop

    high quality primitives! • Be excellent to each other
  92. 199.

    Fin