178 lines
4.7 KiB
Markdown
178 lines
4.7 KiB
Markdown
---
|
|
name: multi-cloud-architecture
|
|
description: Design multi-cloud architectures using a decision framework to select and integrate services across AWS, Azure, and GCP. Use when building multi-cloud systems, avoiding vendor lock-in, or leveraging best-of-breed services from multiple providers.
|
|
---
|
|
|
|
# Multi-Cloud Architecture
|
|
|
|
Decision framework and patterns for architecting applications across AWS, Azure, and GCP.
|
|
|
|
## Purpose
|
|
|
|
Design cloud-agnostic architectures and make informed decisions about service selection across cloud providers.
|
|
|
|
## When to Use
|
|
|
|
- Design multi-cloud strategies
|
|
- Migrate between cloud providers
|
|
- Select cloud services for specific workloads
|
|
- Implement cloud-agnostic architectures
|
|
- Optimize costs across providers
|
|
|
|
## Cloud Service Comparison
|
|
|
|
### Compute Services
|
|
|
|
| AWS | Azure | GCP | Use Case |
|
|
|-----|-------|-----|----------|
|
|
| EC2 | Virtual Machines | Compute Engine | IaaS VMs |
|
|
| ECS | Container Instances | Cloud Run | Containers |
|
|
| EKS | AKS | GKE | Kubernetes |
|
|
| Lambda | Functions | Cloud Functions | Serverless |
|
|
| Fargate | Container Apps | Cloud Run | Managed containers |
|
|
|
|
### Storage Services
|
|
|
|
| AWS | Azure | GCP | Use Case |
|
|
|-----|-------|-----|----------|
|
|
| S3 | Blob Storage | Cloud Storage | Object storage |
|
|
| EBS | Managed Disks | Persistent Disk | Block storage |
|
|
| EFS | Azure Files | Filestore | File storage |
|
|
| Glacier | Archive Storage | Archive Storage | Cold storage |
|
|
|
|
### Database Services
|
|
|
|
| AWS | Azure | GCP | Use Case |
|
|
|-----|-------|-----|----------|
|
|
| RDS | SQL Database | Cloud SQL | Managed SQL |
|
|
| DynamoDB | Cosmos DB | Firestore | NoSQL |
|
|
| Aurora | PostgreSQL/MySQL | Cloud Spanner | Distributed SQL |
|
|
| ElastiCache | Cache for Redis | Memorystore | Caching |
|
|
|
|
**Reference:** See `references/service-comparison.md` for complete comparison
|
|
|
|
## Multi-Cloud Patterns
|
|
|
|
### Pattern 1: Single Provider with DR
|
|
|
|
- Primary workload in one cloud
|
|
- Disaster recovery in another
|
|
- Database replication across clouds
|
|
- Automated failover
|
|
|
|
### Pattern 2: Best-of-Breed
|
|
|
|
- Use best service from each provider
|
|
- AI/ML on GCP
|
|
- Enterprise apps on Azure
|
|
- General compute on AWS
|
|
|
|
### Pattern 3: Geographic Distribution
|
|
|
|
- Serve users from nearest cloud region
|
|
- Data sovereignty compliance
|
|
- Global load balancing
|
|
- Regional failover
|
|
|
|
### Pattern 4: Cloud-Agnostic Abstraction
|
|
|
|
- Kubernetes for compute
|
|
- PostgreSQL for database
|
|
- S3-compatible storage (MinIO)
|
|
- Open source tools
|
|
|
|
## Cloud-Agnostic Architecture
|
|
|
|
### Use Cloud-Native Alternatives
|
|
|
|
- **Compute:** Kubernetes (EKS/AKS/GKE)
|
|
- **Database:** PostgreSQL/MySQL (RDS/SQL Database/Cloud SQL)
|
|
- **Message Queue:** Apache Kafka (MSK/Event Hubs/Confluent)
|
|
- **Cache:** Redis (ElastiCache/Azure Cache/Memorystore)
|
|
- **Object Storage:** S3-compatible API
|
|
- **Monitoring:** Prometheus/Grafana
|
|
- **Service Mesh:** Istio/Linkerd
|
|
|
|
### Abstraction Layers
|
|
|
|
```
|
|
Application Layer
|
|
↓
|
|
Infrastructure Abstraction (Terraform)
|
|
↓
|
|
Cloud Provider APIs
|
|
↓
|
|
AWS / Azure / GCP
|
|
```
|
|
|
|
## Cost Comparison
|
|
|
|
### Compute Pricing Factors
|
|
|
|
- **AWS:** On-demand, Reserved, Spot, Savings Plans
|
|
- **Azure:** Pay-as-you-go, Reserved, Spot
|
|
- **GCP:** On-demand, Committed use, Preemptible
|
|
|
|
### Cost Optimization Strategies
|
|
|
|
1. Use reserved/committed capacity (30-70% savings)
|
|
2. Leverage spot/preemptible instances
|
|
3. Right-size resources
|
|
4. Use serverless for variable workloads
|
|
5. Optimize data transfer costs
|
|
6. Implement lifecycle policies
|
|
7. Use cost allocation tags
|
|
8. Monitor with cloud cost tools
|
|
|
|
**Reference:** See `references/multi-cloud-patterns.md`
|
|
|
|
## Migration Strategy
|
|
|
|
### Phase 1: Assessment
|
|
- Inventory current infrastructure
|
|
- Identify dependencies
|
|
- Assess cloud compatibility
|
|
- Estimate costs
|
|
|
|
### Phase 2: Pilot
|
|
- Select pilot workload
|
|
- Implement in target cloud
|
|
- Test thoroughly
|
|
- Document learnings
|
|
|
|
### Phase 3: Migration
|
|
- Migrate workloads incrementally
|
|
- Maintain dual-run period
|
|
- Monitor performance
|
|
- Validate functionality
|
|
|
|
### Phase 4: Optimization
|
|
- Right-size resources
|
|
- Implement cloud-native services
|
|
- Optimize costs
|
|
- Enhance security
|
|
|
|
## Best Practices
|
|
|
|
1. **Use infrastructure as code** (Terraform/OpenTofu)
|
|
2. **Implement CI/CD pipelines** for deployments
|
|
3. **Design for failure** across clouds
|
|
4. **Use managed services** when possible
|
|
5. **Implement comprehensive monitoring**
|
|
6. **Automate cost optimization**
|
|
7. **Follow security best practices**
|
|
8. **Document cloud-specific configurations**
|
|
9. **Test disaster recovery** procedures
|
|
10. **Train teams** on multiple clouds
|
|
|
|
## Reference Files
|
|
|
|
- `references/service-comparison.md` - Complete service comparison
|
|
- `references/multi-cloud-patterns.md` - Architecture patterns
|
|
|
|
## Related Skills
|
|
|
|
- `terraform-module-library` - For IaC implementation
|
|
- `cost-optimization` - For cost management
|
|
- `hybrid-cloud-networking` - For connectivity
|