Types of Resources

Overview

Facets supports flexible resource management through different resource types and environment dependencies, enabling efficient infrastructure reuse and cost optimisation. This comprehensive guide covers the three resource types and their benefits.


Resource Types

Normal Resources

Standard resources defined in the project blueprint that are deployed independently for each environment.

Behavior

  • Deployed separately for every environment through the releases mechanism
  • Each environment maintains its own instance of the resource
  • Full lifecycle management (create, update, delete) handled by Facets
  • Complete isolation between environments

Use Cases

  • Application-specific databases
  • Environment-specific load balancers
  • Dedicated storage volumes
  • Production-critical resources requiring isolation

Inherited Resources

Resources that are shared between base (dependent) and child environments, where the child environment uses the same instance deployed in its base environment.

Key Characteristics

  • Definition Configuration: Resources can be marked as inherited at the project blueprint level as well as at the child environment level.
  • Multi-Dependent Support: If multiple dependent environments exist, each child inherits from its designated base is the resource is marked as inherited at the project blueprint level.
  • Dependent-Child Relationship: Child environments automatically inherit the resource instance from their respective base environment
  • No Separate Deployment: Inherited resources are not deployed separately for child environments

Example Scenario:

  • Production Environment (Dependent): Shared Database and Monitoring Stack (Inherited)
  • Child Environments: Staging and Testing → Inherits Database & Monitoring from Production

Provided Resources

External resources managed outside of Facets that are referenced within the blueprint for configuration and dependency purposes.

Characteristics

  • External Management: All lifecycle operations (provisioning, updates, deletion) handled outside Facets
  • Reference Only: Facets maintains resource definitions for dependency mapping and configuration reference
  • No Direct Control: Facets does not perform any direct operations on these resources
  • Blueprint Integration: Can be included in blueprints for documentation and dependency visualization