Testable Infra: Where Config Mgmt Meets Continuous Integration
If you're running Drupal, you're likely managing a growing stack, including HAProxy, Nginx, Apache, Varnish, Solr, ElasticSearch, MariaDB, Redis, etc. These essential tools are inherently in the critical path of delivering high-quality website experiences, and have hundreds or thousands of different configuration permutations, each one of which might mean the difference between a singing website or a sad trombone.
Version control, testing, and continuous integration are well-known best practices for programmed software; applying these best practices to complicated configurations is a natural extension that can help you have more confidence in your web stack, enabling you to reliably deliver improvements to production deployment. These practices reduce the risk of experimenting with different configuration options, and help you optimize your website for performance and reliability.
We'll go over a few strategies for testing Apache / Nginx / Varnish configurations and some useful tools. We'll cover some universally applicable concepts, techniques for all skill-levels, as well as advanced testing methods. You'll take away something to improve your reliability if you are a first-time sysadmin or a Chef guru. Specifically, we'll go over:
* Behavior-driven testing: mapping system config to user experience
* Avoiding "oops" with automated syntax checking
* Testable Chef with Foodcritic, ChefSpec, and TestKitchen
* CI for CfgMgt: Using CircleCI, Travis or Jenkins to test your configuration
* Testing caches and proxies with a mock webserver
Everyone will leave the session with at least one concrete measure they can use for a more reliable infrastructure, and hopefully some ideas of how to take it much further.