Performance optimisation is not a one-time activity. It is an ongoing operational discipline that requires continuous measurement, structured investigation, and the willingness to act on what the data shows. In multi-cloud environments, the challenge is that the data is often split across two providers' native monitoring tools, making unified analysis difficult and cross-provider debugging slow. The teams that handle this well are the ones that have invested in a unified observability layer that spans both clouds and treats performance as a continuous concern rather than an incident-driven one.
Start with Application Performance Monitoring (APM)
APM is the foundation of performance observability. It instruments your application at the code level - tracing requests as they flow through services, measuring latency at each step, and capturing errors alongside performance data. Without APM, a performance investigation starts with "something is slow" and no easy way to identify where the slowness originates. With APM, you can trace a slow request to the specific service call, database query, or external API call responsible, and see that trace alongside the infrastructure context (CPU, memory, network) of the host that was processing it.
Datadog APM provides distributed tracing across both AWS and Azure environments using the same instrumentation libraries and the same UI, which makes cross-cloud performance investigation coherent rather than requiring engineers to switch between two systems. Setting up APM is the single highest-leverage performance instrumentation investment for most organisations.
Define SLOs before you optimise
Performance optimisation without Service Level Objectives (SLOs) is optimising in the dark. SLOs define what "good performance" means for your service: a latency target at a given percentile (e.g. 99th percentile API latency below 500ms), an availability target (e.g. 99.9% over a rolling 30-day window), or an error rate target. Without these, every performance conversation is qualitative and every optimisation decision is contested.
Define SLOs for your most critical user-facing services first. Track them continuously in your observability platform. Alert when error budget consumption accelerates, not just when you breach the target. Error budget consumption rate is a leading indicator: if you are consuming your 30-day error budget in the first week, you need to act before the target is breached.
Database performance is usually the bottleneck
In our experience operating cloud environments, database performance is the most common source of application latency that is not infrastructure-related. Slow queries, missing indices, connection pool exhaustion, and lock contention all present as application latency and are not immediately visible without database-level observability.
Instrument your databases as part of your observability setup, not as an afterthought. Datadog Database Monitoring provides query-level visibility for PostgreSQL, MySQL, SQL Server, and managed equivalents on both AWS (RDS, Aurora) and Azure (Azure Database). Query-level performance data in the same platform as APM traces means you can move directly from "this endpoint is slow" to "this specific query in this execution plan is slow" without switching tools or losing context.
Synthetic monitoring for proactive detection
Infrastructure and APM metrics tell you what is happening now. Synthetic monitoring tells you what your users experience whether or not they are actively using your service. Synthetic tests - scripted user journeys that run on a schedule and alert when they fail or degrade - provide proactive visibility into user experience quality, not just reactive visibility when something breaks badly enough for users to report it.
In multi-cloud environments, synthetic tests from multiple geographic locations are particularly valuable for identifying performance degradation that is regional (a cloud region degrading) or user-facing (slow load times from a specific location) rather than environment-wide. Set up synthetic tests for your critical user journeys, run them every few minutes, and alert on both failure and on latency degradation beyond a defined threshold.
Rightsizing for performance, not just cost
Rightsizing is usually discussed as a cost optimisation measure, but it is also a performance concern. Over-provisioned instances have excess capacity that provides a buffer during demand spikes. Under-provisioned instances are cost-efficient until a demand event tips them into saturation, at which point performance degrades sharply. Finding the right balance requires ongoing visibility into utilisation patterns at the instance level across both clouds, not just at the account level.
Pay particular attention to memory utilisation alongside CPU. Cloud instance types have fixed memory-to-CPU ratios, and a workload that is memory-bound but running on a compute-optimised instance type will show normal CPU utilisation but degraded performance. Memory pressure is one of the most commonly missed performance root causes in environments that track CPU but not memory.
Network latency in multi-cloud architectures
Cross-cloud network latency is a real consideration for architectures where services in AWS need to communicate with services in Azure or vice versa. This inter-cloud traffic goes over the public internet (or private interconnects if you have invested in them) and has higher and more variable latency than intra-cloud traffic.
Instrument cross-cloud service calls as explicitly as any other service dependency in your APM traces. Latency that appears to originate in one service may actually originate in the network path to a dependency hosted on the other cloud. Without this visibility, investigations tend to focus on the wrong layer of the stack.
Log volume and its performance implications
High log volume is not just a cost issue; it is a performance issue. Applications that are logging at debug level in production, or that are logging high-cardinality data for every request, introduce I/O overhead that affects request latency under load. Log shipping to a remote aggregation platform adds further latency if the shipping pipeline is synchronous with request handling.
We have achieved 77% reductions in log volume in environments where logging was not systematically managed, without meaningful loss of observability. The performance benefit from reduced logging overhead is a secondary gain alongside the cost reduction. Review your logging configuration as part of performance optimisation, not just as part of cost management.
The operational principle
Performance optimisation in multi-cloud environments is a continuous process, not a project with an end date. The environments that perform best over time are the ones that have unified observability across both clouds, defined SLOs that provide a clear standard for "good enough," and an operational rhythm that includes regular performance review alongside reliability and cost. At Critical Cloud, this is part of what we deliver through our Critical Support managed service, backed by Datadog as the observability substrate across every environment we operate.