Getting Started

The FeatureCloud CLI

The FeatureCloud CLI tool is available as a pip package.

Prerequisites

Installation

pip install featurecloud

Usage

Main commands of the CLI

Command

Description

Subcommands

controller

Controller start/stop

help, logs, ls, start, status, stop

app

App related commands

help, build, download, new, plot-states, publish, remove

test

Testbed related commands

help, delete, info, list, logs, start, stop, traffic, workflow

More details about commands and its subcommands are available here

Application development

There are two ways to implement applications for FeatureCloud:

Both ways rely (and relay) on the so called controller. The controller is a dockerized server responsible for the communication. The featurecloud pip package offers functioanlity to communicate with the controller.

To test applications in development, the test functioanlity of the CLI can be used.

Developing applications from scratch (advanced)

Steps for creating your federated application from scratch:

  1. Using any language of your choice, create a HTTP-Server that accepts requests from the controller. To do that, the HTTP-Server should listen to localhost on port 5000. It must support the API as documented in the API documentation. The api must be implemented on the route /api. Furthermore, the route /web has to be supported for GET/web requests. The response to GET/web is a simple text string with the current status.

  2. Build Docker image from your application: docker build --no-cache -t my-app ./my-app

  3. Test your application: FeatureCloud provides a Testbed. The usage is the same as when developing with the python templates, see here

  4. Tag and push your application in FeatureCloud App Store:

  • Tag your app: docker tag <Image_ID> featurecloud.ai/my-app

  • Login to our Docker registry with your FeatureCloud.ai user credentials: docker login featurecloud.ai

  • Push your app: docker push featurecloud.ai/my-app

Additional features of FeatureCloud

  1. Privacy enhancing techniques:

  2. GPU Computation: For this, simply checkout this blog post.

  3. Testing of Workflows: Whole workflows can be tested and run via Featurecloud, you can find more information here.