Moving toward a managed compute platform
Asana is an enterprise work management provider with a mission to improve the way people around the world work. Its platform connects teams and tools for a smarter way to work, helping organizations drive clarity and accountability, maximize impact, and scale with confidence.
Yannis Spiliopoulos is the tech lead for Asana’s Production Infrastructure pod, which includes teams focused on Observability and Infrastructure Platform. Spiliopoulos’s responsibilities include improving cost efficiency and bringing awareness to and managing infrastructure spend.
Asana is cloud-native and almost exclusively on AWS. It has a robust team of engineers deploying work management capabilities to millions of users. Asana’s product teams are responsible for developing and maintaining features for its flagship service. Infrastructure-focused teams build and maintain internal services, including those used by product teams to power their features.
Homegrown cost management tooling limitations create challenges
In order to serve organizations around the world, Asana is focused on providing a secure, stable, performant service and high product velocity. With that in mind, maintaining high efficiency and reducing infrastructure waste is critical.
Cost management systems are onerous to maintain. Large data sets can make queries slow and it can be difficult for individual teams to follow changes to the datasets. Asana sought a solution that would enable it to continue to provide an industry-leading user experience while maintaining cost control and transparency across teams. “A lot of our cost investigations required multiple queries, so when we considered whether we wanted to continue to build a tool ourselves or use a third-party solution, speed and scale were key considerations,” says Spiliopoulos. “Having a solution with a fantastic user experience—especially for teams who are only investigating cost data occasionally—became a must.”
High-fidelity cost data results in cost-saving opportunities
Asana chose Datadog Cloud Cost Management (CCM) because it provides users with in-depth cost metrics they wouldn’t have been able to access as easily. “At the end of the day, the people who operated our infrastructure needed to look at infrastructure metrics, look at other telemetry, and answer questions like ‘Did we scale up or down? Did our traffic change and how much are we spending?’” says Spiliopoulos.
By increasing speed, scalability, and support of multi-tenant environments with shared cost allocation, the team was able to drive broad adoption and savings from the solution. “With Datadog’s high-fidelity cost data, the savings opportunities we estimated were extremely accurate, which gave us confidence after the first couple of exercises that we could share this across other teams and ultimately provide an even better customer experience,” says Spiliopoulos.
Support for unit economics was another feature that drove Asana to adopt CCM. Previously, changing or modifying unit economics was a significant undertaking, requiring a careful combination of cost and infrastructure metrics. Using Datadog CCM, Spiliopoulos’s team quickly built support for unit economics to enable tracking of high-level metrics like cost per user. “This really helps provide a common language for teams, making efficiency something that everyone can understand. We don’t expect cost efficiency to be a core competency of every engineer at Asana—breaking down the cloud bill is complicated enough—so having a tool that can do that work for us, to let our engineers focus on issues that are core to them, is invaluable.”
“With Datadog’s high-fidelity cost data, the savings opportunities we estimated were extremely accurate, which gave us confidence after the first couple of exercises that we could share this across other teams and ultimately provide an even better customer experience.”
Optimization leads to cost and resource savings
Within the first few weeks of implementation, Asana quickly identified several optimization opportunities using CCM, which drove cost and resource savings. Since then, the company has been able to triage and prioritize additional savings across other cloud costs, specifically in DynamoDB storage, S3 lifecycle policy, and Kubernetes auto-scaling.
Looking ahead, Spiliopoulos says he’s excited to use CCM for new metrics like cost per request for a given service, or cost per engineer for internal tooling. “CCM allows us to achieve quick wins by helping us maintain and improve our infrastructure spend efficiency,” he says. “It has also enabled us to become more proactive in the cost planning process, providing opportunity and bandwidth to continue executing more complex architectural changes.”