The cloud promises to grow with your needs, But with that, so can the running costs. This article will look at how Divio delivers predictable pricing that gets your cloud costs under control.
Cloud cost management is a topic that is becoming increasingly common, primarily due to the surging demand for the online services we all increasingly depend on and accelerated by broader adoption during the pandemic.
Overprovisioning more cloud resources than required, leaving forgotten cloud instances running or not having adequate oversight into who can commission cloud infrastructure are all contributing factors. Scrambling to reduce or optimise cloud resources in a hurry is a situation no one wants to be in.
For more established products where the growing pains have been largely addressed, the long-term focus tends to shift to cloud costs in relation to the cost of goods sold (COGS), where gross profit is total revenue minus the COGS. The cost of the cloud infrastructure can play a significant role in a business's bottom line, and if it grows linearly with the sold goods or services, profitability will take a hit.
For many organisations and individuals, the cloud is the de facto choice when creating new apps. Having experienced the initial hurdles of migrating legacy apps to the cloud, and long-since resigning physical servers, using the same infrastructure is a logical choice, being able to use the expertise and development momentum already in place.
Most cloud vendors offer generous discounts and free resources during this initial setup phase that are sufficient for the development and initial launch phase. However, deferring the upfront cost in this manner can create a false impression of the incoming costs, which can rapidly cascade and run away by the end of the grace period. With the infrastructure setup and in place, there is a natural reluctance to migrate away or look at other more cost-effective alternatives.
The cost can be loosely divided into several common areas:
Storage - database, media, and backup storage.
Networking - region differences, the inbound and outbound traffic, and interconnection between other services.
Supplementary services - performance analysis, scheduling tasks, repositories and content delivery networks.
Compute costs - many options in instances, computing power, memory, and capacity.
Preempting and estimating these costs is notoriously difficult, even with a consistent traffic volume. External events, such as flash sales, trigger unpredictable user behaviour leading to significant spikes in consumption that compound the problem.
AWS, GCP and others, have introduced cloud calculator tools. By providing predicted consumption and infrastructure requirements, monthly or yearly costs are estimated - giving some foresight into what future costs will likely be.
Cloud calculators operate based on “right now” – using up-to-date pricing to guide potential costs at the time of use but cannot offer any predictions on how costs could change. As energy costs fluctuate or demand increases for the same computing resources, so does the cloud cost.
Better results depend on the input's accuracy, which is inherently complex to gauge. It requires an in-depth understanding of the various cloud vendor components that might be involved in the architecture, the configuration they should have and how they would be consumed. Additional costs for alternative environments, such as testing or staging environments, must also be calculated and factored in.
Other potentially significant costs are not in the scope of cloud calculators. As usage grows, typically, so does the need to add or improve existing features. With more development time, apps tend to grow in complexity and the resources and requirements to manage them effectively. This can lead to new costs that were never envisaged initially and even the need to allocate specialised expertise in the form of DevOps to maintain and manage the cloud infrastructure in line with supporting growth.
The initial first step is to allocate time and resources to monitor cloud usage proactively. This is often an afterthought and triggered only when costs become exceptionally high. As long as cloud services are operational and behaving as expected, It is easy to become oblivious to mounting costs.
Remedial strategies and actions are often deployed:
With the requirements that are better understood and a legacy footprint to help predict the future, rearchitecting and refactoring an app to use resources more effectively and dispense with cost-heavy cloud resources is a common strategy. This comes with disruption and recommitting development resources with an unclear effort vs reward at the journey's end.
Underlying the promise of the cloud is the ability to scale up to meet demand, free of the physical restrictions of owning physical hardware. This has the side effect of making it easy to grow costs - adding to the environment, introducing new technologies without understanding the implications and even bugs that lead to unwanted consumption of resources without any notable effects that are easy to miss. A common approach that seeks to prevent this is introducing gatekeeper processes or roles that introduce a secondary decision-making layer. This has a designed side effect of slowing down the develop-test-release cycle momentum by design and introducing friction into the process.
When cloud infrastructure is provisioned on a best-guess basis, it is easy to over-speculate or based on an anomaly that creates a misleading impression of resource requirements. Introducing tooling to monitor consumption proactively and zoom in on underused spending can lead to being able to scale back resources. Allocating resources to monitor usage comes with its own cost and inversely restricts the ability to handle spikes in usage with a “just enough” approach to shrink costs.
The Divio platform was conceived to automate away the complexity of the cloud and, in doing so, build intelligence into the platform.
The Divio platform is a multi-cloud platform meaning that it orchestrates multiple cloud vendors and is able to seamlessly move resources around or CloudShift, primarily to ensure redundancy and break dependencies on any single cloud vendor disruption.
When you create a new app, the Divio platform uses your preferred region to determine the best-fit infrastructure for your app based on your initial configuration. Once your app is deployed, resources can be moved across cloud vendors silently, depending on your preferences.
Multi-cloud and CloudShift are a highly effective way to mitigate cloud costs without compromising by under-provisioning.
By using a form of cloud calculator strategy applied across cloud vendors coupled with the ability to orchestrate the setup and teardown of the infrastructure, Divio can right-size applications automatically, eliminating the need for manual intervention to control costs.
Similarly, by seeing resource consumption as it happens, the Divio platform can ascertain which cloud vendor would offer the best price/performance for the app and provide the best-fit cloud vendor infrastructure accordingly.
Divio is also able to leverage the economics of scale for its users to be able to handle unexpected surges in demand. Surplus cloud resources can be temporarily allocated to specific apps to ensure they remain responsive and able to meet demand. This hybrid model of fixed resources and burstable elastic computing further helps provide a predictable cost without incurring extra costs for underused resources.
Assisting developers to identify and improve their app consumption footprint is another way to reduce costs further and encourage more efficient usage of cloud resources.
The included Metrics accompanying every app environment are an essential tool providing real-time insights into computing and memory consumption and identifying performance bottlenecks in apps.
By including metrics for each environment, it becomes possible to evaluate how code changes affect cloud resources before deploying changes to a live user-facing environment.
In practical terms, the Divo platform effectively acts as an automated DevOps partner, monitoring costs, applying cost controls, highlighting inefficiencies and adjusting cloud infrastructure accordingly, eliminating the need for manual intervention and resulting in a predictable monthly cost.
The Divio platform automates manual cost-trimming processes to harness cloud cost management, working to minimise costs through intelligently managing resources.
The Divio developer tools represent another opportunity to realise value through greater work efficiencies, providing a consistent interface for developers to control the Divio platform, which orchestrates and manages multiple cloud vendors.
By providing an interface that is cloud vendor agnostic, there is no need to learn the specifics of the infrastructure components, leading to time savings and a reduced learning curve in deploying apps.
Development environments are set up and kept consistent across teams, reducing time lost in recreating working environments. In effect, each developer has their own local cloud using a modern container-based approach.
Developers can work more efficiently and rapidly deploy apps at will to their chosen environment with significant gains in efficiency, being able to work more autonomously.
The quickest way to start realising your potential to reduce cloud costs is for Divio to run a free evaluation of your current cloud infrastructure usage and requirements.
Contact us to learn more.