“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 Chef recipes or Puppet manifests 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 infrastructure management code. 

 
 

Outline/Structure of the Talk

-       Test Driven Infrastructure: why, when and how?

-       Various testing strategies: Unit testing, BDD, a/c testing, semantic monitoring

-       QAing infra stories

-       Demo of a working example that depicts testing, CI and CD for Infrastructure scripts

 

Learning Outcome

-       Understand the nuances of TDI, the value it adds

-       Explore some tests for their infrastructure scripts

Target Audience

Architects, Project Managers, QA-managers, Developers, Devops, QA, Testers

Slides


schedule Submitted 6 years ago

Public Feedback


    • Sneha Kadam
      Sneha Kadam
      Business Analyst
      ThoughtWorks
      schedule 6 years ago
      Sold Out!
      60 Mins
      Workshop
      Intermediate

      After revolutionizing the automobile industry, Lean principles have been successfully applied to different knowledge areas including software development. This workshop is intended to master Lean concepts like Waste, Push&Pull systems, systems thinking, Kaizen etc. & practicing cross-functional collaboration, self-organisation and safe-fail experimentation! In this interactive game, the participants will work in a small production lines, experiencing problems and applying Lean practices to overcome them.

    • Priti Biyani
      Priti Biyani
      Consultant
      ThoughtWorks
      schedule 6 years ago
      Sold Out!
      20 Mins
      Talk
      Intermediate

      We do have test pyramid in our project to gain confidence on the code we will be delivering. We have also smoke tests, which will give us quick feedback. Still I'm saying Automate all the things!

      What??

      Well, yes! In agile world, there is a theme of ruthless automation. But in my opinion, we don’t push this principle nearly enough.

       

      In this talk, I will share some of my expereinces and some interesting things which we never thought we could automate. Yes, We can automate everything!

    • sailee
      keyboard_arrow_down

      sailee / Radhakrishnan - UI Automation : Safety Net to Trap Net!!

      45 Mins
      Talk
      Intermediate

      At the BEGINNING Of the project: Yay!! Lets automate and cover all test scenarios!! Lets work towards increasing the test coverage !!smile

      After 1 year: Regression suite is too bulky!! I can't maintain it anymore!! Its too flaky!! frown

      Does this conversation ring a bell? Well, this is a common scenario in projects. The UI test automation starts as a saftey net and then becomes a trap net! 

      Heavy Functional tests layer → Long execution time → Low confidence → Problem of Maintainence

       

      This talk will address these problems in an Agile project. Some solutions that worked in our team. How working as a Team would help prevent these problem?

       

    help