Jonathan Lindo on Agile Architecture, DevOps, and Patents
Join the DZone community and get the full member experience.Join For Free
Download “The DevOps Journey - From Waterfall to Continuous Delivery” to learn learn about the importance of integrating automated testing into the DevOps workflow, brought to you in partnership with Sauce Labs.
DZone: Tell me a little bit about how ReplaySolutions started, where it is now, and its place in the developer/IT ecosystem.
Jonathan Lindo: The idea for Replay Solutions started in 2000 as an idea originating from our passion for TiVo, which was a new and revolutionary technology at the time. In 2004, the company started with a focus on video games. Some of the most advanced software comes out of the video game industry and as a result, they face some of the toughest challenges with software defects.
Today, Replay Solutions holds multiple patents on software recording, virtualization and defect resolution. The product has evolved to support enterprise software platforms such as Java EE.
ReplayDIRECTOR is a new type of product that spans production APM, software ALM and DevOps. When fully deployed it is used by production, QA and development to radically improve quality and time to market.
DZone: In a recent study, I found that developers would rather do their taxes than test a piece of software. How does ReplayDirector make testing easier? What specific things can it do that no other software can?
Jonathan: Software testing is hard because covering all the potential use-cases for a piece of software is a real challenge. Furthermore, when deployed in the wild, non-reproducible problems happen.
ReplayDIRECTOR reproduces non-reproducible issues. It essentially provides a ‘time machine’ for software, allowing any team member to go back in time and see performance, security issues or software defects as they occurred at the moment of failure. They can analyze, debug, profile and also amplify and extract additional information about the issue that wasn’t available at the time of failure, such as deep level logging.
Developers spend a large percentage of time setting up and configuring systems, apps and databases in order to fix problems. With ReplayDIRECTOR, they can see exactly where problems happen, skip the painful setup and fast forward right to the root-cause of issues in a few seconds.
DZone: Does ReplayDirector put a lot of overhead on the production systems to keep track of things like multiple thread conditions?
Jonathan: The technology originated from a need we found in the video game industry. As most developers know, video games are extreme applications running in high-performance, but very performance sensitive environments such as the XBOX 360. To be successful, it was necessary for the technology to be very low overhead.
We brought the same, high-performance technology to the Java enterprise space that we did for customers like Microsoft, EA and Activision.
DZone: Replay Solutions recently was awarded a patent around Replay Director's ability to reproduce and fix race conditions. Could you tell me a little bit about what this patent means for Replay Solutions? Do you think the patent will affect other race condition-detecting software?
Jonathan: Race conditions can be some of the most difficult types of issues to track down and fix. Our approach is unique and builds on our ability to see deep into the application both in real-time, and after the fact offline during the replay of a software recording.
Reliably reproducing race conditions can be very difficult and time consuming. We believe our solution offers unique advantages such as providing a guaranteed, debuggable reproduction of race conditions.
Regarding other solutions, we’d like to think we are adding to and advancing this field of research while providing a solution to software teams that they can download today.
DZone: There's a lot of buzz right now around the DevOps movement. How does ReplayDirector fit in to this trend? What are some of the problems, challenges, and rewards of merging software development and deployment?
Jonathan: Software deployments are far too complex today for pre-production to throw software over the wall to operations. It’s critical to have a bridge. DevOps is the movement to formalize that bridge.
The benefits are obvious:
1. Software developed with a better understanding of the production environment
2. Easier change management for production, and
3. Faster and more accurate problem resolution and performance tuning
The challenges revolve around merging the two cultures and mindsets of operations and development. Historically these are radically different in terms of priorities, tools and workflows.
New tools & technologies are required to make DevOps successful.
This is where ReplayDIRECTOR excels. By enabling the perfect communication of issues from operations to development, a major barrier between the two groups is eliminated. This means developers see operations issues, problems are fixed faster, and no-one hears “It works on my machine” ever again.
DZone: There's plenty of discussion around Agile Development these days, but not as much around Agile Infrastructure. Sure, there's plenty of people using CI and project management tools like Maven, but where can Agile Infrastructure go from there? What kinds of infrastructure do software companies need to be highly agile?
Jonathan: Agreed, there is a healthy discussion about Agile infrastructure. We agree with some comments Michael Cote from analyst firm RedMonk made earlier this year – companies need to start thinking about their infrastructure as part of the code base. As this happens, many aspects of agile development will naturally find their way into operations.
For example, for each software change rolled into production, it’s important for operations to be able to see what components changed at the code-level, why they changed, and what potential impact the changes may have, and most importantly who is responsible for them. This means Agile sprints are more connected with the end-goal and enables the entire organization to be Agile.
It seems like the time and monetary costs are what keep companies from revamping their production infrastructure to be more agile. What things do agile infrastructure vendors need to do to make the transition easier and less costly?
We already see production infrastructure budgets being a priority for companies. It goes well beyond infrastructure budgets – we’ve actually seen an increase in operations people’s bonuses being tied to application uptime. From a vendor perspective, natural market dynamics around supply and demand are already driving vendors costs down.
In March, we created a simple low-cost monthly subscription model for ReplayDIRECTOR that allows software companies to add our functionality very easily. The result? The number of clients we have has increased
significantly and are seeing good value. We see this model as an important market trend.
Opinions expressed by DZone contributors are their own.