The Cloud offers unlimited scalability and ‘pay-as-you-go’ billing model where you are only billed for the resources you use. But there are chances that the expenses in the cloud start to add up and can soon get out of control if you are not practicing effective Cloud Optimization Strategy. Gartner estimates that as much as 70% of cloud costs are wasted.
If you have implemented Sitecore Experience Platform or Experience Commerce on Azure cloud, you may have experienced a surge in your cloud infrastructure spending. A proactive Cloud Optimization Strategy will help to improve cost effectiveness and at the same time maximize performance, scalability, resiliency and security of your applications hosted on the Cloud.
The default topologies and tiers provided by Sitecore Commerce ARM templates leaves a great deal to be desired in terms of cost effectiveness, scalability, resiliency and security aspects. With over 50 Azure cloud resources provisioned for the production environment alone, managing cost for a Sitecore Commerce environment can be a daunting task. In this article we will look at some of the ways to improve cost effectiveness for your cloud infrastructure and improve the scalability and resiliency of your system.
Here are some of the steps to be followed for cloud optimization:
- Create and maintain an inventory of Cloud subscriptions and resources
Create a list of cloud subscriptions and resources used along with their pricing details. Identifying resources grouped by resource groups along with their cost will be a good place to get started.
Azure portal provides a ‘Cost Management’ feature where you can analyze cost by resources.
- Use Tags to Identify and Organize Cloud Resources
Apply tags to your cloud resources, resource groups, and subscriptions to logically organize them. This is a great way to organize your resources and identify the resources belonging to your Production, Staging, UAT, QA and Dev environments. Tagging also helps in cost analysis since Tags appear as a dimension in cost analysis.
- Identify Unused Resources
The next step is to identify unused and unattached cloud resources. This is the easiest way to optimize cloud cost. Cloud cost will include charges for resources once purchased but never used. An effective cloud optimization strategy should start by identifying unused and unattached cloud resources and decommissioning them.
- Identify Idle Resources
Monitor resource utilization of your cloud resources. If the CPU utilization for a cloud resource is below 5%, it is a significant waste. A key cloud optimization strategy is to identify such resources and optimize them by right sizing.
- Right Size Cloud Resources
Analyze cloud resource utilization and modify them to the most efficient pricing tier. Once inefficiencies in Memory, Database, Computing and Storage are identified, right-size the resources by scaling down to a lower pricing tier and enable metrics based auto-scaling to automatically scale-out to additional instances when there is an increase in load and scale-in to decrease instance count when the load decreases.
Also, if Virtual Machines are used for research and development purpose, enable Auto-shutdown policy to avoid wastage.
- Serverless Computing
Identify workloads that don’t need to be ‘always on’ and requiring a dedicated compute/server allocated to it. Consider using Function-as-a-service (FaaS) offerings such as Azure Functions or AWS Lambda for such workloads. Serverless computing is heralded as the next, natural step in the evolution of cloud computing.
To keep pace with the ‘pay-as-you-go’ cloud pricing model, infrastructure financial planning needs to shift from CapEx-based planning to OpEx-based planning. Technology teams must work out the most cost-effective architecture for the business, making sure workloads run as efficiently in the cloud as possible. Cloud optimization strategy should be mapped and reviewed at each stage of the Software Development Lifecycle (SDLC).
In a recent engagement, the Cloud Optimization Strategy that we proposed and implemented, enabled our customers to save up to $300,000 per year in Cloud Infrastructure spending. That is almost 65-70% reduction in their Cloud infrastructure spending for Sitecore Commerce hosting and at the same time achieved better system performance, scalability, resiliency and security. Also, achieved Zero downtime deployments for their Sitecore Commerce solution using Blue/Green deployment strategy.