← 返回技能库 /Skills by Google Cloud

google-cloud-waf-performance-optimization

>-

来源:社区 2 次浏览

Google Cloud Well-Architected Framework skill for the Performance Optimization pillar

Overview

The Performance Optimization pillar of the Google Cloud Well-Architected
Framework provides principles and recommendations to help you design, build, and
operate high-performing workloads. It focuses on efficiently allocating
resources, leveraging modular architectures, and using data-driven insights to
continuously monitor and improve performance as your business needs evolve.

Core principles

The recommendations in the performance optimization pillar of the
Well-Architected Framework are aligned with the following core principles:

  • Plan resource allocation: Carefully select and configure the compute,
    storage, and networking resources that best match the specific requirements
    of your workload. Grounding document:
    https://docs.cloud.google.com/architecture/framework/performance-optimization/plan-resource-allocation.md.txt

  • Take advantage of elasticity: Utilize automated scaling and serverless
    technologies to dynamically adjust resource capacity in response to
    real-time demand fluctuations. Grounding document:
    https://docs.cloud.google.com/architecture/framework/performance-optimization/elasticity.md.txt

  • Promote modular design: Architect systems using independent, loosely
    coupled components to enhance scalability and allow individual parts to be
    optimized without affecting the entire system. Grounding document:
    https://docs.cloud.google.com/architecture/framework/performance-optimization/promote-modular-design.md.txt

  • Continuously monitor and improve performance: Implement robust
    observability to identify bottlenecks and use performance data to drive
    iterative enhancements throughout the software development lifecycle.
    Grounding document:
    https://docs.cloud.google.com/architecture/framework/performance-optimization/continuously-monitor-and-improve-performance.md.txt

Relevant Google Cloud products

The following are examples of Google Cloud products and features that are
relevant to performance optimization:

  • Compute and scaling

    • Compute Engine (MIGs): Managed instance groups that support
      autoscaling and load balancing for VM-based workloads.
    • Google Kubernetes Engine (GKE): Provides container orchestration
      with horizontal and vertical pod autoscaling.
    • Cloud Run: A fully managed serverless platform that automatically
      scales containers to zero or up based on traffic.
  • Data and caching

    • Cloud CDN: Low-latency content delivery network to cache static and
      dynamic content closer to end-users.
    • Memorystore: Managed in-memory data store for Valkey and Redis to
      provide sub-millisecond data access.
    • Bigtable: NoSQL database service for analytical and operational
      workloads requiring low latency and high throughput.
    • Spanner: RDBMS that provides global consistency, high availability,
      and horizontal scaling for mission-critical transactional applications.
  • Performance analysis and monitoring

    • Cloud Trace: Distributed tracing system that helps identify latency
      bottlenecks.
    • Cloud Profiler: Continuous CPU and memory profiling to identify
      resource-heavy application code.
    • Cloud Monitoring: Provides dashboards and alerts based on
      performance KPIs like latency and throughput.

Workload assessment questions

Ask appropriate questions to understand the performance-related requirements and
constraints of the workload and the user's organization. Choose questions from
the following list:

  • Plan resource allocation

    • When initially provisioning compute resources for a new application,
      which approach do you use to determine the required capacity for
      expected peak loads?
    • Which caching strategies (browser, in-memory, CDN, database) do you
      utilize to improve performance and responsiveness?
    • How do you optimize the performance of your data storage solutions
      (e.g., SSD vs HDD, storage classes) for your applications?
  • Promote modular design

    • Which architectural patterns (microservices, asynchronous messaging,
      stateless servers) do you employ to enhance performance and resilience?
    • How do you design your application to minimize the impact of failures in
      one part of the system on other parts?
  • Continuously monitor and improve performance

    • How frequently do you review and analyze the performance of your
      production applications and infrastructure?
    • Which tools or techniques (APM, distributed tracing, load testing) do
      you use to proactively identify and diagnose performance bottlenecks?
    • How do you incorporate performance considerations into your software
      development lifecycle (SDLC)?
  • Take advantage of elasticity

    • Which methods do you use to manage and optimize the cost of your cloud
      resources while maintaining performance?
    • How do you typically handle sudden spikes in traffic or workload on your
      applications?

Validation checklist

Use the following checklist to evaluate the architecture's alignment with
performance optimization recommendations:

  • Resource allocation

    • [ ] Initial provisioning is based on load testing or historical data
      rather than general estimates.
    • [ ] Caching is implemented at multiple layers (CDN, in-memory, or
      browser) to offload backend systems.
    • [ ] Storage types (SSD/HDD) and classes are selected based on the
      specific I/O requirements of the workload.
  • Modular design

    • [ ] The architecture uses microservices or decoupled components to allow
      independent scaling.
    • [ ] Circuit breakers or bulkheads are implemented to isolate failures
      and prevent performance degradation across the system.
  • Monitoring and continuous improvement

    • [ ] Automated dashboards and alerts are configured for key performance
      indicators (KPIs).
    • [ ] Distributed tracing and profiling tools are used to identify
      code-level bottlenecks.
    • [ ] Performance testing (unit and integration) is integrated into the
      software development lifecycle.
  • Elasticity

    • [ ] Auto-scaling rules are configured and validated to handle variable
      demand.
    • [ ] The architecture leverages serverless or managed services to
      dynamically match capacity to load.
    • [ ] Resource utilization is reviewed regularly to eliminate idle
      overhead and balance cost with performance.