About Fidelio

Fidelio is a tool that deploys and manages containerized web applications using Docker as the underlying container platform. You can use Fidelio to map the services of your web applications into containers and then run and manage your applications on single-host or cluster environments.

Fidelio logo

Project Background

Fidelio was conceived at early January 2015, when most of today's tools were non existent. It was developed in the framework of a Master Thesis at Technical University of Crete that was presented in July 2016. The tool offers advanced functions such as distributed synchronization of services, an integrated process execution mechanism, complete life-cycle management of services etc. It is worth noting that it is still the only tool available supporting distributed coordination of services for web applications out of the box.

Below you can find the complete Thesis on which Fidelio was based.

Read Thesis

Developer

Dio

Dionysis Lappas

Electronic and Computer Engineer

Services

Fidelio provides a wide range of services for your distributed applications.

Service Discovery

Services automatically discover the services they require and their configuration.

Service Coordination

Start/stop control order, wait for initialization and complete shutdown guarantess along with constant monitoring and notifications of state changes for dependencies.

Integrated process execution mechanism

Complete control over the start/stop sequences of the container service with additional features: in order execution, timeout, abort on fail, monitoring of the container service, pre/post service start/stop process execution.

Cluster deployment

Containers can be deployed on Swarm clusters instead of single-host machines.

Decoupling container configuration from dependencies

Containers are configured as components, decoupled from their dependencies, using key-value pairs of configuration settings declared in their environment and their dependencies.

Environment variable injection

Declared environment variables for a container and its dependencies are injected to the container at runtime.

Environment variable substitution in configuratino files

Environment variable declarations are substituted with their values in confguration files which can automatically be restored to their previous state.

Tasks

Built-in or user-implemented functions through a provided API that extend the available functionality.

Container life-cycle management

All the containers of an application are controlled as a unit and have their life-cycle managed using simple commands.

Data management

In respect to persistence and sharing with support for Docker volumes, copy volumes and copy data from host to containers that is very useful in development and does not require to rebuild a Docker image.

Networking

Private networks for the containers of every deployed web app for increased isolation and security.

Simple user interface

Straightforward commands and options to run your web apps with Fidelio.

Features

Container agnostic design

Containers configured as components

3-tier architecture for web apps

Most widely used architecture for web applications

Swarm clusters

Transparently handles the deployment of containers to Swarm clusters.

Distributed architecture

The different system components can run on different physical machines.

Docker support

Running container are based on the Docker platform.

Apache Zookeeper collaboration

A coordinatino service is used to manage the application configuration, support service discovery and service coordination.

Simplicity and efficiency

Built with the user in mind.

Free Software

Realeased under the GNU GPL v3.0, Fidelio is free software.

Donate

If you like Fidelio then you can make a donation via Paypal to support its development.

paypal logo

Contact