Types of Resources
Compare the three Facets resource types: normal resources deployed per environment, inherited resources shared across environments, and provided externals.
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
Adding & Editing a Resource
Step-by-step guide to adding, editing, and configuring resources in the Facets Blueprint tab using graph mode, table mode, and the JSON editor.
Linking Resources
Connect resources in a Facets blueprint, wiring a Postgres database to a Service with environment variables and a Service to an Ingress with ingress rules.