Squeezing Performance Out Of Complex Software
May 13, 2015 Timothy Prickett Morgan
When all is said and done, the performance of applications matters more than any other technical aspect that drives them. And in an increasingly complex software stack, where elements of an application are spread over distributed back-end servers, often running across multiple platforms and sometimes across geographically dispersed datacenters, as well as on myriad different clients with all of their own layers of software, trying to figure out how applications are performing has never been more difficult.
Or, as it turns out, more important. Unlike in years gone by, an app running on a mobile device is increasingly the way that consumers interact with companies. A poorly performing application doesn’t just reflect badly on a company – it can cause them to lose customers.
Application performance management is a niche market, and it is one that New Relic founder Lew Cirne knows well. He was one of the originators of this category of monitoring tools, and Wily Technology, the company that he founded back during the dot-com boom of the late 1990s, brought APM to the Java stack and the relatively monolithic applications that dominated that era. It is nearly two decades later and Wily has been a part of software conglomerate CA Technology for seven years after being acquired for $375 million. After resting a bit as an entrepreneur-in-residence at Benchmark Capital, Cirne decided to take another stab at APM, this time tackling a more complex and distributed software stack and using a SaaS model to deliver monitoring services for applications and systems instead of trying to sell on-premises software licenses. The company Cirne founded to take on this more complex APM work is New Relic (a name that doesn’t have anything to do with archaeology but is rather just an anagram of its founder’s name), which went public last December and which is on a fast-growth revenue curve that will eventually make it profitable.
It Starts With Ruby, And Ends Up Doing Analytics
New Relic started out with one product, but has diversified and is now not just doing monitoring, but actual data analytics that customers can leverage to help run their businesses. That analytics business, called New Relic Insights, is a bit different from the other parts of the New Relic toolbox and, as it turns out, is based on a massively scaled, homegrown database that New Relic created called Dirac, which the company has never talked about publicly until now. The company has also just expanded its APM tools so they can peer into Docker containers and will no doubt support other container technologies as they evolve and are embraced by developers to deploy applications.
Back when Cirne was pondering what to do next after selling off Wily to CA, the hot new thing was the Ruby on Rails programming language and framework. A lot of developers were using it instead of Java or PHP to build web applications, but they could not get a good understanding of how their applications were performing. So New Relic created an APM tool that did this and launched its own product.
Today, the company has seven different SaaS services that help developers and system administrators figure out how their code is performing at all levels of the stack, and New Relic has extended out from APM to do system monitoring. The various APM tools have the same basic architecture. When New Relic was focused solely on the back-end systems, it embedded a small piece of agent software inside of server components, initially with Ruby on Rails and then other environments such as Node.js, Python, PHP, Java, .NET, and so forth got agents and were added to the monitoring services. The system monitoring tool, which is a freebie service that New Relic uses to round out its product set and to eventually drive sales of its other services, has a plug-in architecture so developers can create their own hooks to let New Relic’s tool talk to important system components like Nginx web servers or MySQL databases.
Changes in software architecture have compelled New Relic to move beyond backend systems and into client devices, and this is what is in turn driving its analytics offerings.
“The complexity of software has gotten to the point where traditional APM software, including New Relic tools of yesteryear, was not sufficient enough,” Patrick Lightbody, vice president of product management, tells The Next Platform. “APM was looking at these more monolithic applications like a Ruby on Rails application, but as we are all aware, there is a fragmentation of software at organizations big and small and the adoption of microservices. Moreover, a lot of the complexity of that software is being pushed out to the clients.”
This data feeds into the browser and mobile APM services sold by New Relic, but about a year ago the company decided to bring all of the backend and front end data together for customers using its various services to create an analytics platform called Insights. Because New Relic is growing fast and expected for the Insights offering to take off, it was very careful about the scalability of the databases behind the service. Instead of using Hadoop/HDFS, Cassandra, or MongoDB, the company created its own database, called Dirac internally, that runs on flash-based storage servers in its Chicago data center. New Relic is not saying much about the architecture of Dirac, but Lightbody says that nothing out there in the market could handle the data streams that New Relic expected to get from the Insight service, and so it did what a lot of hyperscale companies do: It rolled its own.
The Insight service logs all kinds of data in applications, allowing for real-time access to simple questions about anything in the applications. You can, for instance, ask how many customers visiting a site bought a particular product or had at least $100 in their shopping carts. Dirac is currently processing millions of events per second and it is designed to be capable of processing up to 1 billion events per second, a level that New Relic sees as necessary to support the growth of its business. Dirac is ingesting the full feed of New relic services, which comes to about 54 GB of data per minute according to Lightbody. The Dirac database has its own events-oriented query language called NRQL, which is a SQL-like language to parsing event data over time. Customers are keeping months or even years of application event data in the Dirac database, says Lightbody, another indication that companies are increasingly loathe to throw away any data that might give them insight into their customers and their applications.
New Relic has no plans to move Dirac outside of this role, and it is unlikely that such a key technology will be open sourced. The company uses the Cassandra NoSQL data store to back-end its browser monitoring service. MySQL is used for certain time series databases that are behind its services, and Lightbody things MongoDB is still in the stack somewhere, too. While the company runs a bunch of its services from its Chicago datacenter, it also runs others from Amazon Web Services. And interestingly, New Relic has a hosted version of its APM tools running in its datacenter to monitor how its own applications are doing. But don’t get the wrong idea – New Relic is committed to the SaaS model that allows for continuous updates and a subscription rather than a licensing model and is not going to backtrack on that.
The newest thing that New Relic has done is expanded its APM tools so they can peer into software containers. The whole point of a container is that it provides isolation and that makes peering into the containers problematic. But Docker has a daemon that is only accessible to local host servers supporting containers, and this has a RESTful interface that New Relic’s APM tools can hook into and pull out telemetry about the containers and their software. The agents that run on Windows and Linux operating systems have also been updated so they are Docker-aware. This Docker support is available now in beta as part of its server monitoring tool, and as other container formats and runtimes get more popular, such as rkt, LXC, and generic cgroups, these will no doubt be supported. New Relic has also joined the Cloud Foundry Foundation and is providing source code that hooks its APM tools into the Cloud Foundry platform cloud.
Turning Software Complexity Into Money
Up through the end of March, which is when New Relic’s fiscal year ends, the company had 11,910 paying customers, and they drove $33.4 million in sales in the quarter, up 68 percent from the year-ago period. For the full fiscal year, New Relic brought in $110.4 million in revenues, up 74 percent.
New Relic might be a public company, but it is still at the very early stages of its growth and it is still not, as the chart above shows, yet a profitable company. But, having gone public, it does have over $200 million in cash and short-term investments in the bank, and that cash will be used to help it expand its products and further growth the business. The company is not expecting to be profitable in the current fiscal 2016 year, and is projecting revenues of between $155 million and $159 million with a non-GAAP loss from operations of $46 million to $50 million.
The company has hundreds of thousands of customers using its free APM services, and there is always an effort to convert these shops to paying customers.
“Usually, if a customer is going to convert they are going to do it sooner rather than later,” says Lightbody. “But for us, the value is not necessarily this pool that we are going to convert directly somewhere down the road, but rather that it might be a developer who has a side hobby and uses New Relic and they get a job and when they do a real project they suggest that the company use New Relic. We see a lot of that.”
New Relic also looks at who are the heaviest users of the free versions of its tools to find sales prospects for the paid versions.
This is ever the challenge when using a “freemium” software model, but this is probably a whole lot easier than trying to sell six-figure APM software licenses to large enterprises would be. And ultimately, this freemium approach could turn out to be just as large of an opportunity and just as profitable.