How Tracking and Billing Can Make Your OpenStack Cloud Better
[Editor's Note: The following is a guest post from John Meadows of Talligent, makers of the OpenBook billing solution for OpenStack. Interesting in contributing a guest post? Contact Nick Chase.]
This blog post is focused on best practices to drive improved utilization in your OpenStack cloud. Productivity of OpenStack deployments can be limited due to 1) a lack of controls and automation leading to inefficient use of resources; and 2) poor visibility into key metrics, leading to planning difficulties. Self-service automation, reporting, and billing are three key steps to improving productivity and managing a cost competitive OpenStack cloud.
If You Cannot Measure it, You Cannot Manage it
Providing on-demand services using OpenStack is a tricky balancing act. On the one hand, customers have come to expect IT services to be instantly and automatically provisioned (given their experience with AWS and the like). On the other, IT managers must maintain high efficiency to stay competitive with public cloud offerings. Staffing up with OpenStack experts to manually respond to user requests adds to the overall cloud cost, while diminishing competitiveness and responsiveness. High efficiency and on-demand flexibility are negatively correlated. A successful cloud solution has to balance high resource utilization with the needs of customers for responsiveness and on-demand capacity.
As the saying goes, “If you cannot measure it, you cannot manage it”. The OpenStack platform has its own metering-related project, OpenStack Telemetry (Ceilometer), but it has limited native capabilities for reporting on utilization, billing/chargeback, historical record keeping, and financial planning. IT admins have to otherwise rely on a disaggregated set of data points, queries, spreadsheets, and point in time resource reports.
The Path to a Business-Ready Cloud©
So, what processes and controls are required for launching an efficient on-demand cloud? Our customers have found success with these common steps:
- Automate customer self-service
- Schedule reporting of key performance metrics
- Implement relevant billing (or in the case of an enterprise, chargeback or showback-type cost accounting).
Automate Customer self-service
Self-service automation eliminates the need to staff up to manually user change requests. At a minimum, a typical self-service implementation includes a customer portal for viewing charges, tiers, quotas and provisioned resources, Keystone integration for project level user administration, and workflow to route quota requests for manager approval (as appropriate).
With customer self-service and automatic provisioning of resources, an OpenStack Cloud functions in a manner similar to a public cloud. Customer expectations are brought in line, responsiveness goes up, provisioning SLAs are improved, and staffing requirements go down. Plus, efficiency will improve as users better understand how they are charged and what levers they have to scale up and down according to their project requirements and available budget. Likewise, quotas can be tightened if users can more easily adjust as project needs change.
Schedule Reporting of Key Performance Metrics
Who are your biggest tenants? What types of workloads are being deployed? Is your cloud meeting your SLAs? Reporting of KPIs is key for managers at all levels to make intelligent decisions about the growth of the cloud, such as how and when to add resources, create new services, change prices, and push to migrate new workloads. OpenStack Ceilometer provides for short-term collection of detailed metering data, but it is not a long term historical system of record and does not provide the reporting visibility for these types of decisions.
Detailed reporting of tenant workloads can help managers better balance those workloads and plan for growth. Certain applications or workloads might make better economic sense when deployed to a third-party cloud. Purchasing additional capacity for infrequent seasonal workloads can be expensive and drag overall utilization down. Compute nodes added for peak workloads that might run 5% of the time are your most expensive cloud resource, because they do not get amortized by running at peak utilization.
Implement Relevant Billing
Public clouds require a robust billing solution to monetize investments in clouds. Chargeback is the mechanism for allocating private cloud resources. Automated provisioning without billing or chargeback can result in demand that can quickly outstrip available resources, resulting in a tragedy of the commons. Free, easy to provision resources can be quickly depleted, to the point that IT management has to add additional hardware well beyond what was budgeted, or suffer from low quality of service.
The billing solution must be flexible such that service providers can quickly adapt to changing competitive offerings and customer requirements. Customer needs are evolving at a tremendous rate; you need a solution that doesn’t lock you into predefined configurations or limit the types of billable elements. Key questions to consider include: How do you want to promote new cloud offerings? What about discounts, promotional pricing, prepaid cost savings? Do you offer cloud solutions in different currencies or have to track local tax rates?
For private clouds, chargeback can be politically challenging – it requires buy-in from executive management and it also requires accurate tracking of metrics for individual projects, business units, or geographies. A softer approach is to start with a showback report to identify how resources are consumed across multiple tenants and projects. IT customers will start to understand their impact on the environment, while management has the time to put budgets in place for future chargeback.
The Ultimate Goal
Customers should have the opportunity to proactively manage their resources so as to not be penalized with overages at the end of the month. This includes providing a mechanism for customers to view their accrued charges during a partial billing cycle and be alerted when thresholds are met, setting clear quotas and limits, and allowing customers to adjust resource requirements accordingly.All of this requires software that gives the visibility and control necessary to maintain high operational efficiency, as well as the billing flexibility to keep up with ever-changing customer requirements and market conditions.
OpenBook enables you to easily create granular rate plans for various tenant personas, usage patterns, and multi-level cloud resellers. Customers can drill down to understand their consumption metrics and can change their IT resources as needed (within the limits of your terms and conditions). OpenBook integrates with the Horizon and Keystone components of the OpenStack platform to enable user self-service management of cloud resources.