Sound familiar? Departments within an organization with conflicting objectives? Engineering wants to develop the next best application. DevOps wants efficiency without interruption. And, finance is looking for the cost-effectiveness of the latest release. To make matters worse, you’re having a real challenge trying to pull together all of the relevant data to get a complete picture of the resources and their for your hot new app.
So, how do you level the playing field and resolve tension between cost efficiency and risk mitigation?
This blog is the first in a three part series designed to provide a recipe for rightsizing success and give you best practices for increasing the optimization of workloads and infrastructure.
The first thing you need is a consolidated view of your infrastructure to give you visibility across cost, usage, and performance of your resources. You also need to be able to identify your resources in some way. Using descriptive tags for categorization will get you partially there when pulling all of your data together. But you will also need the ability to categorize by means other than tags. A common practice is to use third-party provisioning tools like Chef or Ansible. These have the side benefit of also providing performance metrics that are critical for rightsizing.
Using a platform like CloudHealth, which also provides an agent for performance metrics, will simplify the consolidation process. This cloud service management platform enables you to pull together disparate data streams into one place for an aggregated view of your infrastructure so that you can organize it and evaluate resources specifically related to your app.
Now that you have a consolidated view, you need to make a decision. How would you like to define/group/categorize your resources? Do you want to evaluate instances and their performance used by each developer? Or, would you like to know the cost of resources launched by each department so your accountants can chargeback the cost and forecast a precise project budget?
Your evaluation process relies on your ability to “slice-and-dice” aggregated data in ways that align with your business for proper analysis it and informed decisions.
A best practice for infrastructure evaluation is to group servers and workloads by a naming convention similar to the following: Application (the name of my App), Function (purpose of the resources) and Environment (where that resource will be hosted). If all provisioning activities are within AWS, you can easily group resources by tags and/or metadata for your naming convention.
For those using a provisioning tool like Chef, you can employ scripts to provision and tag a cluster of instances to simplify the process. You can also create a Function category and subsequent groups by pulling data from a Chef Runlist to see what databases, servers and other AWS services are utilized for each particular function. Additionally, you can use Chef environment tags to group data by where specific pieces of infrastructure live (e.g. production, development, or staging). You’ve now consolidated what can sometimes be a chaotic cloud environment and segmented resources by pre-defined evaluation criteria.
In our next blog post we’ll continue the discussion on our recipe for rightsizing success with best practices for analyzing and optimizing your infrastructure. We’ll help you bridge the gap in discussions with engineering, operations and finance and put you in the drivers seat.