Originally published on 2010-03-17; fully revised and updated.

Cloud migration decisions are often less about technology and more about risk acceptance. If you need to justify cloud adoption to leadership, this guide helps you frame the discussion around concrete controls for availability, security and auditability, and performance during data migration.
Why cloud adoption gets blocked
Most objections fall into a small set of recurring themes. Addressing these early turns a vague debate into an implementation plan.
- Availability: concern that provider outages will impact customer-facing systems.
- Security and auditability: concern over where data lives, who can access it, and whether audit trails are sufficient.
- Performance and transfer speed: concern that moving large datasets to cloud infrastructure will be slow or disruptive.
A practical workflow to de-risk cloud adoption
Use an iterative workflow that starts with business and compliance requirements, then validates architecture choices through a pilot.
flowchart TD
A[Define business and compliance requirements] --> B[Classify workloads and data]
B --> C{Sensitive or regulated data}
C -- Yes --> D[Plan private or hybrid controls]
C -- No --> E[Use public cloud baseline controls]
D --> F[Set availability and disaster recovery targets]
E --> F
F --> G[Test network and migration throughput]
G --> H[Run pilot with monitoring and SLA review]
H --> I{Pilot meets targets}
I -- No --> J[Adjust architecture or provider]
J --> G
I -- Yes --> K[Approve phased migration]
Availability and resilience: evaluate architecture, not just SLA numbers
The original article emphasized SLA expectations such as 99.9% or 99.99% availability. Those targets are still useful as a starting point, but uptime outcomes depend heavily on your deployment design (single region vs multi-region, failover strategy, monitoring, and recovery testing).
Questions to ask providers during evaluation
- How is uptime measured, and what is excluded from SLA calculations?
- What compensation applies if SLA commitments are missed?
- What are the documented RTO and RPO options?
- What native features are available for multi-zone or multi-region failover?
- How are planned maintenance events communicated?
| Deployment pattern | Availability benefit | Trade-off | Typical fit |
|---|---|---|---|
| Single provider, single region | Simple operations | Regional outage is a major risk | Low-criticality workloads |
| Single provider, multi-zone or multi-region | Improved resilience to localized failures | Higher architecture and data replication complexity | Most production applications |
| Multi-provider active or standby | Reduces dependency on one vendor | Highest operational complexity and cost | High-criticality or strict continuity requirements |
#!/usr/bin/env bash
endpoints=("https://app.example.com/health" "https://api.example.com/health")
for url in "${endpoints[@]}"; do
if curl -fsS "$url" >/dev/null; then
echo "$(date -Iseconds) OK $url"
else
echo "$(date -Iseconds) FAIL $url"
fi
doneCode language: PHP (php)
Security and auditability: map controls to data sensitivity
The source post distinguished public and private cloud concerns. A practical approach is to classify data first, then pick the control model that satisfies regulatory and audit requirements without overengineering low-risk workloads.
| Model | Strengths | Limitations | Best fit |
|---|---|---|---|
| Public cloud | Fast provisioning, broad managed services, lower entry cost | Requires strong identity, network, and key-management discipline | General workloads with standard compliance needs |
| Private cloud | Greater isolation and custom control boundaries | Higher build and operations overhead | Strict isolation or specialized regulatory requirements |
| Hybrid cloud | Place sensitive and less-sensitive workloads differently | Integration, policy, and observability complexity | Organizations with mixed risk profiles |
Baseline controls to require
- Encryption in transit and at rest
- Centralized identity and least-privilege access
- Immutable audit logs with defined retention periods
- Backup and recovery testing cadence
- Documented incident response and notification procedures
# Example: encrypt a migration archive before transfer
tar -czf finance-export.tar.gz ./finance-export
openssl enc -aes-256-cbc -salt -pbkdf2 -in finance-export.tar.gz -out finance-export.tar.gz.encCode language: PHP (php)
Performance and migration throughput: treat first data load as a separate project
Even when steady-state cloud performance is acceptable, the initial data move is often the biggest bottleneck. Plan transfer method, integrity checks, and cutover windows explicitly.
| Data transfer approach | Advantages | Risks or limits | When to use |
|---|---|---|---|
| Online transfer over internet or VPN | Immediate start, no physical logistics | Constrained by available bandwidth and latency | Small to medium datasets and ongoing sync |
| Offline seeding with encrypted drives or provider device | Can move very large initial datasets faster | Chain-of-custody and handling requirements | Large one-time bulk migration |
| Dedicated private connectivity | More predictable throughput for recurring transfers | Provisioning time and recurring cost | Continuous high-volume data movement |
# 1) Measure available throughput
iperf3 -c test-endpoint.example.com -t 30
# 2) Perform incremental transfer
rsync -avh --partial --progress /data/ migration@test-gateway:/ingest/
# 3) Verify integrity before cutover
sha256sum /data/critical-export.tar.gz
ssh migration@test-gateway "sha256sum /ingest/critical-export.tar.gz"Code language: PHP (php)
Best practices
- Turn each objection into a measurable control (SLO, RTO/RPO, audit evidence, transfer plan).
- Run a pilot before full migration and include failure testing in scope.
- Do not rely on SLA language alone; validate architecture-level resilience.
- Classify data before choosing public, private, or hybrid deployment patterns.
- Plan initial data seeding, incremental sync, and checksum validation as separate workstreams.
Article source (historical): http://business-technology.suite101.com/article.cfm/overcoming-cloud-computing-obstacles. Original post: https://www.devopsschool.com/blog/overcoming-cloud-computing-obstacles/.
I’m Rajesh Kumar, a DevOps, SRE, DevSecOps, Cloud, and Platform Engineering expert passionate about sharing practical knowledge, real-world experiences, and industry best practices. I have worked at Cotocus and regularly write about technology, travel, investing, health, product reviews, and digital marketing through my various platforms.
I publish technical articles at DevOps School, travel stories at Holiday Landmark, stock market insights at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow, and SEO and digital marketing strategies at Wizbrand.
Find Trusted Cardiac Hospitals
Compare heart hospitals by city and services — all in one place.
Explore Hospitals