Published: 29 December 2015
Summary
Cloud computing benefits are realized by implementing a solution with elastic scalability, metered consumption and automation, not by simply using IaaS or PaaS. IT architects must adopt cloud-native principles and design patterns such as microservices and understand the impact of design decisions.
Included in Full Research
- Prework: Define Cloud-Native Application Adoption Goals
- Step 1: Map Cloud Adoption Goals to Cloud Characteristics
- Characteristic 1: Uses Dynamic, Shared and Virtual Infrastructure
- Characteristic 2: Offers a Service in an On-Demand, Self-Service Model
- Characteristic 3: Scales Rapidly and Elastically
- Characteristic 4: Meters Consumption
- Characteristic 5: Available Across Common Networks
- Step 2: Map Cloud Characteristics to Cloud Architecture Principles
- Principle L: Latency-Aware
- Principle I: Instrumented
- Principle F: Failure-Aware
- Principle E: Event-Driven
- Principle S: Secure
- Principle P: Parallelizable
- Principle A: Automated
- Principle R: Resource-Consumption-Aware
- Step 3: Choose Design Patterns That Implement Architecture Principles
- Actor Model
- Asynchronous Integration
- Autonomous
- Bulkhead and Circuit Breaker
- Command Query Responsibility Segregation (CQRS)
- Containerization
- Content Delivery Networks
- Data Replication
- Encryption
- Event Sourcing
- Eventual Consistency
- Federated Identity
- Finely Grained Components and Services (Microservices)
- Gatekeeper
- Idempotency
- In-Memory Data Caching
- Interoperable Application Programming Interfaces (APIs)
- Lazy Loading
- Mediation Points
- Partitioning Data
- Redundancy
- Restartable
- Separating Business Logic From Infrastructure Concerns
- Shared Nothing
- Simplification
- Stateless Services
- Template-Driven Deployment
- Throttling
- Valet Key
- Workload Decomposition
- Step 4: Choose IaaS and PaaS Based on Design Pattern Implementation Responsibilities
- Avoid Cloud Design Anti-Patterns
- ACID Transactions
- Chatty Interactions
- Complex Dependencies
- Direct Code-to-Runtime Relationship
- Hardware Affinity
- Latency Guarantees
- Manual Provisioning Workflow
- Monolithic Design and Deployment
- Resource Hogging
- Scalability by Application Server Clustering
- Scalability by Scaling Vertically
- Single Points of Bottleneck
- Single Points of Failure
- Single Tenancy
- Single-Threaded, Serial Execution
- Stateful Services
- Synchronous Interactions
- Delegate Responsibility for System Behavior to Cloud Providers or Platforms
- Increase Complexity as You Distribute Your System
- Be Aware of Cloud Market Evolutionary Risk
- Related Guidance