DRAFT: ADR Product Delivery Model

Purpose

This Architecture Decision Record establishes the University cloud product delivery model.

The product delivery model provides a consistent framework for designing, deploying, governing, and operating cloud services while promoting reuse, standardization, and automation.

Decision

Cloud services will be delivered as products composed of reusable modules.

Products represent consumable offerings that may be requested and deployed by consumers.

Modules represent reusable implementation components used to construct products.

A product may consist of one or more modules.

Technical Reasoning

Consumers request business and platform capabilities rather than individual cloud resources.

Organizing cloud services as products aligns deployment automation with consumer demand, simplifies onboarding, improves consistency, and reduces implementation variation.

Separating products from modules promotes reuse, reduces duplication, and allows implementation components to evolve independently of the products that consume them.

Product Model

Products represent deployable capabilities that may be requested by consumers.

Examples include:

  • Key Vault
  • Storage Account
  • SQL Database
  • Virtual Machine
  • Standard Web Application
  • Fabric Workspace

Products may consist of multiple cloud resources and supporting services.

Module Model

Modules represent reusable implementation components.

Modules are not independently requested by consumers and exist to support product construction.

Examples include:

  • Private Endpoint
  • Diagnostic Settings
  • Role Assignments
  • Backup Configuration
  • Monitoring Configuration

Consequences

  • Aligns cloud delivery with consumer requests
  • Promotes standardization across deployments
  • Improves reuse of implementation components
  • Reduces duplication within infrastructure code repositories
  • Supports consistent governance and operational practices
  • Simplifies deployment automation and lifecycle management

Alternatives Considered

Resource-Centric Delivery Model

Organizing deployments solely around individual cloud resources was considered.

This approach was rejected because consumers typically request platform capabilities rather than individual implementation components.

Product-Only Model

Delivering all capabilities as standalone products without reusable modules was considered.

This approach was rejected because it increases duplication, reduces consistency, and limits reuse across deployments.