SKILL.md
Multi-Cloud Strategy
Table of Contents
- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#best-practices)
Overview
Multi-cloud strategies enable leveraging multiple cloud providers for flexibility, redundancy, and optimization. Avoid vendor lock-in, optimize costs by comparing cloud services, and implement hybrid deployments with seamless data synchronization.
When to Use
- Reducing vendor lock-in risk
- Optimizing costs across providers
- Geographic distribution requirements
- Compliance with regional data laws
- Disaster recovery and high availability
- Hybrid cloud deployments
- Multi-region application deployment
- Avoiding single cloud provider dependency
Quick Start
Minimal working example:
# Multi-cloud compute abstraction
from abc import ABC, abstractmethod
from enum import Enum
class CloudProvider(Enum):
AWS = "aws"
AZURE = "azure"
GCP = "gcp"
class ComputeInstance(ABC):
"""Abstract compute instance"""
@abstractmethod
def start(self): pass
@abstractmethod
def stop(self): pass
@abstractmethod
def get_status(self): pass
# AWS implementation
import boto3
class AWSComputeInstance(ComputeInstance):
def __init__(self, instance_id, region='us-east-1'):
// ... (see reference guides for full implementation)
Reference Guides
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| [Multi-Cloud Abstraction Layer](references/multi-cloud-abstraction-layer.md) | Multi-Cloud Abstraction Layer |
| [Multi-Cloud Kubernetes Deployment](references/multi-cloud-kubernetes-deployment.md) | Multi-Cloud Kubernetes Deployment |
| [Terraform Multi-Cloud Configuration](references/terraform-multi-cloud-configuration.md) | Terraform Multi-Cloud Configuration |
| [Data Synchronization across Clouds](references/data-synchronization-across-clouds.md) | Data Synchronization across Clouds |
Best Practices
✅ DO
- Use cloud-agnostic APIs and frameworks
- Implement abstraction layers
- Monitor costs across clouds
- Use Kubernetes for portability
- Plan for data residency requirements
- Test failover scenarios
- Document cloud-specific configurations
- Use infrastructure as code
❌ DON'T
- Use cloud-specific services extensively
- Create hard dependencies on one provider
- Ignore compliance requirements
- Forget about data transfer costs
- Neglect network latency issues
- Skip disaster recovery planning