September 09, 2012 15:00
This talk is part story, part code, and part mustache.
Travis CI is a distributed continuous integration system running over 7,000 tests daily. For us to get a true insight into what is going on behind the scenes we have had to come a long way by integrating and building both tools and libraries so that Travis and its many parts are not just a black box of information.
Reading logs and using NewRelic is not new, but far from enough, especially when it comes to apps which are composed of many smaller apps, like Travis. How do you track and visualize requests being processed by multiple services? How do you silence verbose logs while not losing the core of the message? And how do you aggregate, visualize and share metrics?
A lot of how we track, manage, and visualize what is going on in Travis has been created as a set of internal tools and by using a range of awesome services, but core to a lot of this is ActiveSupport Notifications and Travis Instrumentation.
This session will give insight to how Travis is composed and connected, as well as shedding light on how simple it can be to gain more visibility into even a complex, distributed system like Travis, as well as your applications too.
Josh is a top 30 Ruby on Rails contributor and has been working with the framework since 2008. He maintains a bunch of open-source Ruby projects, including multijson, linkedin, faradaymiddleware and his own completeness-fu. He's also one of Amsterdam.rb's organizers, and an integral part of the core Travis-CI team.