Loading content...
In the previous page, we explored the cloud service model spectrum—IaaS, PaaS, and SaaS. But there's a crucial category of cloud offerings that doesn't fit neatly into this traditional classification: Managed Services.
Managed services are pre-built, fully-operated components that handle specific infrastructure or application needs. They sit somewhere between IaaS and PaaS—you're not managing bare VMs, but you're also not deploying application code. Instead, you're consuming specialized services: databases, message queues, caches, AI/ML endpoints, and dozens of other building blocks.
Understanding managed services is essential because they're the primary way modern architectures are assembled. Rather than building everything from scratch, cloud-native systems compose managed services like LEGO blocks, with custom code handling only the unique business logic.
By the end of this page, you will understand the landscape of managed services across major cloud providers, their operational models, pricing structures, and how to evaluate them for your architectures. You'll learn to distinguish between when managed services accelerate development and when they create problematic dependencies.
A managed service is a cloud offering where the provider handles the operational aspects of a specific technology or capability, while you consume it through an API, console, or SDK.
The key characteristic is operational abstraction. You don't manage servers, patching, scaling, backups, or failover—the cloud provider does. You configure and consume the service; they operate it.
The Managed Service Value Proposition:
Consider running a PostgreSQL database. In a self-managed model (on IaaS), you would:
With a managed database service (like AWS RDS, Azure Database for PostgreSQL, or Google Cloud SQL), you:
The provider handles everything else.
Managed services almost always cost more in raw infrastructure dollars than running equivalent capacity on IaaS. But when you include engineering time for operations, the equation often inverts. A senior engineer spending 4 hours per week on database operations costs far more than the managed service premium. This is the fundamental value proposition.
Cloud providers offer managed services across virtually every infrastructure and application category. Let's examine the major categories with examples from AWS, Azure, and Google Cloud:
| Service Type | AWS | Azure | Google Cloud | Use Case |
|---|---|---|---|---|
| Container Orchestration | ECS, EKS | AKS, Container Instances | GKE, Cloud Run | Containerized workloads without managing clusters |
| Serverless Functions | Lambda | Functions | Cloud Functions | Event-driven code without server management |
| Serverless Containers | Fargate, App Runner | Container Apps | Cloud Run | Container workloads without nodes |
| Batch Processing | Batch | Batch | Batch | Large-scale batch computing jobs |
| Database Type | AWS | Azure | Google Cloud | Use Case |
|---|---|---|---|---|
| Relational (MySQL/PostgreSQL) | RDS, Aurora | Database for MySQL/PostgreSQL | Cloud SQL, AlloyDB | ACID transactions, structured data |
| Document (NoSQL) | DocumentDB, DynamoDB | Cosmos DB | Firestore, Datastore | Flexible schemas, JSON documents |
| Key-Value | DynamoDB, ElastiCache | Cosmos DB, Cache for Redis | Memorystore | High-speed lookups, session storage |
| Wide-Column | Keyspaces | Cosmos DB (Cassandra API) | Bigtable | Time-series, IoT, analytics |
| Graph | Neptune | Cosmos DB (Gremlin API) | JanusGraph on GKE | Relationship-heavy data models |
| Time Series | Timestream | Azure Data Explorer | BigQuery | Metrics, monitoring, analytics |
| Service Type | AWS | Azure | Google Cloud | Use Case |
|---|---|---|---|---|
| Message Queue | SQS | Storage Queues, Service Bus | Cloud Tasks | Decoupling, work queues |
| Pub/Sub | SNS | Event Grid, Service Bus | Pub/Sub | Event distribution, fan-out |
| Event Streaming | Kinesis, MSK | Event Hubs | Dataflow, Pub/Sub | Real-time data streams |
| Workflow Orchestration | Step Functions | Logic Apps, Durable Functions | Workflows | Long-running processes |
| Storage Type | AWS | Azure | Google Cloud | Use Case |
|---|---|---|---|---|
| Object Storage | S3 | Blob Storage | Cloud Storage | Files, media, backups, data lakes |
| File Storage | EFS, FSx | Files, NetApp Files | Filestore | Shared filesystems, NFS workloads |
| Archive Storage | S3 Glacier | Archive Storage | Archive Storage | Long-term retention, compliance |
| Block Storage | EBS | Managed Disks | Persistent Disk | VM storage, databases |
| Service Type | AWS | Azure | Google Cloud | Use Case |
|---|---|---|---|---|
| Load Balancing | ELB, ALB, NLB | Load Balancer, App Gateway | Cloud Load Balancing | Traffic distribution |
| CDN | CloudFront | CDN | Cloud CDN | Content delivery, edge caching |
| DNS | Route 53 | DNS | Cloud DNS | Domain management, routing |
| API Gateway | API Gateway | API Management | API Gateway | API management, security |
| VPN/DirectConnect | Site-to-Site VPN, Direct Connect | VPN Gateway, ExpressRoute | Cloud VPN, Interconnect | Hybrid connectivity |
| Service Type | AWS | Azure | Google Cloud | Use Case |
|---|---|---|---|---|
| ML Platform | SageMaker | Machine Learning | Vertex AI | Model training and deployment |
| Vision AI | Rekognition | Computer Vision | Vision AI | Image analysis, OCR |
| Speech | Transcribe, Polly | Speech Services | Speech-to-Text, Text-to-Speech | Transcription, voice synthesis |
| NLP | Comprehend | Text Analytics | Natural Language AI | Sentiment, entity extraction |
| Translation | Translate | Translator | Translation AI | Language translation |
These tables represent only the most common managed services. Major cloud providers offer 150-200+ managed services each, covering domains from IoT to blockchain to satellite ground stations. Keeping up with the full catalog is impossible—focus on understanding the categories and learning specific services as your architecture requires them.
Not all managed services are managed equally. Different services offer different levels of abstraction, with corresponding tradeoffs in control in visibility.
How it works: You specify the capacity you need (instance sizes, storage, throughput), and the service provisions dedicated resources. You pay for provisioned capacity whether you use it or not.
Examples:
Characteristics:
How it works: The service automatically scales based on actual usage. You pay only for what you consume—requests, storage, compute time.
Examples:
Characteristics:
How it works: Combines provisioned baseline with automatic scaling or burst capacity.
Examples:
Characteristics:
For new projects with unknown traffic patterns, start with serverless/on-demand models. As you understand your usage patterns, evaluate whether provisioned capacity reduces costs. The crossover point varies by service but typically occurs when you're consistently using 30-50% of provisioned capacity across most hours.
Every managed service comes with quotas and limits. Architects must understand these constraints:
Soft Limits (Can be increased):
Hard Limits (Architectural constraints):
Why this matters: Hard limits often drive architectural decisions. If your service generates 1MB items, DynamoDB isn't suitable—not because of performance or cost, but because of a hard limit. Understanding these limits before designing is essential.
Understanding managed service pricing is essential for both cost optimization and architectural decisions. Let's examine common pricing models and hidden cost factors.
Let's examine the real cost components of a managed database like AWS RDS:
Direct Costs:
Hidden Costs:
Reservation Discounts:
Data transfer costs are the most common source of cloud bill surprises. Cross-region replication, API responses, analytics pipelines—all incur egress charges. A seemingly simple architecture can generate terabytes of cross-zone traffic that appears nowhere in the design diagram but dominates the monthly bill.
When comparing managed services to self-managed alternatives, consider the full picture:
Managed Service Costs:
Self-Managed Costs:
The break-even calculation: If a managed database costs $500/month extra versus self-managed, and your engineers cost $80/hour burdened, the managed service saves money if operations require more than 6 hours/month. Most databases require significantly more than 6 hours of operational attention monthly.
Not every managed service is appropriate for every use case. Use this framework to evaluate whether a specific managed service fits your needs:
For most teams, the default should be using managed services unless you have specific reasons not to. The operational burden of self-managing infrastructure is substantial and doesn't scale linearly with team size. Self-management should be a deliberate exception, not the default.
While managed services are generally beneficial, they can be misused. Recognize these anti-patterns:
The Problem: Using every available managed service creates a complex web of dependencies, each with its own learning curve, failure modes, and billing model.
Signs:
The Fix: Standardize on a smaller set of services. Resist adding new services unless they provide significant value over existing ones. Prefer multi-purpose services over single-purpose tools.
The Problem: Deep integration with proprietary managed services makes migration painful or impossible.
Signs:
The Fix: Design abstraction layers for services you might replace. Use managed services for what they're good at (operations) while keeping business logic in portable code. Consider open-source compatible managed services (Managed Kafka vs proprietary alternatives).
The Problem: Forcing managed services to handle use cases they weren't designed for.
Signs:
The Fix: Accept that managed services are opinionated. If your use case doesn't fit, consider self-managed alternatives or redesigning the feature. Square pegs don't fit in round holes.
The Problem: Assuming managed services never fail because 'the provider handles reliability.'
Signs:
The Fix: Design for failure. Every managed service can have outages. Implement timeouts, retries, circuit breakers, and graceful degradation. Your SLA cannot exceed your weakest dependency.
A particularly dangerous anti-pattern is the 'distributed monolith'—where dozens of services are tightly coupled through managed service integrations. This has all the operational complexity of microservices with none of the benefits. If you can't deploy one service without affecting others, you don't have microservices; you have a distributed monolith.
Let's examine how managed services compose into real architectures through a practical example.
Requirement: Build a system that ingests clickstream data from web applications, enriches it with user profile information, and makes it available for real-time dashboards and batch analytics.
Architecture using AWS Managed Services:
[Web Apps] → [Kinesis Data Streams] → [Lambda (enrichment)] → [S3]
↓ ↓ ↓
[firehose] [DynamoDB lookup] [Athena queries]
↓ ↓
[OpenSearch] ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← [QuickSight]
↑
[Real-time dashboards]
Managed Services Used:
What you DON'T manage:
What you DO manage:
In this architecture, managed services handle ~80% of the infrastructure complexity while you focus on ~20%: the business logic and configuration that makes your system unique. This ratio is typical for well-designed cloud-native systems.
The same pattern on Azure:
The pattern is portable even if specific services differ. Understanding managed service categories lets you translate architectures across clouds.
We've explored managed services in depth. Let's consolidate the key takeaways:
What's next:
With a solid understanding of managed services, we'll explore Cloud-Native Design—the architectural principles and patterns specifically suited to cloud environments, including scalability patterns, statelessness, and the unique characteristics of cloud-native applications.
You now understand managed services as the fundamental building blocks of cloud architecture. You can evaluate services across multiple dimensions, recognize common anti-patterns, and understand how managed services compose into production systems.