This article outlines the key concepts and building blocks of Jaws Deploy. It explains how Jaws Deploy organizes information about your infrastructure and deployment logic—two elements that, when combined, define the deployment flow.
Organization represents a single company or software vendor. During signup a new organization is always created. Organizations are also containers and direct parents of other core entities in JawsDeploy (such as users, service accounts and workspaces).
Every organization can have multiple workspaces. When a new organization is created it also gets a default workspace called "Main". Workspaces are a convenient way to group apps, products or business partners of a company. Workspaces are well isolated from each other. Every workspace is an own small ecosystem. Workspaces are in a way sub-accounts of an organization. The only thing in common is that they have the same parent (organization) and multiple users within an organization may access these workspaces (depending also on users' access rights).
Environment is a well-known concept in the IT industry. Most software projects follow a typical flow:
This flow can be represented using a set of environments:
In JawsDeploy, environments belong to a workspace, and all projects within that workspace share this set of environments. Each new workspace is created with two default environments: Staging and Production. You can easily customize this—specify any environment names you prefer and add as many environments as you need.
Functionally, environments are used to group servers. Each server (machine) may have zero, one, or many environments assigned. While a machine with no environments isn't very useful, it's still a valid setup. When executing a deployment, the user must pick an environment for the software deployment. Based on this choice, JawsDeploy will distribute the software only to machines belonging to that specific environment.
Machines represent your physical servers. Any server, whether physical or virtual, can be transformed into a JawsDeploy machine by installing a small piece of software. This software, known as the Agent, runs in the background and facilitates communication with the JawsDeploy server, enabling the execution of custom logic or the deployment of software across multiple machines simultaneously.
Projects are the core building blocks of your JawsDeploy ecosystem as they define the deployment flow. They are just like cooking recipes - they consist of multiple deployment steps and optionally variables. Steps contain the logic that should be executed (e.g. fetch secret values from a key vault, or install a Windows service) and variables allow to parametrize that logic.