By Alex Bewley, CTO at uptime software (also uptime cloud)
The ultimate goal of deploying application or dynamic infrastructure to the cloud is the truly agile and cost-competitive nature of running and managing applications and infrastructure. However, cost can increase exponentially without proper cloud monitoring and cloud cost modeling. It has become crucial for IT to tie cloud success to cost analysis, in addition to overall system performance. In this article, I’ll cover some common pitfalls and pains around current gaps in cloud costing and deployment, as well as a key set of questions to help IT make smart cloud decisions.
Up to now, the success of applications in cloud, virtual and physical environments have usually been viewed in only two dimensions – availability and performance. However, a key new dimension is cost, and it’s cost that will dramatically influence what, when and where IT organizations deploy to the cloud. Presently, there are no cloud monitoring tools that can help IT and LOBs monitor their cloud costs, predict workload/application cost, notify when costs are escalating, while providing deep cloud capacity management. However, we do see this tooling issue changing in the near future.
To date, companies have been oblivious to the workload cost of an application running in the cloud, apart from unclear monthly billing. We are entering a new era where performance and availability will be baseline requirements, but workload cost efficiency will be the new key to success. This will be the age of ‘economic compute’ and will be defined by how and where companies can run workloads at the best cost (assuming performance and availability remain constant). It won’t matter if it’s internally run on physical or virtual servers, or in the cloud, as the economics will drive this decision. However, the lynch pin to this costing decision model is missing and that is, how do we monitor and meter cloud costs in real-time?
To responsibly manage IT budgets with cloud deployments, companies need visibility to the cost and performance data of workloads, applications and dynamic infrastructure services. However, the industry is missing a complete toolset or product suite that can help IT easily see and predict the cost of cloud deployment. Applications and services can be deployed on cloud infrastructure (assuming it returns acceptable performance and availability), but it’s essential for IT to have clear visibility to what the workloads will cost comparatively, across different cloud vendors or even the cost of an internally run workload. How can IT make a cost-conscious decision without the basic cost data of an application, workload or service? Quite simply, it can’t. This is where the idea of the economic cloud comes into play:
Example #1 – Dynamic Infrastructure Services:
- Ensure IT Doesn’t Overpay: A company may have provisioned a $500 per month system, but if its CPU is only consumed 10 percent of the time, then one is largely over paying. Now scale that scenario out to a company that is running many services, applications and servers in the cloud.
- Companies with Many Separate Cloud Accounts: For IT managers trying to understand the cumulative costs of many developers or departments (LOBs) with cloud accounts, it can be almost impossible, with no clear means of reconciling usage (until it’s too late).
- Manage Cost Across Geographically Dynamic Workloads: For more advanced scenarios, there are now a number of services that allow the creation of cloud instances in specific geographic regions, which enables a new generation of smartphone or mobile applications to exist. There are millions of smartphone users in the world in non-North American geographies, such as Latin America. Now, imagine if you could dynamically and geographically provision cloud resources that are compute heavy, or can service the requests of these remote smartphone clients, in a cost effective manner. This reduces bandwidth requirements, increases the response time and can be done on cheaper, temporarily available compute resources. This kind of dynamism is incredibly powerful, yet monitoring the changing costs and performance of these cloud resources is going to be a difficult problem to solve.
Example #2 – Applications in the Cloud:
- See Cloud Cost: IT needs to see a clear monthly workload cost of their entire Amazon AWS deployment (by server, application or service) before they get the bill. For those companies that have deployed in AWS, the anxiousness and pain associated with the monthly AWS bill can be quite frustrating. Seeing an accurate monthly bill forecast immediately when you make changes to your cloud deployments will remove risk and provide much needed cloud cost certainty.
- Predict Cloud Cost: Reports are needed that can estimate or predict the cost of running an application or service in AWS before it’s deployed. Predicting cloud cost based on individual workloads, applications or services is essential.
- Identify Cloud Ready Applications: Reporting that can show which workloads are prime candidates for cloud deployment would be extremely helpful to IT departments wrestling with how to use cloud most effectively.
Example #3 – Development and Testing in the Cloud: Although spinning up new test and development environments in the cloud improves agility, the essential questions to ask are:
- Internal or Cloud: Is it more cost-effective to host the application or service internally or in the cloud? Can IT prove its decision?
- Which Cloud is Best: Which cloud vendor should be chosen? What is an easy way to see a cost comparison for the different vendors, based on your workload?
- How Much will it Cost: How much will this service/workload cost month over month?
- Failsafe Cloud Alerting and Reports: Additionally, the added problem of developers forgetting to de-commission cloud infrastructure and services drives major cost overruns. Proper notification of these ‘cloud zombies’ is essential to prevent large bills over time. While services like Amazon’s AWS are an incredible boon to being able to create development and test environments in a few clicks, there are latent costs which aren’t always readily apparent. For example, stopped instances still consume storage resources (and cost), snapshots linger even when volumes are deleted (and add more cost), just to name a few. IT needs better visibility.
As stated earlier, there are no tools that can help IT (or LOBs) model the cost of their cloud needs, predict their workload costs or notify when costs are escalating. However, there are tools coming in the future.
The most fundamental aspect of optimizing cloud deployments is to understand the relationship between application/infrastructure capacity and cost. Presently, the industry is just beginning to understand how to monitor the performance of applications in the cloud, yet it lacks a cloud-costing dashboard necessary for IT managers to make smart budget related decisions. How can organizations understand the cost of cloud computing without a deeper level of visibility? It has become crucial for IT to tie cloud success to cost analysis, as well as overall system performance.
So the question is…to Cloud or not to Cloud? How will you tie your cloud decisions to cost for justification to senior management? Or will you just deploy and cross your fingers?
This guest article is written by Alex Bewley, CTO at uptime software.
Alex is passionate about bridging the gap between business value and cutting edge technology. A technologist (B.Sc.H in Computer Science, Queen’s University) by trade, Alex’s 17-year long tour of duty included time with Sun Microsystems in their heyday. However, Alex craved a more entrepreneurial muse, and founded uptime software (with co-founder Phil Didaskalou) in 2001. When not behind his desk, Alex is either knee deep with the Toronto tech startup community or is on his iPad dreaming of new ways to simplify systems management. Outside the office walls, Alex morphs into a Cessna pilot, a budding world traveler, a dedicated tri-athlete, a wanna-be yoga guru, or a Costa Rican surfer, just to name a few. His mantra for product design is simple: to strive for the most efficient and elegant solution that seamlessly combines effectiveness, value, and beauty.