Edit

Share via


Performance Efficiency maturity model

Performance Efficiency is about maintaining user experience even when there's an increase in load by managing capacity. The strategy includes scaling resources, identifying and optimizing potential bottlenecks, and optimizing for peak performance.

This maturity model guides you through a strategic journey of performance optimization by scaling resources, identifying and optimizing potential bottlenecks, and optimizing for peak performance.

You'll start by selecting the right components and establishing performance targets, then progress to measuring and monitoring your workload's behavior. As you mature, you'll incorporate real user feedback to refine your approach, leverage production insights for targeted improvements, and ultimately achieve advanced optimization through experimentation and automation. Each stage builds upon the previous one, transforming your performance strategy from reactive troubleshooting to proactive efficiency engineering.

The model is structured into five distinct maturity levels, each with a primary goal and a set of core strategies. Use the tabbed views below to explore each level. Be sure to also review the highlighted tradeoffs and associated risks as you progress.

Goal icon Establish clear performance expectations and select appropriately sized components that align with your requirements.

Level 1 of the maturity model focuses on gathering performance expectations and choosing cloud services that help you meet those expectations. At this level, you investigate those resources and components to find the best fit. Prioritize services that provide only the necessary performance capabilities. This approach helps control costs and maintains your development speed.

Key strategies

✓ Gather requirements and define workload performance targets

Work with stakeholders to understand general expectations for workload performance. These expectations might include targets for page loading times for web apps or response times for interactive systems. At this stage of workload development, treat these targets as guidelines rather than hard requirements because your focus isn't on measuring performance metrics yet. After you gather workload expectations, begin investigating the types of resources that might suit your workload.

✓ Choose appropriate networking resources

Assess your network needs to determine appropriate services and configurations for your workload. Consider network traffic, bandwidth, latency, and throughput to ensure that the network supports your workload effectively. Use private virtual networks and backbone networks to reduce latency.

Ensure even distribution of network traffic to prevent server overload and reduce response times. Assess different load balancing services that your cloud provider offers. Consider traffic type, global or regional routing, service-level objectives, and specific features like site acceleration and low-latency load balancing.

Risk: Take time to fully investigate and understand the different options for foundational networking. Later changes in this area might require a full redesign and redeployment.

✓ Choose appropriate compute resources

Assess your workload's compute needs, including instance type, scalability, and service tiers. Consider containerization to achieve performance gains through isolation, resource efficiency, fast startup times, and portability.

Choose a compute service that can meet your needs, while allowing you to easily scale as your workload evolves. Building your workload is an iterative process. You can start small by using less-performant SKUs and fewer instances. Upgrade these components later in the workload's lifecycle.

Trade-off: Weigh your immediate needs against your budget. Look for opportunities to shut down or deallocate compute resources when they're not in use.

✓ Choose appropriate data store services

Determine your workload's needs for storing, retrieving, and managing data. Consider characteristics like:

  • Data types: What types of data do you expect your workload to ingest, process, or store?

  • Volume: How much data do you expect to ingest, process, or store?

  • Transaction throughput: What are the performance requirements for accessing different data types?

  • Consistency: What are your targets for data consistency across data types?

  • Durability: What are your targets for data durability across data types?

  • Access patterns: What types of access patterns does your workload need to support? For example, for a particular component you might need to perform several writes, but few reads. For another component, you might need to do the opposite.

Based on the answers to these questions, choose the best data service for each of your workload's use cases.

Because of the wide variety of options for data services in cloud environments, you can tailor your design to use different services to best match the functionality of each component in your workload. This approach helps you optimize the performance of each component.

Trade-off: Don't overengineer your data components by choosing different data services for components that you can consolidate into a single data store. Strike a balance between performance versus cost and complexity.

Next steps