Trace Id is missing
June 29, 2018

E-discovery company uses serverless computing to speed internal development of its SaaS solution

Based in Chicago, Illinois, Relativity wanted to improve the customer experience of its RelativityOne cloud-based e-discovery platform. The company decided to create a monitoring solution based on a serverless architecture powered by Microsoft Azure Functions that proactively identifies and resolves performance issues. Now, developers have more time to apply their talent to writing task specific code and enhancing functionality, without worrying about underlying systems and servers. Some projects that used to require a few months can now be completed in a few days.

Relativity

“When we can develop a solution in a week using Azure Functions versus four months using traditional methods, that represents a drastic improvement in our ability to solve business-critical problems.”

Hristo Papazov, Senior Software Engineer, Relativity

Relativity is the creator of an industry-leading e-discovery platform that’s used for managing and gaining insights from high volumes of electronic evidence. With more than 170,000 users in 40 countries, the company’s platform is used by law firms, corporations, and government agencies for e-discovery in litigation, information governance, government requests, and internal audits. The company’s cloud solution, RelativityOne, offers all the functionality of Relativity, the company’s on-premises solution, in a highly secure and comprehensive software as a service (SaaS) product hosted in the Microsoft Azure cloud platform.

Monitoring the company’s platform health

To keep its cloud-based platform running at peak performance with enterprise-class availability, Relativity developed an advanced, comprehensive internal monitoring and reporting solution built on a serverless computing architecture in Azure. Relativity adopted serverless computing—the abstraction of servers, infrastructure, and operating systems—so that its developers don’t have to worry about these elements during the coding process. The Azure serverless approach involves Azure Functions, the compute service that implements code triggered by user actions, messages from other programs, and other events.

The company’s monitoring solution assesses the health of RelativityOne to provide real-time actionable data for product support, on-call IT staff, technical operations, and various product development teams. The solution collects performance data about RelativityOne and provides reports that senior managers use to make business decisions about RelativityOne functionality.

Hristo Papazov, Senior Software Engineer at Relativity, is part of the IT team that created and maintains the monitoring solution. “Customers should not have to call tech support because they can’t log in or they’ve discovered an application connected to RelativityOne is stuck,” he says. “With our monitoring and reporting capability built on Azure Functions, we can proactively prevent possible outages before our customers even realize there was a potential problem.”

The monitoring solution uses Azure Functions for service compute, Azure Cosmos DB as a caching and storage layer, and Azure Service Bus as a messaging service among software components. Relativity chose Azure SQL Database to store the metrics that the solution gathers from RelativityOne.

Developing software fast, the way developers want

Papazov cites an example of how Azure Functions can be ideal for database applications. Three years ago, it took nearly four months to complete a key database porting solution. In contrast, based on his growing expertise in serverless computing, Papazov says developing the porting solution now would be a much simpler project. “We can create an Azure Cosmos DB collection, apply Azure Functions to provide an API, and deploy a single-page, easy-to-use web app for users—all in less than a week,” he explains. “When we can develop a solution in a week using Azure Functions versus four months using traditional methods, that represents a drastic improvement in our ability to solve business-critical problems and focus our developer talent wherever it’s most needed.”

Putting Azure Functions to work

As for the solution to monitor and report on RelativityOne performance, Papazov notes that the company wanted to develop it quickly to help employees provide customers with better service, uptime, and product functionality. “The big thing we had to do was come up with the right code to process the incoming metrics,” he says. “With guidance from Microsoft, we realized that we could use Azure Functions to avoid a deep dive into system code. That saved us time, effort, labor, and computing resources.” Specifically, according to Papazov, the first implementation essentially took six labor months of effort whereas the serverless solution only took one labor month, with an overall reduction in effort of about 85 percent.

Developers apply Azure Functions to collect metrics from RelativityOne deployments around the globe and distribute this data to components of the solution as needed for analysis. Some functions determine, for example, if alerts are required, which teams should be notified, or what events should be logged. Other functions determine if RelativityOne needs to scale up or scale down processing capacity for its e-discovery platform as resource needs change. Says Papazov, “We find more and more ways to apply Azure Functions to make our monitoring solution work better, which is why we’re now heavily invested in serverless computing.”

Papazov summarizes the monitoring solution project by considering the interest that other Relativity teams are showing in serverless computing. “We demonstrate an experience where you write the code you need and deploy it with the click of a button. That is strong motivation, and it proves that with Azure Functions, we’re able to enjoy big successes without big hassles.”

Find out more about Relativity on Twitter, Facebook, and LinkedIn.

 

“With our monitoring and reporting capability built on Azure Functions, we can proactively prevent possible outages before our customers even realize there was a potential problem.”

Hristo Papazov, Senior Software Engineer, Relativity

Take the next step

Fuel innovation with Microsoft

Talk to an expert about custom solutions

Let us help you create customized solutions and achieve your unique business goals.

Drive results with proven solutions

Achieve more with the products and solutions that helped our customers reach their goals.

Follow Microsoft