Getting Started
Core Concepts

Core Concepts

Workspaces, Node Groups, Cloud Accounts, Components and Deployments are the core parts of Ferry. Node Groups are collections of devices that belong to a Workspace, and Ferry helps you ship your custom software applications (i.e. Components) through deployments to your devices utilizing Ferry’s native integrations with AWS (via AWS Greengrass) and Azure (via Azure IoT Edge).

Organizations

Organizations are where you can structure your teams, users and associated permissions across your company. Link multiple cloud accounts across AWS and Azure to your organization so that your teams can seamlessly deploy code across your company’s (multi-)cloud resources.

Users

Users belong to Organizations within Ferry. Owners of the Organization can assign permissions to other users for granular permission and access control to devices, deployment workflows & more.

Cloud Accounts

Ferry enables companies to have complete control over their data & IP by allowing them to connect their existing AWS or Azure cloud accounts. Ferry deploys your software applications to devices via an Organization’s cloud account through AWS Greengrass (for AWS) or Azure IoT Edge (for Microsoft Azure). An Organization has complete control over their own cloud resources and data at all times.

Workspaces

Workspaces are projects which users can tailor to manage sets of devices (Node Groups), software applications (Components) and deployments (Deployments). An Organization can have multiple Workspaces; each Workspace can be linked to only one Cloud Account.

Node Groups

Node Groups represent groups of devices (called ‘Nodes’), which belong to a Workspace. Users deploy their custom software applications (Components) to Node Groups via Deployments within a Workspace.

Nodes

A Node represents a physical device. A Node can only belong to one Node Group at a time.

Components

Components represent custom software applications that can deployed to Node Groups residing in a Workspace. A Component can be any software application (i.e. scripts, ML models, data pipelines etc) written in any coding language. Ferry provides an embedded browser IDE to allow users to build their applications, test them on devices, and seamlessly deploy them.

Component Versions

A key concept within Ferry is that of versioning: as a Component changes over time, Ferry tracks different versions of that Component. This allows users to be able to deploy different Component Versions to different Node Groups, and have full transparency over which Component Versions are running where.

Deployments

A Deployment takes a set of appropriately versioned Components and makes them run on a set of Node Groups (i.e. targets), which a user can specify. Ferry executes Deployments using the user’s Cloud Account linked with the Workspace (AWS Greengrass for AWS; Azure IoT Edge for Microsoft Azure). Ferry’s Smart Deployment features ensure that only one version of a Component can only ever run on a Node Group; and identifies conflicting Deployments if that is not the case.