Using suitable services, resources, and configurations for workloads is critical to reduce waste and save costs. When considering using resources of public clouds, there are several different approaches:
- Appropriate provisioning
- Purchasing options
- Geographic selection
- Managed services
- Optimize data transfer
First, use consulting companies and solution architects afforded by cloud providers and their partners to help choose an architecture based on industry best practices. Second, use data obtained through benchmarking or load testing to optimize the design of planned architecture. After identifying the architectural approach, use a data-driven process to refine the selection of resource types and configuration options to achieve the best outcome. For best practices on how to do this, see the review section of the performance efficiency article.
In general, when using managed services, the vendor provisions and manages the underlying resources. Typically, managed services have configurable attributes to ensure sufficient capacity to meet any requirements placed upon them. Devek helps define and set in place monitor systems for these attributes to keep excess capacity to a minimum and maximize performance for end-users.
It is possible to use Devek to create and set up automation that will modify the attributes of cloud-managed services and better align resource needs with changing demand. For example, increasing or decreasing the number of servers in a Hadoop MapReduce cluster to scale out or in.
It is also possible to pack multiple resources to enable higher density usage. For example, using multiple small databases or tables in a single, larger, managed database server. As usage grows, one of the databases is migrated to a dedicated, large database server using Devek to automate the snapshot and restore process.
Provisioning systems on managed services mandates understanding the requirements of adjusting the service capacity. These requirements are typically time, effort, and any impact on the usual system operation. If the time to adjust is expected to be longer, consider over-provisioning just a bit to allow for growth. Reduce the ongoing effort required to modify services to virtually zero by using Devek to automate the API’s that are integrated with system and monitoring tools. It may be needed to add additional capacity during system maintenance windows.
Right-sizing is using the lowest cost resource that still meets the technical specifications of a specific workload. Devek helps with iterative right-sizing by adjusting the size and quantity of resources to help see optimized cost. Right-sizing activities take into account all of the resources of a system and all of the attributes of each resource. Right-sizing is affected over time by changes in usage patterns and external factors like vendor price drops or availability of new cloud resource types.
Devek provides the controls that allow resources to be modified as demands change. For example, performing a change of instance size or type for cloud compute instances. Or attached storage volumes changed to a different size, or a different performance level where available, which offers higher performance through increased input/output operations per second (IOPS) and throughput or reduces cost by changing the type of volume.
Monitor resources and alarms to provide the data for right-sizing. Use monitoring to provide triggers for the next right-sizing cycle. Logs allow analyzing of resources, where custom metrics from any component of the system is captured and utilized to perform right-sizing analysis. Identifying resources with low utilization using different metrics points to right-sizing candidates. For example, monitoring and analyzing memory utilization, network bandwidth, and system connections.
Keep in mind three key considerations when performing right-sizing exercises:
Monitoring must accurately reflect the end-user experience. Select the correct granularity for the time period and thoughtfully choose the maximum or 99th percentile instead of the average.
Select the correct granularity for the time period of analysis that is required to cover any system cycles. For example, if a two-week analysis is performed, it might be overlooking a monthly cycle of high utilization, which could lead to under-provisioning.
Assess the cost of modification against the benefit of right-sizing. For example, take into account business costs associated with making the change, like manual system testing and verification. This cost/benefit analysis is helpful when prioritizing which resources to target first, based on benefit and level of effort.
With most cloud offerings there are a number of different purchasing models that allow use of services and resources in the most cost-effective way that best suits the business needs.
- On-demand Instances
- Preemtive (Spot) Instances
- Reserved Instances/Capacity
When using compute resources or managed databases on-demand, cloud providers allow payment of a flat hourly rate, and have no long-term commitments. The capacity of resources or services is increased or decreased based on the demands of the application. With on-demand pricing, the cost is only the specified hourly rate for usage. On-demand is recommended for applications with short-term workloads (e.g. a four-month project) that spike periodically, or unpredictable workloads that cannot be interrupted. On-demand is also suitable for development or test environments and workloads.
Preeemtive (Spot) Instances
Preemptive Instances allow the use of spare compute capacity at a significantly lower cost than on-demand instances. While such instances might possibly be interrupted with a small warning, these are ideal for batch processing use cases, scientific research, image or video processing, financial analysis, and testing. In addition to reducing the cost of running applications, preemptive instances increase computing scale and throughput for the same budget or at a much lower price than regular on-demand instances.
When requesting Spot Instances by default, the maximum price by default is the on-demand price, or choose to set a custom maximum price. When the maximum price meets or exceeds the current Spot price, the instance request is fulfilled, and the instances will run until terminated. If the current Spot price rises above the maximum price, the instance is gracefully stopped or placed into hibernation, and the capacity is reclaimed by the cloud provider. When the current price falls back below the maximum and capacity is available, the instances will be resumed from their former state to continue their work.
If the instance is due to be reclaimed, there is a termination notice warning. The application will use this time to save its state, upload final log files, or remove itself from a load balancer.
Consider these three vital things when using Spot Instances:
Flexibility in both the family and size of the instance type will provide the lowest possible cost and the smallest chance of interruption of the workload.
Available capacity varies by Availability Zone. Being flexible on where the workload runs allows seeking the lowest cost and lowest chance of interruption.
Design for continuity
Design the workload to accommodate a potential interruption by frequently saving any state, using hibernate or shutdown, and gracefully handling termination notices.
Block volumes attached to stopped instances remain intact, as does the root volume. When capacity becomes available, the instances are started and keep going without having to spend time provisioning applications, setting up block volumes, downloading data, etc.
Cloud providers allow for a number of ways to reduce cost by reserving or committing to using a certain amount of resources. For example, using Reserved Instances supported by many computer and database services. With Reserved Instances, commit to a period of usage (a year or more) and save up to 75% over equivalent On-Demand hourly rates. When Reserved Instances are assigned to a specified Availability Zone, they also provide capacity reservation so that is it possible to launch the number of instances needed. For applications that have steady-state or predictable usage, Reserved Instances provide significant savings compared to using On-Demand Instances, without requiring any changes to the workload.
Reduced latency is a crucial factor in improving the usage of e-commerce or other websites. When architecting solutions, the best practice is to seek to place where computing resources are closer to users to provide lower latency and strong data sovereignty. For global audiences, use multiple locations to meet these needs. In addition, select the geographic area that minimizes cost.
Cloud infrastructure is built around Regions and Availability Zones. A Region is a physical location in the world that includes multiple Availability Zones. Availability Zones consist of one or more discrete data centers, each with redundant power, networking, and connectivity, housed in separate facilities. Each such region operates within local market conditions, and resource pricing is different in each region. Choose a specific region to operate a component of, or the entire solution, so that it is run at the lowest possible price globally.
Using Devek, it is possible to estimate the cost to architect the solution in various regions around the world and compare the price of each. Use Devek to provision a proof of concept environment in different regions, run workloads through the environments, and analyze the exact and complete system costs in each Region.
Cloud managed services remove the burden of the undifferentiated heavy lifting required to maintain a service, which allows a focus on innovating rather than keeping the lights on. By using these managed services, it is possible to reduce or remove much of the administrative and operational overhead, freeing developers to work on value-adding activities. Additionally, because managed cloud services operate at cloud scale, they offer a lower cost per transaction or service.
Cloud providers offer managed services for databases, application-level services, and more. These various services remove the need to manage virtual servers for code execution, queuing services, and message delivery.
Use managed services to reduce the cost of managing infrastructure, but also consider the time savings that will allow the development team to focus on retiring technical debt, innovation, and value-adding features. For example, it enables the
lift and shift of an on-premises environment to the cloud as rapidly as possible and optimizing later. Finally, it’s worth exploring the savings realized by using managed services that remove or reduce license costs.
Optimize Data Transfer
Architecting for data transfer ensures the minimization of data transfer costs. This may involve using content delivery networks to locate data closer to users, or using dedicated network links from the on-premises data centers to the cloud.
Using a global CDN to deliver data with low latency and high transfer speed allows reduction of the administrative effort in delivering content to large numbers of users globally, with minimum latency.
Join Devek in reducing Cloud complexity
Looking to reduce complexity of cloud infrastructure? Look no further, we are here to make it happen!
Please leave some details and we will get back to you when Devek is available for trying out.