SlideShare a Scribd company logo
Docker Swarm secrets
for creating great FIWARE platforms
Federico M. Facca
email: federico.facca@martel-innovate.com
twitter: @chicco785
1
What you will learn?
 How to deploy enablers using cloud architecture patterns
 How to apply cloud patterns using Docker
 How to deploy on multiple hardware architectures
 Where to find examples for some enablers
2
In case you wanna run the 5 demo at the end of the Talk
 If internet is good enough...
 Install VirtualBox
• https://www.virtualbox.org/wiki/Downloads
 Install Docker
• https://docs.docker.com/engine/installation/
 Install Docker Machine
• https://docs.docker.com/machine/install-machine/
 Create a Swarm Cluster (https://github.com/aelsabbahy/miniswarm)
• curl -sSL https://raw.githubusercontent.com/aelsabbahy/miniswarm/master/miniswarm -o
/usr/local/bin/miniswarm
• chmod +rx /usr/local/bin/miniswarm # As root
• miniswarm start 3 # 1 manager 2 workers
 Clone the recipes
• git clone https://github.com/smartsdk/smartsdk-recipes
3
Does this work only with Docker Swarm?
 The code you will find in the repository is for Docker
Swarm
 The principles are generic and can be applied on different
containerized (or not) platforms
4
Why Docker Swarm instead of Kubernetes?
 K8S is more production ready
• More advanced features (e.g. autoscaling).
 Swarm is simpler
• It is included in Docker (N.B. K8S will be soon)
• It is more suitable for “educational” purposes
• It runs better on a RasperryPI 0 
Learn and understand the basics
6
What are cloud patterns? Why it is important to master them?
Virtualization <> Cloudification
7
Cattle vs Pets
Cloud Native Applications Legacy Applications
8
Monolith vs Modern SOA (aka microservices)
 Monolith architectures run all their services
in a single process
 Monolith architectures may scale by
replicating all the “monolith” on different
servers
 Microservice architectures each
functionality in a separate (possibly
stateless) process
 Microservices scale individually by
distributing on different servers
9
Cloud Architecture Patterns are the path to
 Move from Pets to Cattle
 ... i.e. achieve
• Service resiliency
• Flexible scalability
• Lower latency
10
High Availability
11
Scalability
Horizontal Scaling Vertical Scaling
12
Multisite
13
Queue Centric Workflow
Message Queue
Producers Consumers
14
Stateless vs Stateful services
 Stateless services
• The output of the service depends only on the input
• Easy to scale and distribute
 Stateful
• The output of the service depends on the input and on a set of information
stored by the service itself
• Not so easy to scale and distribute (maintaining a consistent state)
15
CAP Theorem
 The CAP theorem states that it is impossible for a distributed computer
system to simultaneously provide all three of the following guarantees:
• Consistency: Every read receives the most recent write or an error
• Availability: Every request receives a response, without guarantee that it contains the
most recent version of the information
• Partition tolerance: The system continues to operate despite an arbitrary number of
messages being dropped by the network between nodes
 I.e. when you implement HA in a stateful service, you can choose of being CA, AP,
CP. In general you strive to AP and eventually consistent.
From concepts to practise
16
17
Context Broker
 Context Broker is perhaps the most used
GE 
 It includes to components:
• The API
• The Backend
 The API is HTTP based
 The Backend in based on MongoDB
 How to make it high available?
• An easy crossover mechanism for HTTP
APIs are Load Balancers
• MongoDB has its proprietary HA
mechanism (replica set)
Context Broker
MongoDB
18
Context Broker: Target architecture
Context Broker
MongoDB
Context Broker
MongoDB
Context Broker
MongoDB
LB LB LB
MongoDB replica set
Virtual IP
1. Provide high available and partition tolerant distributed data
2. Eventually consistent
3. MongoDB HA solutions use quora mechanism for evaluate consistency,
so O as to be an odd number (max actually is 7)
1. Provides the reliable cross over (i.e. transparent access to different
instances)
2. Provides the transparent detection failure
3. Relies on virtual IP mechanism
1. N-instances of context broker, removing single point of failure
19
Context Broker: How to implement that in Docker Swarm?
 The Load Balancer
• It is the easy part: Docker Swarm implements
a simple Load Balancing mechanism
 Context Broker API HA
• Context Broker is stateless, we don’t have to
worry about data
• We create a service (using replica mode to
scale it up and down)
• We leverage on health checks to evaluate
single instance health
 MongoDB
• Now things get complex... Recall CAPs
Theorem
version: '3'
services:
orion:
image: fiware/orion:${ORION_VERSION:-1.7.0}
ports:
- "1026:1026”
command: -logLevel DEBUG -dbhost
${MONGO_SERVICE_URI:-"mongo-rs_mongo"} -rplSet
${REPLICASET_NAME:-rs} -dbTimeout 10000
deploy:
replicas: 2
healthcheck:
test: ["CMD", "curl", "-f",
"http://0.0.0.0:1026/version"]
interval: 1m
timeout: 10s
retries: 3
networks:
...
20
Data Layer HA Management
 Your distributed data layer has some
level of self discovery
• You can relay on it to automatically
create the “data service cluster”.
• In some cases, you need pass service
names... Luckily you can leverage on
tricks (e.g. DNSRR mode of Docker
Swarm – being VIP the default)
• E.g. elasticsearch / hadoop
 Your distributed data layer has no self
discovery
• You need a sidecar service that
implements the data cluster
management logic.
• E.g. mongodb / mysql
MongoDB MongoDBMongoDB
MongoDB replica set
ReplicaSet
Controller
Docker Swarm
MongoDB replica
set MongoDB replica set
21
Context Broker: How to implement that in Docker Swarm?
 MongoDB
• We create a service for mongo (using
global, and volumes if we want persistency)
• We create a service for the sidecar
microservice
• We leverage on health checks to evaluate
single instance health
 Why global?
• If you want to leverage on volume for data
persistency, you need to deal with the fact
that there can be only 1 volume with a
given name per swarm node.
• How can I scale up / down then?
□ Using placement constraints!
version: '3.2'
mongo:
image: mongo:${MONGO_VERSION:-3.2}
entrypoint: [ "/usr/bin/mongod", "--replSet",
"${REPLICASET_NAME:-rs}", "--journal", "--smallfiles"]
volumes:
- mongodata:/data/db
secrets:
- mongo-healthcheck
healthcheck:
test: ["CMD", "bash", "/run/secrets/mongo-healthcheck"]
interval: 1m
timeout: 10s
retries: 3
deploy:
mode: global
...
controller:
image: martel/mongo-replica-ctrl:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role==manager]
...
22
Scaling Up and Down
 docker service scale orion_orion=3
 docker service scale orion_orion=2
 Global Mode does not support scale up /
down. Using Global Mode you can have as
many mongo as cluster nodes.
 Add a placement constraint to the mongo
service
• placement:
constraints: [node.labels.mongo == yes]
 Add/remove label to nodes to be (not) used
for MongoDB
• docker node update --label-add
mongo=yes NODE
Context Broker MongoDB
23
Multi Site (for replicated mode services)
 In each site, have at least a Docker Swarm master.
• The number of master should be always odd.
 Add a “site” label to all the nodes part of a given site.
• docker node update --label-add region=us NODE
• docker node update --label-add region=eu NODE
 Add a placement preference to the service (not supported in compose files!)
• docker service update --placement-pref-add 'spread=node.labels.region’ SERVICE
Quick Demo
24
25
 cd tools/
 sh create_networks.sh
 cd ../data-management/context-broker/ha/
 sh deploy_back.sh
 docker service ls
 docker service logs -f orion-backend_controller
 sh deploy_front.sh
 docker service ls
 curl http://192.168.99.101:1026/version
Advanced topics
26
27
Multi Site and Edge
 Edge devices may not have a Public IP
 Can we create a cluster connecting such devices?
 OpenVPN is your friend!
• Configure OpenVPN server on all the master nodes
in the cloud using a multipoint configuration.
• Configure OpenVPN clients on all the edge nodes.
• Unfortunately, due to the fact that docker service
does not support privileged mode, you cannot run
OpenVPN as a container to create a Docker Swarm
cluster
 What if my edge nodes are based on a different
architecture (e.g. ARM)?
• Develop image manifests that implements v2.2
spec, this allows to redirect an image version to
specific version per hardware platform.
image:
myprivreg:5000/someimage:latest
manifests:
- image:
myprivreg:5000/someimage:ppc64le
platform:
architecture: ppc64le
os: linux
- image:
myprivreg:5000/someimage:amd64
platform:
architecture: amd64
features:
- sse
os: linux
Træfik: advanced load balancing
 Docker Swarm proxy is not configurable, for
example it does not support sticky sessions
 Traefik listens to backend /orchestrator API’s
and detects any changes, applying it
 Routes are dynamically managed
 You can create / update / destroy routes at
any time
 Traefik reads service metadata on Docker /
Kubernetes / etcd / etc
• Hosts, ports, load balancing algorithm etc
 You can configure SSL certifications
• Let’s Encrypt integration requires a key-value
storage
• Let’s Encrypt integration requires public IP
29
Testing your dockerized platform
 Learn from the GURU’s of micro service architectures!
 Chaos Monkey
 https://github.com/gaia-adm/pumba
Netflix picture or /logo
On going and future activities in FIWARE
30
Did it look complex? I hope not 
31
32
Smart Security
• Common architecture patterns: e.g. scalability
pattern
• Common generic enablers: e.g. orion context-
broker
• Common data models: e.g. geo-location
• Specific architecture patterns: e.g. secured data
access pattern
• Specific and customised generic enablers: e.g.
security risk detection filters for kurento media
server
• Specific data models: e.g. security’s events
Smart Security
Application
“recipe”
1. Analyse HA architectures for the different Data and IoT Management enablers
2. Creating Docker compose recipes to allow easy deployment of HA enablers
3. Making them available in FIWARE Lab to experimenters
Do you have questions?
Do you want to contribute?
33
Contact Us
w w w.mart el-innov at e.com
Federico M. Facca
Head of Martel Lab
federico.facca@martel-innovate.com
Dorfstrasse 73 – 3073
Gümligen (Switzerland)
004178 807 58 38
Thank you!
http://fiware.org
Follow @FIWARE on Twitter
34
Ad

More Related Content

What's hot (20)

GopherCon 2017 - Writing Networking Clients in Go: The Design & Implementati...
GopherCon 2017 -  Writing Networking Clients in Go: The Design & Implementati...GopherCon 2017 -  Writing Networking Clients in Go: The Design & Implementati...
GopherCon 2017 - Writing Networking Clients in Go: The Design & Implementati...
wallyqs
 
Apache httpd 2.4 Reverse Proxy
Apache httpd 2.4 Reverse ProxyApache httpd 2.4 Reverse Proxy
Apache httpd 2.4 Reverse Proxy
Jim Jagielski
 
Ansible Automation Inside Cloudforms ( Embedded Ansible)
Ansible Automation Inside Cloudforms ( Embedded Ansible)Ansible Automation Inside Cloudforms ( Embedded Ansible)
Ansible Automation Inside Cloudforms ( Embedded Ansible)
Prasad Mukhedkar
 
From swarm to swam-mode in the CERN container service
From swarm to swam-mode in the CERN container serviceFrom swarm to swam-mode in the CERN container service
From swarm to swam-mode in the CERN container service
Spyros Trigazis
 
Ovs perf
Ovs perfOvs perf
Ovs perf
Madhu c
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking Overview
Sreenivas Makam
 
Heart of the SwarmKit: Store, Topology & Object Model
Heart of the SwarmKit: Store, Topology & Object ModelHeart of the SwarmKit: Store, Topology & Object Model
Heart of the SwarmKit: Store, Topology & Object Model
Docker, Inc.
 
Kubernetes networking - basics
Kubernetes networking - basicsKubernetes networking - basics
Kubernetes networking - basics
Juraj Hantak
 
rtnetlink
rtnetlinkrtnetlink
rtnetlink
Taku Fukushima
 
Defeating The Network Security Infrastructure V1.0
Defeating The Network Security Infrastructure  V1.0Defeating The Network Security Infrastructure  V1.0
Defeating The Network Security Infrastructure V1.0
Philippe Bogaerts
 
GopherFest 2017 - Adding Context to NATS
GopherFest 2017 -  Adding Context to NATSGopherFest 2017 -  Adding Context to NATS
GopherFest 2017 - Adding Context to NATS
wallyqs
 
Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...
Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...
Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...
Docker, Inc.
 
Monitoring Large-scale Cloud Infrastructures with OpenNebula
Monitoring Large-scale Cloud Infrastructures with OpenNebulaMonitoring Large-scale Cloud Infrastructures with OpenNebula
Monitoring Large-scale Cloud Infrastructures with OpenNebula
NETWAYS
 
Deep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm ModeDeep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm Mode
Ajeet Singh Raina
 
An Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux ContainersAn Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux Containers
Kento Aoyama
 
Orchestration tool roundup - OpenStack Israel summit - kubernetes vs. docker...
Orchestration tool roundup  - OpenStack Israel summit - kubernetes vs. docker...Orchestration tool roundup  - OpenStack Israel summit - kubernetes vs. docker...
Orchestration tool roundup - OpenStack Israel summit - kubernetes vs. docker...
Uri Cohen
 
Geneve
GeneveGeneve
Geneve
Madhu c
 
MySQL HA with PaceMaker
MySQL HA with  PaceMakerMySQL HA with  PaceMaker
MySQL HA with PaceMaker
Kris Buytaert
 
Docker Swarm Mode Orchestration
Docker Swarm Mode OrchestrationDocker Swarm Mode Orchestration
Docker Swarm Mode Orchestration
Alican Akkuş
 
Swarm mode
Swarm modeSwarm mode
Swarm mode
Dharmit Shah
 
GopherCon 2017 - Writing Networking Clients in Go: The Design & Implementati...
GopherCon 2017 -  Writing Networking Clients in Go: The Design & Implementati...GopherCon 2017 -  Writing Networking Clients in Go: The Design & Implementati...
GopherCon 2017 - Writing Networking Clients in Go: The Design & Implementati...
wallyqs
 
Apache httpd 2.4 Reverse Proxy
Apache httpd 2.4 Reverse ProxyApache httpd 2.4 Reverse Proxy
Apache httpd 2.4 Reverse Proxy
Jim Jagielski
 
Ansible Automation Inside Cloudforms ( Embedded Ansible)
Ansible Automation Inside Cloudforms ( Embedded Ansible)Ansible Automation Inside Cloudforms ( Embedded Ansible)
Ansible Automation Inside Cloudforms ( Embedded Ansible)
Prasad Mukhedkar
 
From swarm to swam-mode in the CERN container service
From swarm to swam-mode in the CERN container serviceFrom swarm to swam-mode in the CERN container service
From swarm to swam-mode in the CERN container service
Spyros Trigazis
 
Ovs perf
Ovs perfOvs perf
Ovs perf
Madhu c
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking Overview
Sreenivas Makam
 
Heart of the SwarmKit: Store, Topology & Object Model
Heart of the SwarmKit: Store, Topology & Object ModelHeart of the SwarmKit: Store, Topology & Object Model
Heart of the SwarmKit: Store, Topology & Object Model
Docker, Inc.
 
Kubernetes networking - basics
Kubernetes networking - basicsKubernetes networking - basics
Kubernetes networking - basics
Juraj Hantak
 
Defeating The Network Security Infrastructure V1.0
Defeating The Network Security Infrastructure  V1.0Defeating The Network Security Infrastructure  V1.0
Defeating The Network Security Infrastructure V1.0
Philippe Bogaerts
 
GopherFest 2017 - Adding Context to NATS
GopherFest 2017 -  Adding Context to NATSGopherFest 2017 -  Adding Context to NATS
GopherFest 2017 - Adding Context to NATS
wallyqs
 
Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...
Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...
Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...
Docker, Inc.
 
Monitoring Large-scale Cloud Infrastructures with OpenNebula
Monitoring Large-scale Cloud Infrastructures with OpenNebulaMonitoring Large-scale Cloud Infrastructures with OpenNebula
Monitoring Large-scale Cloud Infrastructures with OpenNebula
NETWAYS
 
Deep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm ModeDeep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm Mode
Ajeet Singh Raina
 
An Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux ContainersAn Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux Containers
Kento Aoyama
 
Orchestration tool roundup - OpenStack Israel summit - kubernetes vs. docker...
Orchestration tool roundup  - OpenStack Israel summit - kubernetes vs. docker...Orchestration tool roundup  - OpenStack Israel summit - kubernetes vs. docker...
Orchestration tool roundup - OpenStack Israel summit - kubernetes vs. docker...
Uri Cohen
 
MySQL HA with PaceMaker
MySQL HA with  PaceMakerMySQL HA with  PaceMaker
MySQL HA with PaceMaker
Kris Buytaert
 
Docker Swarm Mode Orchestration
Docker Swarm Mode OrchestrationDocker Swarm Mode Orchestration
Docker Swarm Mode Orchestration
Alican Akkuş
 

Similar to Docker Swarm secrets for creating great FIWARE platforms (20)

Docker Swarm and Traefik 2.0
Docker Swarm and Traefik 2.0Docker Swarm and Traefik 2.0
Docker Swarm and Traefik 2.0
Jakub Hajek
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
Patrick Chanezon
 
Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3
Velocidex Enterprises
 
Dockers zero to hero
Dockers zero to heroDockers zero to hero
Dockers zero to hero
Nicolas De Loof
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric Overview
Michelle Holley
 
Build cloud native solution using open source
Build cloud native solution using open source Build cloud native solution using open source
Build cloud native solution using open source
Nitesh Jadhav
 
Containerised Testing at Demonware : PyCon Ireland 2016
Containerised Testing at Demonware : PyCon Ireland 2016Containerised Testing at Demonware : PyCon Ireland 2016
Containerised Testing at Demonware : PyCon Ireland 2016
Thomas Shaw
 
FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a Microservice
Evan McGee
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
Fabio Fumarola
 
Large-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesLarge-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 Minutes
Hiroshi SHIBATA
 
Resilience Testing
Resilience Testing Resilience Testing
Resilience Testing
Ran Levy
 
FIWARE Data Management in High Availability
FIWARE Data Management in High AvailabilityFIWARE Data Management in High Availability
FIWARE Data Management in High Availability
Federico Michele Facca
 
Streaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogStreaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit Log
Joe Stein
 
Autopilot : Securing Cloud Native Storage
Autopilot : Securing Cloud Native StorageAutopilot : Securing Cloud Native Storage
Autopilot : Securing Cloud Native Storage
SF Bay Cloud Native Open Infra Meetup
 
9th docker meetup 2016.07.13
9th docker meetup 2016.07.139th docker meetup 2016.07.13
9th docker meetup 2016.07.13
Amrita Prasad
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
Simon Storm
 
How Ansible Tower and Prometheus can help automate continuous deployments
How Ansible Tower and Prometheus can help automate continuous deployments How Ansible Tower and Prometheus can help automate continuous deployments
How Ansible Tower and Prometheus can help automate continuous deployments
Roger Tanner
 
Distributed Performance testing by funkload
Distributed Performance testing by funkloadDistributed Performance testing by funkload
Distributed Performance testing by funkload
Akhil Singh
 
Security hardening enhancements for Kubernetes
Security hardening enhancements for KubernetesSecurity hardening enhancements for Kubernetes
Security hardening enhancements for Kubernetes
Runcy Oommen
 
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OSPutting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
Lightbend
 
Docker Swarm and Traefik 2.0
Docker Swarm and Traefik 2.0Docker Swarm and Traefik 2.0
Docker Swarm and Traefik 2.0
Jakub Hajek
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
Patrick Chanezon
 
Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3
Velocidex Enterprises
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric Overview
Michelle Holley
 
Build cloud native solution using open source
Build cloud native solution using open source Build cloud native solution using open source
Build cloud native solution using open source
Nitesh Jadhav
 
Containerised Testing at Demonware : PyCon Ireland 2016
Containerised Testing at Demonware : PyCon Ireland 2016Containerised Testing at Demonware : PyCon Ireland 2016
Containerised Testing at Demonware : PyCon Ireland 2016
Thomas Shaw
 
FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a Microservice
Evan McGee
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
Fabio Fumarola
 
Large-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesLarge-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 Minutes
Hiroshi SHIBATA
 
Resilience Testing
Resilience Testing Resilience Testing
Resilience Testing
Ran Levy
 
FIWARE Data Management in High Availability
FIWARE Data Management in High AvailabilityFIWARE Data Management in High Availability
FIWARE Data Management in High Availability
Federico Michele Facca
 
Streaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogStreaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit Log
Joe Stein
 
9th docker meetup 2016.07.13
9th docker meetup 2016.07.139th docker meetup 2016.07.13
9th docker meetup 2016.07.13
Amrita Prasad
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
Simon Storm
 
How Ansible Tower and Prometheus can help automate continuous deployments
How Ansible Tower and Prometheus can help automate continuous deployments How Ansible Tower and Prometheus can help automate continuous deployments
How Ansible Tower and Prometheus can help automate continuous deployments
Roger Tanner
 
Distributed Performance testing by funkload
Distributed Performance testing by funkloadDistributed Performance testing by funkload
Distributed Performance testing by funkload
Akhil Singh
 
Security hardening enhancements for Kubernetes
Security hardening enhancements for KubernetesSecurity hardening enhancements for Kubernetes
Security hardening enhancements for Kubernetes
Runcy Oommen
 
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OSPutting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
Lightbend
 
Ad

More from Federico Michele Facca (16)

FIWARE: Open APIs for Open Cities
FIWARE: Open APIs for Open CitiesFIWARE: Open APIs for Open Cities
FIWARE: Open APIs for Open Cities
Federico Michele Facca
 
FIWARE Primer - Learn FIWARE in 60 Minutes
FIWARE Primer - Learn FIWARE in 60 MinutesFIWARE Primer - Learn FIWARE in 60 Minutes
FIWARE Primer - Learn FIWARE in 60 Minutes
Federico Michele Facca
 
FIWARE Meetup Trento: Latest News
FIWARE Meetup Trento: Latest NewsFIWARE Meetup Trento: Latest News
FIWARE Meetup Trento: Latest News
Federico Michele Facca
 
Join FIWARE Lab
Join FIWARE LabJoin FIWARE Lab
Join FIWARE Lab
Federico Michele Facca
 
Fiware Overiew - Trento FI-PPP info day
Fiware Overiew - Trento FI-PPP info dayFiware Overiew - Trento FI-PPP info day
Fiware Overiew - Trento FI-PPP info day
Federico Michele Facca
 
CommunityCloud4PA
CommunityCloud4PACommunityCloud4PA
CommunityCloud4PA
Federico Michele Facca
 
Fi ware, fi-lab e il trentino
Fi ware, fi-lab e il trentinoFi ware, fi-lab e il trentino
Fi ware, fi-lab e il trentino
Federico Michele Facca
 
Trento IoT Day: Build IoT apps with FI-WARE, FI-Lab and FI-Ops
Trento IoT Day: Build IoT apps with FI-WARE, FI-Lab and FI-OpsTrento IoT Day: Build IoT apps with FI-WARE, FI-Lab and FI-Ops
Trento IoT Day: Build IoT apps with FI-WARE, FI-Lab and FI-Ops
Federico Michele Facca
 
FI Business: Value proposition for cities, access to data and ICT infrastruct...
FI Business: Value proposition for cities, access to data and ICT infrastruct...FI Business: Value proposition for cities, access to data and ICT infrastruct...
FI Business: Value proposition for cities, access to data and ICT infrastruct...
Federico Michele Facca
 
XIFI: how we did federate different FI infrastructures
XIFI: how we did federate different FI infrastructuresXIFI: how we did federate different FI infrastructures
XIFI: how we did federate different FI infrastructures
Federico Michele Facca
 
Xipi Overview
Xipi OverviewXipi Overview
Xipi Overview
Federico Michele Facca
 
Mobicap
MobicapMobicap
Mobicap
Federico Michele Facca
 
Infinity Wire Frame
Infinity Wire FrameInfinity Wire Frame
Infinity Wire Frame
Federico Michele Facca
 
Infinity's Overview
Infinity's OverviewInfinity's Overview
Infinity's Overview
Federico Michele Facca
 
Shape Project Overview
Shape Project OverviewShape Project Overview
Shape Project Overview
Federico Michele Facca
 
Silicon Valley Semantic Web Meet Up
Silicon Valley Semantic Web Meet UpSilicon Valley Semantic Web Meet Up
Silicon Valley Semantic Web Meet Up
Federico Michele Facca
 
Ad

Recently uploaded (20)

How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 

Docker Swarm secrets for creating great FIWARE platforms

  • 1. Docker Swarm secrets for creating great FIWARE platforms Federico M. Facca email: [email protected] twitter: @chicco785
  • 2. 1 What you will learn?  How to deploy enablers using cloud architecture patterns  How to apply cloud patterns using Docker  How to deploy on multiple hardware architectures  Where to find examples for some enablers
  • 3. 2 In case you wanna run the 5 demo at the end of the Talk  If internet is good enough...  Install VirtualBox • https://www.virtualbox.org/wiki/Downloads  Install Docker • https://docs.docker.com/engine/installation/  Install Docker Machine • https://docs.docker.com/machine/install-machine/  Create a Swarm Cluster (https://github.com/aelsabbahy/miniswarm) • curl -sSL https://raw.githubusercontent.com/aelsabbahy/miniswarm/master/miniswarm -o /usr/local/bin/miniswarm • chmod +rx /usr/local/bin/miniswarm # As root • miniswarm start 3 # 1 manager 2 workers  Clone the recipes • git clone https://github.com/smartsdk/smartsdk-recipes
  • 4. 3 Does this work only with Docker Swarm?  The code you will find in the repository is for Docker Swarm  The principles are generic and can be applied on different containerized (or not) platforms
  • 5. 4 Why Docker Swarm instead of Kubernetes?  K8S is more production ready • More advanced features (e.g. autoscaling).  Swarm is simpler • It is included in Docker (N.B. K8S will be soon) • It is more suitable for “educational” purposes • It runs better on a RasperryPI 0 
  • 6. Learn and understand the basics
  • 7. 6 What are cloud patterns? Why it is important to master them? Virtualization <> Cloudification
  • 8. 7 Cattle vs Pets Cloud Native Applications Legacy Applications
  • 9. 8 Monolith vs Modern SOA (aka microservices)  Monolith architectures run all their services in a single process  Monolith architectures may scale by replicating all the “monolith” on different servers  Microservice architectures each functionality in a separate (possibly stateless) process  Microservices scale individually by distributing on different servers
  • 10. 9 Cloud Architecture Patterns are the path to  Move from Pets to Cattle  ... i.e. achieve • Service resiliency • Flexible scalability • Lower latency
  • 14. 13 Queue Centric Workflow Message Queue Producers Consumers
  • 15. 14 Stateless vs Stateful services  Stateless services • The output of the service depends only on the input • Easy to scale and distribute  Stateful • The output of the service depends on the input and on a set of information stored by the service itself • Not so easy to scale and distribute (maintaining a consistent state)
  • 16. 15 CAP Theorem  The CAP theorem states that it is impossible for a distributed computer system to simultaneously provide all three of the following guarantees: • Consistency: Every read receives the most recent write or an error • Availability: Every request receives a response, without guarantee that it contains the most recent version of the information • Partition tolerance: The system continues to operate despite an arbitrary number of messages being dropped by the network between nodes  I.e. when you implement HA in a stateful service, you can choose of being CA, AP, CP. In general you strive to AP and eventually consistent.
  • 17. From concepts to practise 16
  • 18. 17 Context Broker  Context Broker is perhaps the most used GE   It includes to components: • The API • The Backend  The API is HTTP based  The Backend in based on MongoDB  How to make it high available? • An easy crossover mechanism for HTTP APIs are Load Balancers • MongoDB has its proprietary HA mechanism (replica set) Context Broker MongoDB
  • 19. 18 Context Broker: Target architecture Context Broker MongoDB Context Broker MongoDB Context Broker MongoDB LB LB LB MongoDB replica set Virtual IP 1. Provide high available and partition tolerant distributed data 2. Eventually consistent 3. MongoDB HA solutions use quora mechanism for evaluate consistency, so O as to be an odd number (max actually is 7) 1. Provides the reliable cross over (i.e. transparent access to different instances) 2. Provides the transparent detection failure 3. Relies on virtual IP mechanism 1. N-instances of context broker, removing single point of failure
  • 20. 19 Context Broker: How to implement that in Docker Swarm?  The Load Balancer • It is the easy part: Docker Swarm implements a simple Load Balancing mechanism  Context Broker API HA • Context Broker is stateless, we don’t have to worry about data • We create a service (using replica mode to scale it up and down) • We leverage on health checks to evaluate single instance health  MongoDB • Now things get complex... Recall CAPs Theorem version: '3' services: orion: image: fiware/orion:${ORION_VERSION:-1.7.0} ports: - "1026:1026” command: -logLevel DEBUG -dbhost ${MONGO_SERVICE_URI:-"mongo-rs_mongo"} -rplSet ${REPLICASET_NAME:-rs} -dbTimeout 10000 deploy: replicas: 2 healthcheck: test: ["CMD", "curl", "-f", "http://0.0.0.0:1026/version"] interval: 1m timeout: 10s retries: 3 networks: ...
  • 21. 20 Data Layer HA Management  Your distributed data layer has some level of self discovery • You can relay on it to automatically create the “data service cluster”. • In some cases, you need pass service names... Luckily you can leverage on tricks (e.g. DNSRR mode of Docker Swarm – being VIP the default) • E.g. elasticsearch / hadoop  Your distributed data layer has no self discovery • You need a sidecar service that implements the data cluster management logic. • E.g. mongodb / mysql MongoDB MongoDBMongoDB MongoDB replica set ReplicaSet Controller Docker Swarm MongoDB replica set MongoDB replica set
  • 22. 21 Context Broker: How to implement that in Docker Swarm?  MongoDB • We create a service for mongo (using global, and volumes if we want persistency) • We create a service for the sidecar microservice • We leverage on health checks to evaluate single instance health  Why global? • If you want to leverage on volume for data persistency, you need to deal with the fact that there can be only 1 volume with a given name per swarm node. • How can I scale up / down then? □ Using placement constraints! version: '3.2' mongo: image: mongo:${MONGO_VERSION:-3.2} entrypoint: [ "/usr/bin/mongod", "--replSet", "${REPLICASET_NAME:-rs}", "--journal", "--smallfiles"] volumes: - mongodata:/data/db secrets: - mongo-healthcheck healthcheck: test: ["CMD", "bash", "/run/secrets/mongo-healthcheck"] interval: 1m timeout: 10s retries: 3 deploy: mode: global ... controller: image: martel/mongo-replica-ctrl:latest volumes: - /var/run/docker.sock:/var/run/docker.sock deploy: mode: replicated replicas: 1 placement: constraints: [node.role==manager] ...
  • 23. 22 Scaling Up and Down  docker service scale orion_orion=3  docker service scale orion_orion=2  Global Mode does not support scale up / down. Using Global Mode you can have as many mongo as cluster nodes.  Add a placement constraint to the mongo service • placement: constraints: [node.labels.mongo == yes]  Add/remove label to nodes to be (not) used for MongoDB • docker node update --label-add mongo=yes NODE Context Broker MongoDB
  • 24. 23 Multi Site (for replicated mode services)  In each site, have at least a Docker Swarm master. • The number of master should be always odd.  Add a “site” label to all the nodes part of a given site. • docker node update --label-add region=us NODE • docker node update --label-add region=eu NODE  Add a placement preference to the service (not supported in compose files!) • docker service update --placement-pref-add 'spread=node.labels.region’ SERVICE
  • 26. 25  cd tools/  sh create_networks.sh  cd ../data-management/context-broker/ha/  sh deploy_back.sh  docker service ls  docker service logs -f orion-backend_controller  sh deploy_front.sh  docker service ls  curl http://192.168.99.101:1026/version
  • 28. 27 Multi Site and Edge  Edge devices may not have a Public IP  Can we create a cluster connecting such devices?  OpenVPN is your friend! • Configure OpenVPN server on all the master nodes in the cloud using a multipoint configuration. • Configure OpenVPN clients on all the edge nodes. • Unfortunately, due to the fact that docker service does not support privileged mode, you cannot run OpenVPN as a container to create a Docker Swarm cluster  What if my edge nodes are based on a different architecture (e.g. ARM)? • Develop image manifests that implements v2.2 spec, this allows to redirect an image version to specific version per hardware platform. image: myprivreg:5000/someimage:latest manifests: - image: myprivreg:5000/someimage:ppc64le platform: architecture: ppc64le os: linux - image: myprivreg:5000/someimage:amd64 platform: architecture: amd64 features: - sse os: linux
  • 29. Træfik: advanced load balancing  Docker Swarm proxy is not configurable, for example it does not support sticky sessions  Traefik listens to backend /orchestrator API’s and detects any changes, applying it  Routes are dynamically managed  You can create / update / destroy routes at any time  Traefik reads service metadata on Docker / Kubernetes / etcd / etc • Hosts, ports, load balancing algorithm etc  You can configure SSL certifications • Let’s Encrypt integration requires a key-value storage • Let’s Encrypt integration requires public IP
  • 30. 29 Testing your dockerized platform  Learn from the GURU’s of micro service architectures!  Chaos Monkey  https://github.com/gaia-adm/pumba Netflix picture or /logo
  • 31. On going and future activities in FIWARE 30
  • 32. Did it look complex? I hope not  31
  • 33. 32 Smart Security • Common architecture patterns: e.g. scalability pattern • Common generic enablers: e.g. orion context- broker • Common data models: e.g. geo-location • Specific architecture patterns: e.g. secured data access pattern • Specific and customised generic enablers: e.g. security risk detection filters for kurento media server • Specific data models: e.g. security’s events Smart Security Application “recipe” 1. Analyse HA architectures for the different Data and IoT Management enablers 2. Creating Docker compose recipes to allow easy deployment of HA enablers 3. Making them available in FIWARE Lab to experimenters
  • 34. Do you have questions? Do you want to contribute? 33 Contact Us w w w.mart el-innov at e.com Federico M. Facca Head of Martel Lab [email protected] Dorfstrasse 73 – 3073 Gümligen (Switzerland) 004178 807 58 38

Editor's Notes

  • #8: Copy your code from a server to a VM, is not adding much advantages to your application.
  • #9: Cattle = you don’t care about the specific service instance, you replace it with another one: no affection! Pet = if the service dies, you cry like when your first pet died, because it’s un replaceable
  • #12: No status synch, no high availability
  • #14: No status synch, no high availability
  • #15: Thus this recall you anything?
  • #23: Nb: secrets requires compose 3.2 Docker 17.03+ / Config 3.3 Docker 17.06+
  • #24: By adding such label to more nodes, you will scale up. By removing it, scale down.
  • #29: https://github.com/estesp/manifest-tool