11 Best Practices for Cloud Applications
2 min readOct 19, 2023
These best practices can help build reliable, scalable, and secure applications in the cloud. They offer guidelines and tips for designing and implementing efficient and robust systems, mechanisms, and approaches. The practices apply to any distributed system, whether your host is Azure or a different cloud platform.
- API design
Design web APIs to support platform independence by using standard protocols and agreed-upon data formats. Promote service evolution so that clients can discover functionality without requiring modification. Improve response times and prevent transient faults by supporting partial responses and providing ways to filter and paginate data. - API implementation
Implement web APIs to be efficient, responsive, scalable, and available. Make actions idempotent, support content negotiation, and follow the HTTP specification. Handle exceptions, and support the discovery of resources. Provide ways to handle large requests and minimize network traffic. - Autoscaling
Design apps to dynamically allocate and de-allocate resources to satisfy performance requirements and minimize costs. Take advantage of the built-in autoscaling that many cloud components offer. - Background jobs
Implement batch jobs, processing tasks, and workflows as background jobs. Use cloud platform services to host these tasks. Trigger tasks with events or schedules, and return results to calling tasks. - Caching
Improve performance by copying data to fast storage that’s close to apps. Cache data that you read often but rarely modify. Manage data expiration and concurrency. - Content delivery network
Use content delivery networks (CDNs) to efficiently deliver web content to users and reduce load on web apps. Overcome deployment, versioning, security, and resilience challenges. - Data partitioning
Partition data to improve scalability, availability, and performance, and to reduce contention and data storage costs. Use horizontal, vertical, and functional partitioning in efficient ways. - Host name preservation
Learn why it’s important to preserve the original HTTP host name between a reverse proxy and its back-end web application. - Message encoding considerations
Use asynchronous messages to exchange information between system components. Choose the payload structure, encoding format, and serialization library that work best with your data. - Monitoring and diagnostics
Track system health, usage, and performance with a monitoring and diagnostics pipeline. Turn monitoring data into alerts, reports, and triggers that help in various situations. Examples include detecting and correcting issues, spotting potential problems, meeting performance guarantees, and fulfilling auditing requirements. - Transient fault handling
Handle transient faults caused by unavailable networks or resources. Overcome challenges when developing appropriate retry strategies. Avoid duplicating layers of retry code and other anti-patterns.
Each of the practices is described in more detail on the Micrisoft Well-Architected Framework documentation. The link is below.
Source: Best practices in cloud applications — Azure Architecture Center | Microsoft Learn