mirror of
https://github.com/github/awesome-copilot.git
synced 2026-03-13 04:35:12 +00:00
* 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>
92 lines
3.2 KiB
Markdown
92 lines
3.2 KiB
Markdown
# 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
|