schedule Mar 28th 11:30 AM - 12:30 PM place Esquire Hall

Chef is a popular Infrastructure Automation framework based in Ruby. It comes with a host of testing tools bundled with it like ChefSpec for unit testing, ServerSpec for system testing and TestKitchen for integration testing. This session is a demo of how to use these frameworks to test drive cookbook development.

 
4 favorite thumb_down thumb_up 6 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

1) What is Infrastructure as Code & Why do we need Infrastructure Code - 5 mins

This section would explain the rationale behind Infrastructure as Code

2) Chef Architecture - 5 min
This section will discuss the major components of Chef and discuss how they are connected with each other. Also details how Chef models infrastructure.

3) Understanding Test Pyramid in Infrastructure Code testing - 5 mins
This section gives an understanding of how test pyramid should be for Infrastructure Code testing

4) Write Test Driven MySQL cookbook - 40 mins
Demos an incremental building of mysql cookbook, in the red-green-refactor sequence
a) Write system tests and test that they fail
b) Write recipe to make system tests green
c) Write unit tests to enhance test pyramid
d) Make sure recipe passes
e) Add a platform using test-kitchen and see it fail
d) Refactor recipe to provide a second platform

Note: The above will be a demo of incremental github repos as it is not possible to do it live in the session. This github repo will be shared with the audience.

Questions - 5 mins

Learning Outcome

1) Learn how to write tests for Infrastructure Code
2) Understanding Test Pyramid in Infrastructure Code testing
3) Exposure to Testkitchen, ServerSpec, ChefSpec
4) A working github repo for deploying an open source application that the audience can try later.

Target Audience

Developers, Quality Analysts, Release Engineers

schedule Submitted 2 years ago

Comments Subscribe to Comments

comment Comment on this Proposal
  • Joel Tosi
    By Joel Tosi  ~  2 years ago
    reply Reply

    Hi Sreedevi,

        Roughly half of your session is about what is IaC / what is Chef - I find the most interesting aspects in the actual TDD of the infrastructure.  Would it be possible to shorten the first four points and allow more time / questions during the example of TDD of infrastructure?  What do you think?

    Best,

    Joel

    • Sreedevi Vedula
      By Sreedevi Vedula  ~  2 years ago
      reply Reply

      Hi Joel,

      Sorry for the delay in responding. It is a good suggestion to do so. It would also give me more time for the demo.

      Also, I have earlier presented this in Next Generation Testing Conference in Hyderabad.

      Thanks

      Sreedevi.

  • Doc Norton
    By Doc Norton  ~  2 years ago
    reply Reply

    Wondering if you can make some adjustments to timing to increase the focus on the TDD piece?

    5 min - what is IaC and why do we need it

    5 min - Chef Architecture

    5 min - Test Pyramid

    35 - cookbook

    10 min - Q&A

    • Sreedevi Vedula
      By Sreedevi Vedula  ~  2 years ago
      reply Reply

      Hi Doc,

      Thanks for the suggestion. I could certainly do that.

      Thanks

      Sreedevi

  • Pramod Sadalage
    By Pramod Sadalage  ~  2 years ago
    reply Reply

    Sreedevi,

     

    The outline times and the 90 min workshop you proposed for do not match did you miss something in the proposal. Are you also taking on too much, would you be able to refoucus the demo in such a way as to showcase why ifrastructure as code is important?

     

    Thanks

    Pramod

    • Sreedevi Vedula
      By Sreedevi Vedula  ~  2 years ago
      reply Reply

      Hi Pramod,

      I corrected the session time to 60 mins. Thanks for pointing it.

      This session is about TDD of Infrastructure Code with the example based in Chef. Please see a related slide-deck @http://www.slideshare.net/sreedevivedula/testing-infrastructure-automation and github repo https://github.com/sreedevivedula/tdd-chef-repo.

      I have submitted a separate proposal for Infrastructure Code - http://confengine.com/agile-india-2015/proposal/921/infrastructure-as-code-the-secret-sauce-for-continuous-delivery where I would like to discuss IaC frameworks and concepts in detail. For this session, I added "Why do we need Infrastructure Code" Please find a related slide-deck http://www.slideshare.net/sreedevivedula/brief-intro-to-infrastructure-as-code

      Thanks

      Sreedevi


  • 45 mins
    Talk
    Advanced

    Good engineering practices and fail-fast, iterative, low-ceremony processes help achieve team level agility. They are necessary but not sufficient to scale agility across the IT organization. In this talk, I'll address what else is needed and why. In particular, I'll address:

    1. Why plan-driven IT projects are a bad idea why we need value-driven projects instead
    2. Why a matrix org is a bad idea for IT and why we need cross-functional teams instead
    3. Why IT budgeting needs to change from being project-based to being team-capacity based
  • Liked KK Sure
    keyboard_arrow_down

    KK Sure / Sheril Jebasingh - First Amongst Equals - Can UX be there?

    20 mins
    Case Study
    Intermediate

    Traditionally, in software development, user experience (UX) wasn't valued as much as developing of the software itself. But this has changed rather radically. However, creating an enriching user experience in an agile fashion is still challenging. Most of the agile engineering practices in use are around building software but seldom address UX. When building a product in an agile fashion, UX in an incremental fashion becomes important.

    In this talk, we will present our experience of creating UX in an incremental fashion for a virtual wallet. We will also talk about the different challenges we faced such as, educating various stakeholders on the value of incremental UX, building collaboration between developers and experience designers and abstracting design components, along with the solutions we devised to tackle these challenges.

  • Liked Krishnan Nair
    keyboard_arrow_down

    Krishnan Nair / KK Sure - Process Agility - the nemesis of business agility?

    45 mins
    Talk
    Advanced

    We've come far in our journey of Agile as a software development methodology. From stand-ups to showcases to sprint planning meetings to burn-ups (or downs), we've got it down pat when it comes to processes to follow to be considered Agile. However this heads-down, process defined agile, often hinders real agility required to meet business needs. Is doing a three hour sprint planning meeting every week the most important thing to do when you have to get a minimal-viable-product out in the market? How much of automated functional testing should you do when you know that your product's beta version is only going to validate assumptions of your business idea? Should you write tests at all? There is no formulaic answer.

    In this talk, KK and Krishnan will talk about their experience of how much Agile is too much Agile. We look at how to find the right balance between following agile practices and being responsive to your business. How much agile is too much and how less is too less?

    We will do this by looking at:

    • A couple of successful agile adoption stories
    • Look at why agile was successful in the contexts above
    • Discuss why this success will limit us if we are not careful
    • Talk about a start-up and how the things that led to success in the first 2 stories limited us in the start-up context
    • Look at approaches to understand what agile practices/processes to follow to be business agile
    • Close by summarizing the challenges facing agile (as we see it) and how success in process agility will limit us in business agility
  • Liked Anand Bagmar
    keyboard_arrow_down

    Anand Bagmar - To Deploy or Not-to-Deploy - decide using TTA's Trend & Failure Analysis

    Anand Bagmar
    Anand Bagmar
    Director - Quality
    Vuclip Inc.
    schedule 2 years ago
    Sold Out!
    60 mins
    Demonstration
    Intermediate

    The key objectives of organizations is to provide / derive value from the products / services they offer. To achieve this, they need to be able to deliver their offerings in the quickest time possible, and of good quality!

    In order for these organizations to to understand the quality / health of their products at a quick glance, typically a team of people scramble to collate and collect the information manually needed to get a sense of quality about the products they support. All this is done manually.

    So in the fast moving environment, where CI (Continuous Integration) and CD (Continuous Delivery) are now a necessity and not a luxury, how can teams take decisions if the product is ready to be deployed to the next environment or not?

    Test Automation across all layers of the Test Pyramid is one of the first building blocks to ensure the team gets quick feedback into the health of the product-under-test.

    The next set of questions are:
        •    How can you collate this information in a meaningful fashion to determine - yes, my code is ready to be promoted from one environment to the next?
        •    How can you know if the product is ready to go 'live'?
        •    What is the health of you product portfolio at any point in time?
        •    Can you identify patterns and do quick analysis of the test results to help in root-cause-analysis for issues that have happened over a period of time in making better decisions to better the quality of your product(s)?

    The current set of tools are limited and fail to give the holistic picture of quality and health, across the life-cycle of the products.

    The solution - TTA - Test Trend Analyzer

    TTA is an open source product that becomes the source of information to give you real-time and visual insights into the health of the product portfolio using the Test Automation results, in form of Trends, Comparative Analysis, Failure Analysis and Functional Performance Benchmarking. This allows teams to take decisions on the product deployment to the next level using actual data points, instead of 'gut-feel' based decisions.

  • Liked KK Sure
    keyboard_arrow_down

    KK Sure - Testing in Agile - Antipatterns and Remedies

    45 mins
    Talk
    Intermediate
    When it comes to agile, we all know and practise standups, retrospectives, sprint plannings, showcases etc. Quite a few times, teams end up following these set of rituals and ceremonies without understanding the guiding principles of agile.
     
    In this talk I will present some testing practices that various agile teams employ. Some of these practices are anti-patterns and have the exact opposite effect of what is expected, while others become an anti-pattern sooner or later if not tweaked according to the changing situations.
     
    I will talk about the aspects like "Whose responsibility is Quality?", 'Measuring agile tester's success", "Balance between automation and exploratory testing". Along with each of the anti-pattern, I will present the remedies to fix these anti-patterns.
  • Liked Sreedevi Vedula
    keyboard_arrow_down

    Sreedevi Vedula - Infrastructure As Code - The secret sauce for Continuous Delivery

    Sreedevi Vedula
    Sreedevi Vedula
    Quality Analyst
    ThoughtWorks
    schedule 2 years ago
    Sold Out!
    60 mins
    Demonstration
    Intermediate

    Developing Infrastructure as Code as a practice is increasingly adopted by organizations that want to have Continuous Delivery. Infrastructure As Code requires treating infrastructure as code, applying the same development techniques that one uses to build application software. This talk discusses the need for having infrastructure as code, the several frameworks available in this space (like Puppet, Chef, Ansible), what they bring to the table and the philosophical differences between them and the testing tools and frameworks available to test infrastructure as code. The concepts would be supported by snippets of infrastructure code written for an open source application.

  • Liked Sreedevi Vedula
    keyboard_arrow_down

    Sreedevi Vedula - The Practical Pyramid

    Sreedevi Vedula
    Sreedevi Vedula
    Quality Analyst
    ThoughtWorks
    schedule 2 years ago
    Sold Out!
    20 mins
    Talk
    Intermediate

    An Ideal Test Pyramid is an invaluable technique to succeed with agile. However, it is challenging to have this ideal pyramid in practical projects for several conditions in the projects, like legacy code bases. To have a good test pyramid, several best practices of software development need to be followed. This talk discusses the practices that help in implementing test pyramid and the challenges faced by many teams in doing that and suggestions on how to overcome them.