Massively Parallel Testing at MongoDB

*
Accepted Session
Short Form
Intermediate
Scheduled: Wednesday, June 22, 2016 from 3:45 – 4:30pm in B304

Excerpt

When the engineering team at MongoDB pushes a commit, we have to test it on every platform and configuration that we support. This adds up to hundreds of hours of tests for each commit. In order to make this process efficient, we built Evergreen, an in-house continuous integration tool and leveraged new technologies, such as Go and dynamic host allocation, to streamline the process to minutes. This talk will show you how we parallelize our tests and how you can apply these techniques to your next project!

Description

MongoDB has a unique range of test targets. While most organizations only need their code to run on one platform, our database needs to work across a range of architectures and operating systems—and on top of that, we have hours of tests we have to run in order to verify a single build.

To make that possible, we built an open source continuous integration tool that helps our Engineers get feedback at unprecedented scale, running thousands of hours of work in a few hours of human time. The technologies we leveraged in creating this system are not especially complicated, but would not have been possible a few years ago. In this talk, we will explore how Evergreen works by following the path of a testing commit from start to finish, focusing on techniques we’ve learned like:

  • The benefits of using Elastic Computing technologies to dynamically spin up and shut down hosts based on demand, and how to intelligently manage hosts to keep costs down
  • Using statically compiled Go agent binaries to execute tests without worrying about dependency management overheads
  • Allowing exploration and understanding the output of hundreds of tests per commit to be accessible and effective

Engineers at MongoDB have a much more productive workflow that was created by leveraging these techniques, showing us the novel benefits to be gained when you take advantage of the advancements happening in computing.

Tags

Continuous Integration, testing, Elastic Computing, nosql

Speaking experience

Kyle has given talks at the MongoDB World, Ignite Velocity, GopherCon, and GothamGo conferences. He also hosts comedy shows around NYC.

Shraya has spoken at MongoDB World. She has given technical talks at various universities on continuous integration.

Speakers

  • Kyle erf

    Kyle Erf

    MongoDB

    Biography

    In his three years at MongoDB, Kyle has worked on an open-sourced continuous integration system, Evergreen, and on the tools that ship with the MongoDB database. When he’s not hacking away at distributed systems, Kyle performs at comedy shows around New York.

    Sessions

      • Title: Massively Parallel Testing at MongoDB
      • Track: Theory
      • Room: B304
      • Time: 3:454:30pm
      • Excerpt:

        When the engineering team at MongoDB pushes a commit, we have to test it on every platform and configuration that we support. This adds up to hundreds of hours of tests for each commit. In order to make this process efficient, we built Evergreen, an in-house continuous integration tool and leveraged new technologies, such as Go and dynamic host allocation, to streamline the process to minutes. This talk will show you how we parallelize our tests and how you can apply these techniques to your next project!

      • Speakers: Shraya Ramani, Kyle Erf
  • 1911676 2349706505499 901012628 n

    Biography

    Shraya is a Go developer on the Server Tools team at MongoDB. She has worked on the tools that ship with MongoDB and is currently one of two engineers developing and maintaining Evergreen, MongoDB’s open source homegrown, highly distributed continuous integration system. She is currently working on optimizing Evergreen’s task scheduler to ensure that we are making cost-efficient use of hosts while scheduling tasks and providing test feedback as fast as possible. When she is not programming, she enjoys traveling and practicing yoga.

    Sessions

      • Title: Massively Parallel Testing at MongoDB
      • Track: Theory
      • Room: B304
      • Time: 3:454:30pm
      • Excerpt:

        When the engineering team at MongoDB pushes a commit, we have to test it on every platform and configuration that we support. This adds up to hundreds of hours of tests for each commit. In order to make this process efficient, we built Evergreen, an in-house continuous integration tool and leveraged new technologies, such as Go and dynamic host allocation, to streamline the process to minutes. This talk will show you how we parallelize our tests and how you can apply these techniques to your next project!

      • Speakers: Shraya Ramani, Kyle Erf

Leave a private comment to organizers about this proposal