In the Microsoft Ignite 2020 session “7 ways to optimize your Azure costs,” members of the cloud engineering team at Maersk explained how they got control of and reduced their Azure spending during their company’s digital transformation.
Out of the more than 800 sessions offered at this year’s Microsoft Ignite, “7 ways to optimize your Azure costs,” really stood out to me. Led by Rasmus Hald (@RasmusHaldDK) and Will Owen of Maersk as well as Dante Rasera and David Blank-Edelman of Microsoft, the session piqued my interest because the ShareGate team is always looking for ways to help cloud engineers optimize their costs.
The session was divided into two sections. In the first, Rasmus and Will discussed how they implemented a cost optimization plan for their business. In the second, Dante walked us through some of the tools and services Microsoft offers to help you manage your Azure spending. In this blog, we’ll just focus on the first half of the session.
I think a lot of viewers found it helpful to hear about a company’s actual experiences taking on cloud cost optimization. Especially when they outlined the steps they took to ensure their cloud infrastructure was running efficiently.
If you’re interested in optimizing your costs without spending countless hours on the manual work, check out ShareGate Overcast, the tool we built to help you save on your Azure spending in a fast, user-friendly, automated way.
Understanding what your Azure spending has been and could be
Like many other companies, Maersk recently decided that it wanted to undergo a digital transformation. More and more of their workloads were in the cloud, and by 2019 they saw a huge increase in their cloud costs.
They were asked to cut costs, and Rasmus and Will were initially resistent to the idea. Rasmus explained that paying attention to costs isn’t something that comes naturally to cloud engineers. “Cost optimization isn’t obvious, it isn’t part of engineers’ DNA.”
Will said he didn’t want to be the person to cut costs across the organization, but he also realized that if engineers didn’t make these types of decisions, other people would. And those cuts would probably impact business value. So instead, they dove into engineer-driven cost optimization.
“We predicted almost doubling year over year cloud costs, so that made us realize we must have tremendous potential to optimize,” said Hald.
The first thing they tackled was visibility. You can’t determine where to optimize your costs if you don’t know how much you’re spending, what resources you’re spending on, and why.
Once they understood this, they set budgets for each of their products with targets for the team leads to reduce costs by a certain percentage. By breaking things down like this, it made cost optimization much more realistic than if they had just given leadership one big budget that everyone had to work within.
The four presenters in this session all understood how a company can get in a situation where they don’t have this kind of visibility. When you’re working with on-premises infrastructure, there’s typically one person or a small team in charge of purchasing more servers as needed, and then the team can build within those limits.
But with a modern approach to the cloud, typically everyone on the team has the ability to deploy resources, and no one really considers how much it will cost you until you get your bill at the end of the month—a bill that isn’t very clear itself.
So it’s understandable why so many cloud engineering teams don’t have great visibility into their cloud spending. Fixing that is the key. And by putting some of the cost optimization responsibilities back on your teams, it helps everyone to keep costs top of mind while they’re building in the cloud.
Implementing the most impactful optimizations
After they understood where they were spending their money in Azure, the team at Maersk was able to identify two different types of optimization patterns:
- Centralized optimizations
- Product-specific optimizations
Centralized optimizations are cost savings measures that can be done across the entire organization. “Things like Azure Hybrid use benefit and reserved instances are driven from a central capability,” explained Owen.
These types of optimizations are typically more complex and license-related or discount-related, and it’s easier to drive them from one central point.
Product-specific optimizations are just what they sound like: optimizations that you can make for specific products (or environments, or teams, etc.) that help ensure you’re still spending what you need to in order to build and run great products and services without overspending. These savings are typically driven by each product team.
At Maersk, they had a team to handle the central optimizations. This team also collected insights to provide to the various teams to help them drive their own product-specific savings.
For the product teams, that meant looking at how they were using the cloud. Do they have their test environment running 24/7? Are they changing environment costs based on where they are in their release cycle?
The insights the product teams were given also helped them identify their top cost drivers. For one of their products, CosmosDB was a top cost driver. When they dug deeper into how CosmosDB was being used, they saw that more than 100 CosmosDB instances had been deployed across their platform.
”Each one was only set to have 400-1000 DTU, so individually that’s fine. But scale that 100-fold and you’ve got huge inefficiencies in cost,” said Owen.
Will also said that Maersk saw big savings from rearchitecting. “We had a major project going on that was being designed now for its size in three years. By refactoring that architecture to the right size for now, we saw significant savings.”
All of this work in optimizing costs has helped Maersk understand and manage their costs. And it also helped them ensure that everyone is on the same page when it comes to efficiency.
Efficiency, of course, means something different for every business, and every team in every business. As David reminded us, “‘Optimize’ is not necessarily ‘as cheap as possible.’ It’s what gets you to the place you need to be.”
If reliability is a top priority for your business, paying for redundancies makes sense. You can pay for redundancies and still be optimized if that’s what your business needs.
Making cloud cost optimization a regular part of engineering
Unfortunately, cost optimization isn’t something you do once and then go about business as usual. All of this session’s speakers emphasized that optimization is an ongoing process. But once you’ve done the groundwork, you’ve got better visibility over your spending, and you’ve got your team members on board, it’s a lot easier to maintain.
“We have an awareness now, in the engineering community that cost management and optimization should be part of our DNA,” said Hald. The leadership in Maersk now also understands that this is a discipline that the engineering teams can and should be harnessing.
Will emphasized the importance of having a plan. Now that they’ve already accomplished a lot of optimization, there are different strategies to explore for next steps.
Maersk is going to be looking at more self-service optimization guidance, so that if one of their teams is scaling out 100 products, they have accurate guidance for how to do that efficiently.
They also want the different teams to be able to work together and learn from each other. Part of the plan for their next steps includes better visibility across teams, so that if one team is doing really well optimizing SQL servers, they can show the other teams what they’ve done and how they did it.
And, of course, as their business grows, the way they optimize costs will evolve, too.
“Cost optimization is a new discipline when we look at tech,” said Owen. “It’s a continuous effort.”