Performance efficiency means using cloud resources efficiently so that your workload meets the user's performance demands and scales when required. Since demand can change over time, architectural design decisions should allow the flexibility to incorporate new services that can increase performance efficiency.
Compared to on-premises environments, cloud environments should adapt to increased demands in an elastic manner and with limited human intervention, but this requires the solution has been architected for the cloud. This article describes a number of areas and recommendations related to performance efficiency that you should consider when moving workload to the cloud.
- Implement Services that best meet your architectural and business requirements
- Take advantage of new cloud services when appropriate
- Enable you to be Cost effective - Leverage platform services, ie. Budgets, Cost-tracking tags to provide visibility into cost and spending
- Apply scalable design patterns that avoid scalability problems when demand grows or business requirements evolve
- Enable data driven decisions - Collecting and utilizing metrics to drive scalability and optimization
- Know your workload. Having a good understanding of your workload, new or on-premise is crucial when making design decisions.
- Evaluate Cloud Services in the context of your requirements. Understand what cloud services best support your Architecture and current business requirements
- Become Data-driven. Todays Cloud platforms can provide a large amount of metrics that can be used to drive decisions and provide very detailed insight in your workload performance
- Anticipate growth. Over time your workload may grow or expand into additional geographical areas. Ensure your architecture and selected services will support your business growth
- Understand and optimize your spending. The Cloud allows for rapid provisioning of services and having visibility into the associated costs and how to optimize them is important when your workload increases.
Know Your Workload
Understanding your current running workload or the business requirements for your planned workload will help you make the best decision how to leverage cloud resources to attain highly-efficient performance and optimize your costs.
If your workload today is based on commercial-off-the-shelf (COTS) software packages, then migrating it to the cloud might introduce a number of constraints and limit your uptake of cloud features, such as specific OS version requirements, limited scale-out options, or shared file system requirements. You can still incorporate performance efficiency measures but you might need to compromise in certain areas.
In the case of hybrid deployment, you will need to consider your dependencies and evaluate whether a bottleneck might exist when workload demand increases or if other workloads and processes must compete for shared resources. Network bandwidth and latency are often areas to investigate as they can severely impact on workload performance.
Understanding your existing workload also means understanding the building blocks of the solution and what each part does. You need this knowledge when evaluating what cloud resources to use when migrating the workload. Maybe some existing functionality can be replaced by a managed service and eliminate the need for you to managed it yourself.
Having access to existing performance goals and metrics and also running a series of benchmarks against your current workload will provide valuable information and metrics you can use to drive architectural decisions.
Evaluate Cloud Services in the Context of Your Requirements
Evaluate what cloud services best support your workload and current business requirements.
Learn about and understand the wide range of services and resources available in the cloud. Identify the relevant services and configuration options for your workload and understand how they can support your requirements.
If you are migrating an existing workload, you can map existing resources and components to cloud-equivalent services. However, be sure to evaluate whether or not you can update your architecture to use other cloud services that might provide performance, cost, or manageability benefits. When planning a migration, you should consider if your current workload is architected for the cloud.
Sometimes fully-managed cloud services can seem more expensive but, when taking the reduction in operation workload into account, this calculation might change, which you should consider when making architectural decisions.
Data and metrics are a key part of every cloud workload and defining key performance indicators is an important part of the overall design process.
- Drive design decisions.
- Optimize your workload.
- Highlight scalability problems.
- Identify release related issues.
- Provide insight into end user interaction.
- Show how cost effective your workload is.
- Reveal trends and seasonality and project demand.
- Trigger automated tasks, like alarms, scaling, or remediation actions.
The cloud allows you to start small and grow when you need to meet demand or expand into new regions.
Depending on your workload, you need to consider how you can scale and if you are using the right services and patterns to support scaling. Evaluate each layer and component of your application to understand the scaling characteristics.
Leveraging managed PaaS services can provide features, such as automatic scaling of resources, and minimize the need for scripting or human intervention.
Use load tests to determine how your application scales and whether certain components become hotspots during testing.
You should also consider whether tenancy service limits or quota policies could have a limiting effect in a scaling scenario. In a tenancy that contains both production workload and other, non-production workloads you need to ensure that policies and safeguards are in place to allow successful scaling for production resources.
Use existing historical workload metrics to learn the nature of your workload demand and whether or not it's predictable.
Understand and Optimize Your Spending
The cloud cost model is very different than on-premises implementations. It allows you to take a right-size approach and not have to work with long-term resource requirement predictions that often result in you paying for idle resources.
Learn about the Cloud Cost model
Understand how different resources have different billing and usage characteristics so you can optimize your spending at an organizational level.
- Introduce Cost Governance
Define policies and process that ensure different teams follow the same approach, allowing for a unified way to evaluate costs.
- Measure your efficiency
Have a data-driven approach so you can measure your workload in terms of business value as well as the associated cost of resources used. This allows you to understand how efficiently you are using resources while meeting business goals and identifying areas of improvement.
- Leverage cloud services and features
Automation and managed services can reduce the overall cost of running your workload as they reduce the amount of staff time spent building out or maintaining environments, updating operating systems, or tuning databases and not adding business value.
- Requirements should drive usage
Based on your business requirements, define when and how you'll need resources and whether they should be available 24/7. This differs from the on-premises world because, in the cloud, resources can be scaled, stopped, or deprovisioned as needed, which significantly impacts the resulting cost.