Skupper concept overview

The primary concepts in the Skupper model

Sites

Skupper's job is to provide connectivity for applications that have parts running in multiple locations and on different platforms. A site represents a particular location and a particular platform. It's a place where you have real running workloads. Each site corresponds to one platform namespace, so you can have multiple sites on one platform.

A site with three workloads

Networks

In a distributed application, those workloads need to communicate with other workloads in other sites. Skupper uses links between sites to provide site-to-site communication. Links are always secured using mutual TLS authentication and encryption.

When a set of sites are linked, they function as one application-focused network. You can use short-lived access tokens to securely create links.

A simple network with two sites

Services

Site-to-site links are distinct from application connections. Links form the transport for your network. Application connections are carried on top of this transport. Application connections can be established in any direction and to any site, regardless of how the underlying links are established.

Services are exposed on the network by creating corresponding listeners and connectors. A listener in one site provides a connection endpoint for client workloads. A connector in another site binds to local server workloads.

The listener and connector are associated using a routing key. Skupper routers use the routing key to forward client connections to the sites where the server workload is running.

A workload exposed as a service in a remote site

Applications

An application is a set of components that work together to do something useful. A distributed application has components that can be deployed as workloads in different locations. Distributed applications are often built with a multitier, service-oriented, or microservices architecture.

Because Skupper makes communication transparent to the application, the location of the running workloads is a concern independent of the application's design. You can deploy your application workloads to locations that suit you today, and you can safely change to new locations later.

A simple application with two components
Hello World with its components implemented by workloads in three different sites