DevOps and the Chocolate Factory: A Beginner's Guide to Automating, Testing, and Making Clients Happy
You are the proud owner of a chocolate shop. You have a good reputation and based on that you get an order for 1000 truffles, half with nuts and half without. You work hard and proudly deliver your finest batch yet.
But the customer is unhappy.
Why? First, most of chocolate melted when it arrived. You didn't know that they were selling the cholocates on the beach! Second, the customer expected walnuts, not almonds. You didn't have a process to gather their requirements and validate against them. Thirdly, all of the truffles were different sizes and shapes. How do you achieve consistent results?
Thankfully for us, the client is willing to give you another chance. This time, we are going to do better with some knowledge of devops, testing, and automation.
Using this chocolate factory analogy, I will walk through basic principles of devops: building in an environment that matches production, properly gathering requirements and running acceptance tests, and thinking about building your system in such a way that you don’t deliver just chocolate, you deliver a chocolate factory.
If you have been faking an understanding of concepts around testing, building infrastructure, and deploying and/or sidestepping implementation details of how to apply these concepts, we will rectify this at last in a fun, engaging, and memorable way. We will make sense of this “continuous integration” tool chain that seems to so excite folks at Drupal Camps and get you excited too.
Leave with a knowledge of what all of these things are:
- continuous integration/delivery/deployment
- configuration management (Vagrant/Ansible/Chef/puppet/scripts)
- Behavior Driven Development and Test Driven Development
- Testing frameworks (Behat/a11y/wraith/phpspec/phpunit)
- Automation frameworks (circleci/travis/jenkins)
Leave with first steps to implementing a workflow that includes:
- An environment configured with Ansible.
- A local environment configured with Vagrant.
- A behavior driven system testing framework with Behat.
- Automated testing and deployment with CircleCI.
Whether you are a seasoned developer who hasn’t quite gotten around to implementing a sane, CI workflow, or all of this is completely new, you will leave with something that can immediately make your work better.