2. AboutMe:
● docker run -d --name=royeetager royee-tageraboutme:latest
● docker inspect royeetager
[
{
“Name": “Royee Tager",
“Age": “34",
“Role": “DevOps Engineer @ eXelate, A Nielsen Company",
"State": {
"Status": “Have been working on Docker for the last 2 years",
“Emails”: [
“royeectu@gmail.com”,
“royee.tager@nielsen.com"
]
“Mobile”: “050-6531133”,
“Linkedin": “https://il.linkedin.com/in/royeetager",
“Comment": “My #1 meetup"
}
}
]
3. http://www.exelate.com
Aboutexelate:
● Founded in 2007 - New York (~100 employees) & Israel (~60 employees)
● Big Data company
● Has been acquired by Nielsen in March 2015
● Products:
○ DMP (Data Management Platform) ⇒ NMC (Nielsen Marketing Cloud)
○ Data Marketplace
○ Analytics
4. WhoreliesontheeXelatecustomerdatacloud?
46 of the top 50 internet ad brands:
Directly and via partnerships with 125 of the world’s top media companies
Reaching 90% of US Households and 5B Global Unique Devices and its Users
6. Agenda&Objectivesofthismeetup:
● Share our knowledge & experience
● Why do we use Docker?
● What were our goals?
● Terms:
○ Orchestration & Scheduling
○ Service Discovery & Service Registration
○ Networking
● How did we choose our stack?
● Problems we encountered
● How to build an entire environment from scratch
● Tips & Tricks
● Q&A
7. Goals:
● Monolithic ⇒ Microservices
● Scale up infrastructure & applications
● Easy & quick deployments
● Easy to maintain
● Cluster orchestration, management & scheduling
● HA
● Monitoring the infrastructure & applications healthchecks
8. Howtochoose:
● Make a list of requirements
● Make a list of the technologies stack
● Read articles & forums
● Compare between the various solutions
● POC
● Attend meetups
● Don’t be afraid to change things
22. Whatwechose&why:
● We chose to work with:
○ Docker
○ Swarm
○ Consul
● Swarm uses the standard Docker API = the same docker CLI
● Swarm supports bare metal, VMS, cloud
● Swarm supports many discovery services (Consul, Etcd, ZookKeeper, Hosted)
● Consul service discovery via: DNS & HTTP
● Consul supports healthchecks
23. What’sinourplate:
● At least 2 (HA) Docker hosts (EC2 instances)
● At least 2 (HA) Swarm hosts (EC2 instances)
● At least 3 (quorum) Consul servers (EC2 instances)
25. Consul:
● Same binary for server / client (depends on the configuration)
● Install client on each docker host
● At least 3 (quorum) Consul servers (EC2 instances)
● DNS interface
● Web GUI
35. containerSchedulinginswarm:● Supported data stores: Consul, Etcd, ZooKeeper, Hosted (not sutiable for
production)
● Creating / starting containers in the cluster based on 2 steps:
○ 1 - Apply filters to exclude nodes:
■ Node Filters:
● Health - Prevents running containers on unhealthy nodes
● Constraint - Container on a host with a matching label or
metadata
■ Container Configuration Filters:
● Affinity - “Attractions” (name, id, image, label) between
containers
● Dependency - Container on the same host as another given
container (volume / network)
● Port - Selects a node where a particular port is available
○ 2 - Use a strategy to pick a node:
■ Random (not for production use)
■ Spread (default) - balance number of containers evenly across all
nodes
■ Binpack - Swarm optimizes for the node which is most packed
38. Registrator:
● Runs on each Docker host (it is also a container)
● Reads events from Docker socket (/var/run/docker.sock)
● Supported registry backends:
○ Consul
○ Etcd
○ SkyDNS 2
○ Zookeeper
http://gliderlabs.com/registrator/latest
41. Networking(overlay)inswarm:● The default is the bridge device
● Requires (prerequisite) a valid key-value store service
● Needs to configure the Docker daemon on each Docker host
● docker network create --driver overlay myNetwork
● docker run -d --name=example --net=myNetwork
● Gives us isolation
● You can attach containers to multiple networks
VSBridge Network: Overlay Network:
43. Monitoring:
● We use DataDog
● dd-agent (container) on each Docker host
● We use the following integrations:
○ Docker
○ AWS
○ Consul
○ Slack
https://www.datadoghq.com