Building High-Quality Cloud Solutions - Part 1: Cost Optimization

It can't be overstated how important it is for an organization to gain complete clarity from the nebulousness that is "the Cloud", especially when handling their workloads. I've been involved in several application assessments in recent months, and while each of them had slight variances in terms of their goals, they all seem to converge, at some point, around the same question. 

"Are we properly utilizing the Cloud?" 

…for those organizations already in the cloud. Or…

"How do we properly leverage the Cloud?"

…for those organizations looking to make a move.

This question, or some variation of it, seems to be a ubiquitous line of thought for companies looking to maximize their utilization of and investment in the cloud.

Obtaining a thorough and actionable answer to this question is paramount to the foundation that will significantly shape the strategies used to deploy your workloads to the cloud. Regardless of the cloud platform you choose, the major providers all use a standard architecture framework that consists of five core tenets of a high-quality cloud architecture that traverse any specific type of workload. 

Examining your environment through each of those lenses will form the complete picture in determining the proper direction to take.

There is much information out there regarding the tenets, and each area can get pretty complex. In case you can't identify what you are looking for or where to start, I've created a five-part series diving into each of the five core tenets:

  1. Cost Optimization
  2. Operational Excellence
  3. Performance Efficiency
  4. Reliability
  5. Security

While the concepts presented are universal, the specific examples I layout will be centered around Microsoft's Azure cloud platform, mainly because that aligns with the breadth of my experience and recent assessments.

The Psychological Shift of IT Spending

Traditionally speaking, IT infrastructure costs have revolved around fixed long-term leasing agreements with managed services providers or significant upfront capital expenses to invest in hardware. If that wasn't bad enough, hardware purchases were based on anticipated max capacity instead of typical utilization, leaving the IT department in the unfortunate situation of paying for capacity they usually did not use.

Having your operations in the cloud flips this model on its head and enables cost controls for previously unpredictable utilization. The psychology of IT spending can now shift from a rent or mortgage mindset to more of a utility structure, like gas, electric, and water; you pay for what you use - no more, no less. Additionally, with that level of granularity, you have all the tools necessary to identify inefficiency and waste in your cloud spending. 

As you are mentality shifting to a utility model, keep in mind that Microsoft Azure’s cost model is regional. That enables you to run the exact same service(s) in two different regions and pay two different prices for them given everything else is equivalent. It is because those prices are a summation of – to name a few things – physical data center maintenance (construction, power consumption, and more), networking and computing power provisioning, and the human resources necessary to make sure everything stays operating. 

Food for Thought

Here are a few questions to get you thinking about how to handle things in your current environment or how you can set things up in a desirable way from the start (if you are considering the move):

  1. Do you have a coherent way of estimating your cloud costs and a plan for how to anticipate and handle any variances? You can do this through a cost modelling exercise. Start by creating logical groups of cloud resources by business unit or department. Then you can map out goals, requirements, constraints, tradeoffs, functional requirements, and billing models. Once that is complete, you can identify your scale of lower and upper limits on cost so you can set your budget accordingly.
  2. Is there governance around budgets and application lifespan for a given workload? This can be accomplished by assigning budgets to specific services, periodic reviews to ensure usage aligns with the forecasted budget and designating a target end-date to particular environments.
  3. Are there any considerations being made for DevOps practices? Automated build and deployment pipelines are at the mercy of how application design. A well-architected workload will allow for optimal efficacy in terms of build throughput and costs.

 These three things are far from exhaustive, but the hope is that they inspire you to approach your cloud costs a lot more thoroughly and with more confidence.

Quick Wins

Interested in looking like a hero? Here are a few areas you can explore to get your costs under control:

Leverage existing on-prem licenses in Azure via Hybrid Benefits. This add-on allows organizations to tie any existing Enterprise Agreement they have with Microsoft to their Azure subscriptions. That will, in essence, lower the Azure costs by removing the licensing fees (for applicable services) because they are already being paid for through other agreements.

Commit for the long-term via Azure ReservationsThese help you save money by committing to one-year or three-year plans for services. This commitment allows you to get a discount on the resources you use. Reservations can significantly reduce your resource costs by up to 72% from the typical pay-as-you-go prices and can be paid for all upfront or monthly.

Turn IaaS workloads into PaaS workloads. You may have your company website, or other similar web-based applications, running on a Windows Server VM inside Azure. Transferring those assets off infrastructure services like a virtual machine and replacing them with Platform services like Azure App Services would immediately render a decrease in Azure costs for those workloads and a decrease in operational costs by eliminating the management cost of the virtual machine.

Move non-crucial workloads into cheaper regions. You may be in a situation where not every line of business application or service your department provides must be immediately available or hyper-responsive. In those cases, you can move the workloads into a region, anywhere around the world, where equivalent resources are priced at a lower cost.

Reduce the scale of your development environments. As part of your application lifecycle management setup, your development and testing environments should match the production environment –that is true regarding the configuration. What should not match is the scale. For instance, if you are running a Kubernetes-based application with dozens of nodes spanning multiple regions, there is no reason why that can't be scaled down to a few nodes within a single region for your internal environments.

We're just getting started…

Cost Management is the tentpole of a high-quality solution. It has a direct effect on every tenet we will explore throughout this series. Now that you have picked up a couple of quick wins and are thinking about your approach to optimizing your cloud costs, the next tenet we will touch on in this journey is Operational Excellence. That concept, as you will see, is less of a destination and more of a goal.

Reflecting on the questions posed and quick wins provided in this article, how much of this have you experienced already? If none of this was new to you – congratulations because you are well on your way! However, if any of this was new, I challenge you to revisit your cost management approach and start to dig in to gain more control.

Stay tuned for the next article in our Building High-Quality Cloud Solutions series, or click here to explore more technology updates. 

Comments

Add Comment

Subscribe to our newsletter