Blueprints
Description
Topology
element is a combination of a node
, a service
, attached networks
and a replication factor (replicas
).
Finally, each node has a label
which represents the name of the node at the deployed dockerized application.
In the following example we have three node-sm
nodes connected to the internet
network (with specific connectivity characteristics)
that will execute the nimbus
and supervisor
services respectively.
topology:
- node: node-sm # Node template as described in Node profiles
service: nimbus # Service as described in docker-compose services
label: nimbus # label/identifier of the emulated fog node
replicas: 1 # replication factor of the node
networks: # a list of the networks that the node is connected to
- internet
- node: node-sm
service: supervisor
label: supervisor
replicas: 2
networks:
- internet
Parameters
Label
Label
is the identifier of the blueprint
.
Users can use the label
to specify the instances for injecting actions
and scenarios
.
Furthermore, users can include a number after the label
to identify specific replica of the blueprint, e.g supervisor.1
.
Service
Service
is the executable that will run on the Fog node.
The service
is inherited from services
section of the docker-compose
specification.
For more details check out the following link.
Node
Specifies on which emulated device the service will run on. The emulated node inherits the capabilities
of node profile
.
For more details check out the following link.
Replicas
Replicas
identifies the number of instances that Fogify will create from the specific blueprint
.
All instances will have the same processing characteristics, execute the same service and are connected on the same networks.
Networks
This section provides information about node networking. Specifically, users select in which networks
the blueprint
will be connected.
For instance, at the before-mentioned example, supervisor
nodes will be connected to the internet
network with default network connectivity QoS.
If there is a need for node-specific network QoS, user can override them. Following example illustrates how do users override the network QoS.
....
- node: node-sm
service: supervisor
label: supervisor
replicas: 2
networks:
- name: internet
uplink:
bandwidth: 1Mbps
latency:
delay: 200ms
drop: 0.01%
downlink:
bandwidth: 1Mbps
latency:
delay: 200ms
drop: 0.01%
....