Customers of Pitchbook, a Seattle-based investment guidance company, need up-to-the-second information to make decisions about their money during the trading day. In hopes of serving them better, Pitchbook is in the midst of an overhaul of its computing infrastructure to focus on microservices, and it’s already paying off.
It has been about a year and a half since the migration started, and Pitchbook is now running several key services — such as company profiles and its Company Signals product — on a microservices architecture, said Fabrice Forget, chief product officer. He expects that Pitchbook will have switched everything to microservices by the first quarter of next year, which will make the company’s services much more speedy and nimble for its users.
“It’s about building products for our customers,” Forget said “They are required to make decisions on data … they need to get access to data that is super timely and of the highest quality.”
Pitchbook caters to big-money investors who need to keep track of venture capital and private equity deals, and those types of people don’t like waiting for their information. The company is a division of Morningstar, the huge public-market investment research company, and has more than 1,800 clients.
“One thing that’s important to us: (to) have a platform that is lightning fast. Never compromising on performance, never sacrificing speed, that has been one of our mission statements from the very beginning,” Forget said.
Until last year, Pitchbook’s core platform used a classic monolithic design, in which an application is designed as a single self-contained mass of code. This approach worked quite well for years, but monolithic applications have trouble scaling to accommodate increased demand, and they are hard to maintain because of the many dependencies between different tasks: when the developer who wrote a funky part of the code base has vested and cashed out, the new person can have a tough time figuring out what to do when something goes wrong.
When it started making changes to update its user interface last year (those changes are rolling out Monday), Pitchboook quickly realized it was time to modernize its strategies, Forget said. So it turned to a microservices approach, in which parts of an application are split into multiple pieces, or services, and linked together with APIs (application programming interfaces). Containers make this possible, and it’s quickly turned into the modern approach to back-end software development.
“Switching allows us to quickly add new data, conduct data refreshes, and to launch new services and features,” Forget said. And the new architecture allows Pitchbook to make changes to its services on the fly, without having to wait for a one big deployment in the middle of the night on a weekend.
Pitchbook is still managing the bulk of its platform on a datacenter hosted by Rackspace, although it runs a few workloads on Amazon Web Services and Google Cloud Platform, and is looking at expanding the number of cloud-based workloads it runs in the future, Forget said.
“We keep thinking we should move everything to the cloud, but at the end of the day it still works just fine on our dedicated servers,” Forget said, echoing the sentiment of many a CIO around the world. Pitchbook also understands the needs of its application so well at this point that it has seen better performance from customized off-the-shelf servers than from cloud services, he said.
“When we really set up and get the hardware in place, we can really optimize it, so it can really helps a lot for the performance side of things,” Forget said.
It hasn’t been all roses and uptime: the company had to retrain its developers to think in terms of microservices, and improve communication between developers to avoid duplicating work, Forget said. But the effort has been worth it for a company that relies on its services to be available on demand, all the time, any time.
“If your product is not fast, it loses value,” Forget said, describing Pitchbook’s business environment. If you’re responsible for a similar product, it might be time to consider a microservices approach.