Founded in 2013, Musement is a digital platform for discovering and booking memory-making travel activities—from museum visits to city tours, food and wine tastings, sports events, and wellness activities—in more than 1,000 destinations in 70 countries. In the coming year, Musement is planning to expand its offering to more than one million activities.
Moving from monolith to microservices
To support its aggressive growth strategy, Musement needed to rapidly expand its software organization while enabling product teams to innovate quickly and independently of other teams, using the best technology to fit their needs. The answer was to decouple components of Musement’s custom application, breaking apart the monolith into various microservices.
“Our core vision for decoupling capabilities such as the user interface, invoicing, administration, and user management is to enable us to scale and move faster using a larger team and different technologies,” says Fabio Zecchini, chief technology officer and one of Musement’s four co-founders. “It’s very difficult to hire 80 engineers in less than nine months, decouple and redesign components, and still keep everything in one technology stack.”
Running everything in the cloud
Moving quickly and adopting new technologies is nothing new for Musement, which has always been in the cloud and taken advantage of cloud native technologies whenever they have made sense.
“We built our platform from scratch in the cloud, using APIs from the beginning, and adopting new technologies such as AWS Lambda or Google Cloud Functions as they evolved,” says Zecchini. “We’ve rewritten our front end completely from scratch five times in seven years to continually iterate and improve the experience with new technologies, frameworks, and APIs.”
In September 2018, Musement became part of the German group TUI, the world’s largest integrated tourism operator. “One of the reasons why TUI was eager to acquire Musement was our digital DNA,” says Zecchini. “Within one month following the acquisition, we had integrated our APIs, and within six months we replaced TUI’s digital touchpoints using our own architecture. TUI invested in us because they want to use our agile and iterative approach as the benchmark for their own digital transformation.”
Relying on New Relic for the confidence to grow
Zecchini says that New Relic has been a part of Musement since the beginning. While Musement originally relied on New Relic to monitor parts of its application and infrastructure, the company expanded its use with the introduction of New Relic to cover the entire end-to-end technology stack.
“New Relic is essential to our moving to microservices because to decouple our core platform, we need to feel confident that we can still know immediately when something is wrong and be able to pinpoint the problem quickly,” says Zecchini.
Insight from New Relic helps Musement make informed decisions about which capabilities to decouple from the core application and how to do that best. Zecchini cites the example of a component that handles the supplier integration API: “We have 130 integrations around the world using this API, so the most important thing for us, as we were designing the decoupled component, was how we would monitor it. If something goes wrong, we need to identify it within seconds. New Relic helps us do that, even if the component is no longer part of the core code platform.”
Tracking everything from SLAs to orders per hour
Another important use case for New Relic is to help the Musement software team comply with service level agreements (SLAs). “When we sign contracts with third parties to use our APIs, there are SLAs with which we need to comply as part of the contract,” says Zecchini. “New Relic helps us monitor and certify that we are meeting our SLAs for performance and availability.”
Beyond monitoring SLAs, Musement is also building a product-specific dashboard that gives every team an end-to-end view of the applications or domains for which they are responsible. “New Relic enables us to put everything we need to track into the same platform in the same dashboard,” says Zecchini. “Now instead of only DevOps people using New Relic, everyone on the team uses it, including engineers, product managers, designers, data analysts, and QA developers.”
In Zecchini’s opinion, one of the most important New Relic capabilities is the ability to tie application performance back to business metrics. “We are using New Relic to track business dimensions such as conversion rate or number of orders per hour,” says Zecchini.
For example, he says, “If there’s a sudden decrease in orders per hour, we receive a New Relic alert. Sometimes it’s not a technology issue, but a problem with a product that causes business to drop. New Relic helps us react to the issue quickly, no matter what the cause, so we don’t lose a lot of money.”
Reducing technical debt to prepare for future growth
“As we were working on a new dashboard in New Relic, we noticed some issues with code that wasn’t optimized for certain browsers,” says Zecchini. “Now, we’re taking this time to use the dashboards to identify areas where we can improve performance and the customer experience.”
Zecchini’s team also uses New Relic to reduce its costs while sales are down during the global crisis. “During these low-volume months, we’ve used New Relic to cut the cost of our infrastructure by 50% without affecting performance,” says Zecchini. “We also rationalized our toolsets and consolidated use cases onto New Relic, which further reduced our costs.”
This work will pay off as more and more people are allowed to venture further than their own homes and cities. When travel resumes, Musement will be there, with a million different ways to experience something new and wonderful, and New Relic to help it make sure people can book an adventure with ease.
The views expressed on this blog are those of the author and do not necessarily reflect the views of New Relic. Any solutions offered by the author are environment-specific and not part of the commercial solutions or support offered by New Relic. Please join us exclusively at the Explorers Hub (discuss.newrelic.com) for questions and support related to this blog post. This blog may contain links to content on third-party sites. By providing such links, New Relic does not adopt, guarantee, approve or endorse the information, views or products available on such sites.