Test Driven Development with Ansible
Pooja Salpekar (~pooja-salpekar) |
“When deploying and administering large infrastructures, it is still common to think in terms of individual machines rather than view an entire infrastructure as a combined whole. This standard practice creates many problems, including labor-intensive administration, high cost of ownership, and limited generally-available knowledge or code usable for administering large infrastructures.”— Steve Traugott and Joel Huddleston
Server infrastructure has traditionally lagged far behind our development practices in terms of code quality, testing, continuous integration and continuous development.
When you write your Ansible scripts or any other CM, you are coding, and every code is prone to defects. All of us understand the benefits of test-driving the application code. The same applies to your infrastructure code. Testing becomes even more significant in case of deployments spanning large clusters of nodes.
Test-driving allows the infrastructure teams to have confidence that their configuration changes are being applied as intended across many different systems, and having the intended effect. This allows the whole system to be trusted, and then updated without fear for introducing breaking changes or otherwise causing instability.
The objective is to cover agile lifecycle of infrastructure code and provide a quick demo of how to test drive Ansible scripts.
Link to the first draft of the presentation. https://speakerdeck.com/poojasalpekar/whos-testing-your-infra
Presentation Link: https://speakerdeck.com/poojasalpekar/test-drive-ansible-infrastructure
Pooja Salpekar is an Application Developer at ThoughtWorks. Pooja has been developing software in Ruby on Rails and Python-Django based web-apps throughout her career. She has worked on SMS integrated web apps and USSD based projects in Africa, drove the development of Test Trend Analyzer (a ThoughtWorks product) and was part of the team that worked on load balancing on Cloud Computing environment.
She enjoys mentoring, and has conducted ruby sessions for college students in Uganda, teaching them the basics of Ruby based Web-Development. She has been part of core organizing team of RailsGirls Pune. She has been working and delivering software in agile teams following industry certified practices like Continuous Integration, Continuous Delivery, Test Driven Development and Pair programming. Passionate about writing clean code, Pooja has a penchant for exploring anything new, be it frameworks, development paradigms, technical or non-technical.