* Fatih: Add Cloud Design Patterns instructions for distributed systems architecture * Convert Cloud Design Patterns from instruction to skill * Update skills/cloud-design-patterns/SKILL.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update skills/cloud-design-patterns/references/reliability-resilience.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
3.2 KiB
Deployment & Operational Patterns
Compute Resource Consolidation Pattern
Problem: Multiple tasks consume resources inefficiently when isolated.
Solution: Consolidate multiple tasks or operations into a single computational unit.
When to Use:
- Reducing infrastructure costs
- Improving resource utilization
- Simplifying deployment and management
Implementation Considerations:
- Group related tasks with similar scaling requirements
- Use containers or microservices hosting
- Monitor resource usage per task
- Ensure isolation where needed for security/reliability
- Balance between consolidation and failure isolation
Deployment Stamps Pattern
Problem: Applications need to scale across regions or customer segments.
Solution: Deploy multiple independent copies of application components (stamps), including data stores, to serve different regions or customer segments.
When to Use:
- Scaling beyond single stamp limits
- Providing regional data residency
- Isolating tenants for security or performance
Implementation Considerations:
- Each stamp is a complete, self-contained deployment
- Deploy stamps across regions for geo-distribution
- Route requests to appropriate stamp
- Manage stamp deployments consistently (IaC)
- Plan for stamp capacity and when to add new stamps
External Configuration Store Pattern
Problem: Application configuration is embedded in deployment packages.
Solution: Move configuration information out of the application deployment package to a centralized location.
When to Use:
- Managing configuration across multiple environments
- Updating configuration without redeployment
- Sharing configuration across multiple applications
Implementation Considerations:
- Use Azure App Configuration, Key Vault, or similar services
- Implement configuration change notifications
- Cache configuration locally to reduce dependencies
- Secure sensitive configuration (connection strings, secrets)
- Version configuration changes
Geode Pattern
Problem: Users in different regions experience high latency.
Solution: Deploy backend services into a set of geographical nodes, each of which can service any client request in any region.
When to Use:
- Reducing latency for globally distributed users
- Providing high availability across regions
- Implementing active-active geo-distribution
Implementation Considerations:
- Deploy application instances in multiple regions
- Replicate data globally (consider consistency implications)
- Route users to nearest healthy region
- Implement conflict resolution for multi-master writes
- Monitor regional health and performance
Static Content Hosting Pattern
Problem: Serving static content from compute instances is inefficient.
Solution: Deploy static content to a cloud-based storage service that can deliver content directly to the client.
When to Use:
- Hosting images, videos, CSS, JavaScript files
- Reducing load on web servers
- Improving content delivery performance
Implementation Considerations:
- Use blob storage, CDN, or static website hosting
- Enable CORS for cross-origin access
- Implement caching headers appropriately
- Use CDN for global content distribution
- Secure content with SAS tokens if needed