A Project in FastDeploy serves as your top-level organizational workspace. It's designed to bring together all the essential elements of your cloud infrastructure — services, environments, and deployment configurations — into a structured and modular unit. Think of it as the foundational container for everything you build and deploy.
Why Projects? Projects provide critical isolation and organization. By grouping related components, you ensure clear boundaries between different applications or initiatives, simplify access control, and streamline management of your cloud resources.
Within each Project, a Service represents an individual, deployable application component. Whether it's a mission-critical API, a dynamic frontend, a robust background job, or a simple static site, each service is an independent piece of your larger application.
An Environment is a completely isolated instance of your project's services and their associated deployments. They provide dedicated spaces for different stages of your application's lifecycle, ensuring that testing, staging, and production activities don't interfere with each other.
Common examples include:
prod: Your live, public-facing application.dev: For ongoing development and rapid iteration.staging: A pre-production environment for final testing and review.qa: A dedicated environment for quality assurance and bug fixing.Warning: Complete Isolation It's crucial to understand that all environments are completely isolated from each other. This means separate resources, data, and network configurations, providing a safe sandbox for development and testing without impacting live users.
Deployments are the detailed definitions of your services, outlining how they should interact, their desired state, and how they are ultimately provisioned and managed within a specific environment.
They leverage "deployment files" (often in formats like YAML or JSON) that describe:
Figure 1: Conceptual Diagram of a FastDeploy Project. A Project contains multiple Services (e.g., Frontend, Backend API, Database) and various Environments (Dev, Staging, Prod). Each Environment then hosts Deployments of those Services, showing their isolated but interconnected nature.