I use the following tactics when implementing cloud services for DevOps to avoid vendor lock-in:
Use Multi-Cloud or Hybrid Cloud Architectures: Design systems to operate across multiple cloud providers to avoid dependency on a single vendor.
Adopt Open Tools and Standards: Rely on open-source tools like Kubernetes, Terraform, and OpenTelemetry, which work across different cloud platforms.
Abstract Cloud Services: Implement abstraction layers for storage, computing, or databases using frameworks like Crossplane or tools like HashiCorp's Consul for service discovery.
Containerization: To provide mobility across cloud environments and package apps in containers (like Docker).
Data Portability: Regularly back up and store critical data in formats compatible across providers.
Modular Infrastructure as Code (IaC): Write cloud-agnostic IaC scripts using tools like Terraform to manage resources in multiple clouds.
Steer clear of proprietary APIs: Use generic libraries or wrappers to reduce your dependency on vendor-specific APIs.
Periodic Testing: Regularly test migrations to alternative providers to validate portability.
These tactics encourage adaptability, lessen reliance, and protect against interruptions brought on by vendor lock-in.