All skills
microsoft avatar

/cloud-solution-architect

@277bb98
by microsoftmicrosoft/skills3.1k stars
351

Transform the agent into a Cloud Solution Architect following Azure Architecture Center best practices. Use when designing cloud architectures, reviewing system designs, selecting architecture styles, applying cloud design patterns, making technology choices, or conducting Well-Architected Framework reviews.

Use this Skill: https://skilld.dev/gh/microsoft/skills/cloud-solution-architect

This session only. Nothing lands on disk.

referencesarchitecture-styles.md

≈3.8k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Azure Architecture Styles Reference

Comparison Table

Style Dependency Management Domain Type
N-tier Horizontal tiers divided by subnet Traditional business, low update frequency
Web-Queue-Worker Front/back-end decoupled by async messaging Simple domain, resource-intensive tasks
Microservices Vertically decomposed services via APIs Complex domain, frequent updates
Event-driven Producer/consumer, independent views IoT, real-time systems
Big data Divide into small chunks, parallel processing Batch/real-time data analysis, ML
Big compute Data allocation to thousands of cores Compute-intensive (simulation)

1. N-tier

Traditional architecture that divides an application into logical layers and physical tiers. Each layer has a specific responsibility and communicates only with the layer directly below it.

Logical Diagram

┌──────────────────────────────────┐
│        Presentation Tier         │  ← Web / UI
│          (Subnet A)              │
├──────────────────────────────────┤
│       Business Logic Tier        │  ← Rules / Workflows
│          (Subnet B)              │
├──────────────────────────────────┤
│        Data Access Tier          │  ← Database / Storage
│          (Subnet C)              │
└──────────────────────────────────┘

Benefits

  • Familiar pattern for most development teams
  • Natural mapping for migrating existing layered applications to Azure
  • Clear separation of concerns between tiers

Challenges

  • Horizontal layering makes cross-cutting changes difficult — a single feature may touch every tier
  • Limits agility and release velocity as tiers are tightly coupled vertically

Best Practices

  • Use VNet subnets to isolate tiers and control traffic flow with NSGs
  • Keep each tier stateless where possible to enable horizontal scaling
  • Use managed services (App Service, Azure SQL) to reduce operational overhead

Dependency Management

Horizontal tiers divided by subnet. Each tier depends only on the tier directly below it, enforced through network segmentation.

Recommended Azure Services

  • Azure App Service
  • Azure SQL Database
  • Azure Virtual Machines
  • Azure Virtual Network (subnets)

2. Web-Queue-Worker

A web front end handles HTTP requests while a worker process performs resource-intensive or long-running tasks. The two components communicate through an asynchronous message queue.

Logical Diagram

                ┌───────────┐
 HTTP ─────────►│    Web    │
 Requests       │ Front End │
                └─────┬─────┘
                      │
                      ▼
               ┌──────────────┐
               │  Message     │
               │  Queue       │
               └──────┬───────┘
                      │
                      ▼
                ┌───────────┐
                │  Worker   │
                │  Process  │
                └─────┬─────┘
                      │
                      ▼
                ┌───────────┐
                │  Database │
                └───────────┘

Benefits

  • Easy to understand and deploy, especially with managed compute services
  • Clean separation between interactive and background workloads
  • Each component can scale independently

Challenges

  • Without careful design, the front end and worker can become monolithic components that are hard to maintain and update
  • Hidden dependencies may emerge if front end and worker share data schemas or storage

Best Practices

  • Keep the web front end thin — delegate heavy processing to the worker
  • Use durable message queues to ensure work is not lost on failure
  • Design idempotent worker operations to handle message retries safely

Dependency Management

Front-end and back-end jobs are decoupled by asynchronous messaging. The web tier never calls the worker directly; all communication flows through the queue.

Recommended Azure Services

  • Azure App Service
  • Azure Functions
  • Azure Queue Storage
  • Azure Service Bus

3. Microservices

A collection of small, autonomous services where each service implements a single business capability. Each service owns its bounded context and data, and communicates with other services via well-defined APIs.

Logical Diagram

┌──────────┐   ┌──────────┐   ┌──────────┐
│ Service  │   │ Service  │   │ Service  │
│    A     │   │    B     │   │    C     │
│ ┌──────┐ │   │ ┌──────┐ │   │ ┌──────┐ │
│ │ Data │ │   │ │ Data │ │   │ │ Data │ │
│ └──────┘ │   │ └──────┘ │   │ └──────┘ │
└────┬─────┘   └────┬─────┘   └────┬─────┘
     │              │              │
     └──────┬───────┘──────────────┘
            ▼
     ┌──────────────┐
     │ API Gateway  │
     └──────┬───────┘
            │
         Clients

Benefits

  • Autonomous teams can develop, deploy, and scale services independently
  • Enables frequent updates and higher release velocity
  • Technology diversity — each service can use the stack best suited to its task

Challenges

  • Service discovery and inter-service communication add complexity
  • Data consistency across services requires patterns like Saga or eventual consistency
  • Distributed system management (monitoring, debugging, tracing) is inherently harder

Best Practices

  • Define clear bounded contexts — avoid sharing databases between services
  • Use an API gateway for cross-cutting concerns (auth, rate limiting, routing)
  • Implement health checks, circuit breakers, and distributed tracing from day one

Dependency Management

Vertically decomposed services calling each other via APIs. Each service is independently deployable with its own data store, minimizing coupling.

Recommended Azure Services

  • Azure Kubernetes Service (AKS)
  • Azure Container Apps
  • Azure API Management
  • Azure Service Bus
  • Azure Cosmos DB

4. Event-driven

A publish-subscribe architecture where event producers emit events and event consumers react to them. Producers and consumers are fully decoupled, communicating only through event channels or brokers.

Logical Diagram

┌──────────┐     ┌──────────────────┐     ┌──────────┐
│ Producer │────►│                  │────►│ Consumer │
│    A     │     │   Event Broker   │     │    A     │
└──────────┘     │   / Channel     │     └──────────┘
                 │                  │
┌──────────┐     │  ┌────────────┐ │     ┌──────────┐
│ Producer │────►│  │  Pub/Sub   │ │────►│ Consumer │
│    B     │     │  │  or Stream │ │     │    B     │
└──────────┘     │  └────────────┘ │     └──────────┘
                 └──────────────────┘

Two models: Pub/Sub (events delivered to subscribers) and Event Streaming (events written to an ordered log for consumers to read).

Consumer variations: Simple event processing, basic correlation, complex event processing, event stream processing.

Benefits

  • Producers and consumers are fully decoupled — they can evolve independently
  • Highly scalable — add consumers without affecting producers
  • Responsive and well-suited to real-time processing pipelines

Challenges

  • Guaranteed delivery requires careful broker configuration and dead-letter handling
  • Event ordering can be difficult to maintain across partitions
  • Eventual consistency — consumers may see stale data temporarily
  • Error handling and poison message management add operational complexity

Best Practices

  • Design events as immutable facts with clear schemas
  • Use dead-letter queues for events that fail processing
  • Implement idempotent consumers to handle duplicate delivery safely

Dependency Management

Producer/consumer model with independent views per subsystem. Producers have no knowledge of consumers; each subsystem maintains its own projection of the event stream.

Recommended Azure Services

  • Azure Event Grid
  • Azure Event Hubs
  • Azure Functions
  • Azure Service Bus
  • Azure Stream Analytics

5. Big Data

Architecture designed to handle ingestion, processing, and analysis of data that is too large or complex for traditional database systems.

Logical Diagram

┌─────────────┐    ┌──────────────────────────────────┐
│ Data Sources│───►│          Data Storage             │
│ (logs, IoT, │    │         (Data Lake)               │
│  files)     │    └──┬──────────────┬─────────────────┘
└─────────────┘       │              │
                      ▼              ▼
              ┌──────────────┐ ┌──────────────┐
              │    Batch     │ │  Real-time   │
              │  Processing  │ │  Processing  │
              └──────┬───────┘ └──────┬───────┘
                     │                │
                     ▼                ▼
              ┌───────────────────────────────┐
              │   Analytical Data Store       │
              └──────────────┬────────────────┘
                             │
              ┌──────────────▼────────────────┐
              │   Analysis & Reporting        │
              │   (Dashboards, ML Models)     │
              └───────────────────────────────┘

         Orchestration manages the full pipeline

Components: Data sources → Data storage (data lake) → Batch processing → Real-time processing → Analytical data store → Analysis and reporting → Orchestration.

Benefits

  • Process massive datasets that exceed traditional database capacity
  • Support both batch and real-time analytics in a single architecture
  • Enable predictive analytics and machine learning at scale

Challenges

  • Complexity of coordinating batch and real-time processing paths
  • Data quality and governance across a data lake require disciplined schema management
  • Cost management — large-scale storage and compute can grow unpredictably

Best Practices

  • Use parallelism for both batch and real-time processing
  • Partition data to enable parallel reads and writes
  • Apply schema-on-read semantics to keep ingestion flexible
  • Process data in batches on arrival rather than waiting for scheduled windows
  • Balance usage costs against time-to-insight requirements

Dependency Management

Divide huge datasets into small chunks for parallel processing. Each chunk can be processed independently, with an orchestration layer coordinating the overall pipeline.

Recommended Azure Services

  • Microsoft Fabric
  • Azure Data Lake Storage
  • Azure Event Hubs
  • Azure SQL Database
  • Azure Cosmos DB
  • Power BI

6. Big Compute

Architecture for large-scale workloads that require hundreds or thousands of cores running in parallel. Tasks can be independent (embarrassingly parallel) or tightly coupled requiring inter-node communication.

Logical Diagram

┌─────────────────────────────────────────────┐
│              Job Scheduler                  │
│         (submit, monitor, manage)           │
└─────────────────┬───────────────────────────┘
                  │
    ┌─────────────┼─────────────┐
    ▼             ▼             ▼
┌────────┐  ┌────────┐  ┌────────────────┐
│ Core   │  │ Core   │  │ Core           │
│ Pool 1 │  │ Pool 2 │  │ Pool N         │
│(100s)  │  │(100s)  │  │(1000s of cores)│
└───┬────┘  └───┬────┘  └───┬────────────┘
    │           │            │
    └─────────┬─┘────────────┘
              ▼
     ┌──────────────┐
     │   Results    │
     │   Storage    │
     └──────────────┘

Use cases: Simulations, financial risk modeling, oil exploration, drug design, image rendering.

Benefits

  • High performance through massive parallel processing
  • Access to specialized hardware (GPU, FPGA, InfiniBand) for compute-intensive workloads
  • Scales to thousands of cores for embarrassingly parallel problems

Challenges

  • Managing VM infrastructure at scale (provisioning, patching, decommissioning)
  • Provisioning thousands of cores in a timely manner to meet job deadlines
  • Cost control — idle compute resources are expensive

Best Practices

  • Use low-priority or spot VMs to reduce cost for fault-tolerant workloads
  • Auto-scale compute pools based on job queue depth
  • Partition work into independent tasks when possible to maximize parallelism

Dependency Management

Data allocation to thousands of cores. The job scheduler distributes work units across the compute pool, with each core processing its assigned data partition independently.

Recommended Azure Services

  • Azure Batch
  • Microsoft HPC Pack
  • H-series Virtual Machines (HPC-optimized)

Source: Azure Architecture Center

Source: SKILL.md on GitHub

1 warning17d5 checks · Risk SAFE
  • Gen Agent Trust Hub17d

    This skill provides architectural guidance based on the Azure Architecture Center. It consists of educational content and design frameworks without any executable code or scripts.

  • Socket17d

    No alerts

  • Snyk17d

    Risk: LOW · No issues

  • Runlayer7mo

    5/9 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 277bb98. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 20 hours ago.

Activeupdated 7 months ago

README badge

README badge for microsoft/skills/cloud-solution-architect