SlideShare uma empresa Scribd logo
1 de 22
Application delivery in a container world
4 octobre 2016 . #TIAD . @tiadparis
# TIAD@ tiadparis
Who am I?
2
Laurent Bernaille @d2si
• Linux background
• Cloud enthousiast
• Opensource advocate
• Love discovering, building (and breaking…) new things
• Passionate about the ongoing IT transformations
@lbernail
# TIAD@ tiadparis
Docker from development to production
3
• Local development
• Docker and Continuous integration
• Deploying to servers: scheduling containers
• Multi-server setup: service discovery
• Updating my application safely: Blue green deployment
• Dynamically enable/disable features: Feature toggling
# TIAD@ tiadparis
Demo
• Local Build
• Run locally (docker-compose)
• Update code
• Commit
• Intregration with travis to publish image to ECR registry
docker build -t demotiad/vote:0.1 --build-arg version=0.1 vote
docker tag demotiad/vote:0.1 demotiad/vote:latest
specific version tag ARG for label
Alias image to latest
ARG version
ADD Dockerfile /Dockerfile
LABEL eu.d2-si.python_version="2.7"
LABEL eu.d2-si.application="vote"
LABEL eu.d2-si.version="${version}"
Metadata about the image
Amazon
ECR
# TIAD@ tiadparis 5
Bastion
eu-west-1a
Public subnets
Let’s create an environment in AWS to deploy
Private subnets
NAT
GW
Public subnets
Private subnets
eu-west-1b
Public subnets
Private subnets
eu-west-1c
# TIAD@ tiadparis
Scheduling
How do I run my containers?
• Manual : ssh / docker run
• Automated: ansible
How do I choose a host?
• Static (see before)
• With a generic scheduler (Mesos, Nomad)
• With a specialized scheduler (Kubernetes, ECS, Swarm)
Choosing your scheduler
• Most complete: Kubernetes
• Kubernetes and Swarm provide more than scheduling
- Higher level of abstraction
- Control networking
- Really worth looking into once if you have run production workloads for a while
- hosts: redis
tasks:
- name: Run redis
docker_container:
name: redis
image: redis
- hosts: app
tasks:
- name: Run app
docker
name: vote
image: demotiad/vote
Demo: ECS (good integration with AWS / terraform, simple)
# TIAD@ tiadparis
Service discovery
How do my containers find each other when I have multiple hosts?
• Static: set up /etc/hosts entries in containers
• Rely on service discovery from scheduler
* Kubernetes
* Swarm
> Big assumptions on the nework, intrusive (overlay, proxy, iptables)
• Use a separate tool for service discovery
+ More control
+ Can be used for non-containers workloads (and for communication with them)
- An additional tool to manage
app redis
redis ?
- hosts: redis
tasks:
- name: Run redis
docker_container:
name: redis
image: redis
- hosts: app
tasks:
- name: Run app
docker
name: vote
image: demotiad/vote
etc_hosts:
redis: 10.0.0.4
Demo: Consul (one of the reference standalone solution)
# TIAD@ tiadparis 8
Bastion
Public subnets
NAT
GW
Public subnets Public subnets
CAg
(UI)
CS CS CS
Let’s create a consul cluster
# TIAD@ tiadparis
ECS
9
Bastion
Public subnets
NAT
GW
Public subnets Public subnets
ECS ECS
EFS file system
EFS Mount target EFS Mount target EFS Mount target
/mnt/efs /mnt/efs /mnt/efs
Deploy ECS servers
CAg
(UI)
CS CS CS
# TIAD@ tiadparis
ECS
10
Bastion
Public subnets
NAT
GW
Public subnets Public subnets
CAg
(UI)
CS CS CS
ECS ECS
EFS file system
EFS Mount target EFS Mount target EFS Mount target
/mnt/efs /mnt/efs /mnt/efs
CAg RG Cad CAg RG Cad CAg RG Cad
docker events
We need some services on all nodes
# TIAD@ tiadparis
ECS
11
Bastion
Public subnets
NAT
GW
Public subnets Public subnets
CAg
(UI)
CS CS CS
ECS ECS
EFS file system
EFS Mount target EFS Mount target EFS Mount target
/mnt/efs /mnt/efs /mnt/efs
CAg RG Cad CAg RG Cad CAg RG Cad
docker events
Let’s start two containers
Rd Ash
redis?
# TIAD@ tiadparis
ECS
12
Bastion
Public subnets
NAT
GW
Public subnets Public subnets
CAg
(UI)
CS CS CS
ECS ECS
EFS file system
EFS Mount target EFS Mount target EFS Mount target
/mnt/efs /mnt/efs /mnt/efs/redis
CAg RG Cad CAg RG Cad CAg RG Cad
Let’s deploy our application: backends
Red
Ctmpl+Nginx Ctmpl+Nginx
# TIAD@ tiadparis
A few notes on ECS
ECS tasks
• run « manually » (part of ECS servers bootstrap here)
• Consist of one or several related containers (« pod »)
• Consul Agent / Registrator / cAdvisor
ECS services
• Run a given number of tasks on the cluster
• Ensure they remain running
• Scheduling
* find host with capacity
* try to run tasks of the same service on different nodes / AZ
- Redis : 1
- Haproxy + Consul Template : 2
Persistency
• No solution for dynamic volume migration
• We use EFS and mount an EFS sub-directory inside containers with data
# TIAD@ tiadparis
Consul template
• Watch for entries in consul
• Generate configuration based on these entries
• Here
* Generate nginx configuration
* Start nginx as a child process
* Reload nginx when configuration as changed
server {
location / {
proxy_pass http://{{key_or_default "routes/vote" "blue”}};
}
}
server {
location / {
proxy_pass http://blue;
}
}
key routes/vote ?
• Let’s create routes/vote and set it to green
# TIAD@ tiadparis
ECS
15
Bastion
Public subnets
NAT
GW
Public subnets Public subnets
CAg
(UI)
CS CS CS
ECS ECS
EFS file system
EFS Mount target EFS Mount target EFS Mount target
/mnt/efs /mnt/efs /mnt/efs/redis
CAg RG Cad CAg RG Cad CAg RG Cad
Red
Ctmpl+Nginx Ctmpl+Nginx
Deploy our app Vote: http://tiad.awsdemo.d2-si.eu
AppApp
# TIAD@ tiadparis
How did nginx find the containers?
upstream green {
{{ range service "votegreen" }}
server {{.Address}}:{{.Port}};{{end}}
}
upstream green {
server 10.255.128.166:32769;
server 10.255.129.118:32770;
}
service votegreen ?
# TIAD@ tiadparis
ECS
17
Bastion
Public subnets
NAT
GW
Public subnets Public subnets
CAg
(UI)
CS CS CS
ECS ECS
EFS file system
EFS Mount target EFS Mount target EFS Mount target
/mnt/efs /mnt/efs /mnt/efs/redis
CAg RG Cad CAg RG Cad CAg RG Cad
Red
Ctmpl+Nginx Ctmpl+Nginx
AppApp
What about a new version?
App App
# TIAD@ tiadparis
Blue Green deployment
HA
P
HA
P
AppApp App App
routes/vote: green
Test before switching
Acces blue containers directly
Use custom header: X-Color
map $http_x_color $color {
"green" "green";
"blue" "blue";
default "{{= key_or_default "routes/vote" "blue”}}";
}
server {
location / {
proxy_pass http://$color;
}
}
X-color = blue?
# TIAD@ tiadparis
When ok switch
HA
P
HA
P
AppApp App App
routes/vote: blue
Dynamic parameters
Get title from consul
params/title/blue
title=get_param("title",color,"Hello TIAD")
# TIAD@ tiadparis
Feature toggling
HA
P
HA
P
AppApp App App
routes/vote: blue
features/containerid/blue
Switch on/off features
Release code not validated yet
Simplify branch management (always ship trunk)
Advanced use cases
Canary deployment (x% users)
Specific users only
if is_enabled_feature("containerid",color):
message=message+" on container "+ hostname
« Always Ship Trunk » (Paul Hammond, Velocity 2010)
« Feature Toggles » (Martin Fowler 2016: http://martinfowler.com/articles/feature-toggles.htm)
# TIAD@ tiadparis
Conclusion and perspectives
Going into production with docker
• With containers OPS and DEV are closer than ever
• Continuous Integration as a source for images
• Service discovery will be a challenge
=> Not specific to containers but to microservices in general
A few other (somewhat unrelated) notes
• Docker in production will require experienced sysadmins
• Avoid putting stateful (db) services in containers
• Security (image sources, container permissions)
# TIAD@ tiadparis
Thank you
@lbernail
Look at / Fork the code of this demo on github
https://github.com/lbernail/demotiad
Questions ?

Mais conteúdo relacionado

Mais procurados

Infrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & AnsibleInfrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & AnsibleRobert Reiz
 
Rapid Development With Docker Compose
Rapid Development With Docker ComposeRapid Development With Docker Compose
Rapid Development With Docker ComposeJustin Crown
 
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境謝 宗穎
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochranedotCloud
 
Learn basic ansible using docker
Learn basic ansible using dockerLearn basic ansible using docker
Learn basic ansible using dockerLarry Cai
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsBen Hall
 
Adventures in docker compose
Adventures in docker composeAdventures in docker compose
Adventures in docker composeLinkMe Srl
 
Docker Security Deep Dive by Ying Li and David Lawrence
Docker Security Deep Dive by Ying Li and David LawrenceDocker Security Deep Dive by Ying Li and David Lawrence
Docker Security Deep Dive by Ying Li and David LawrenceDocker, Inc.
 
Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker, Inc.
 
Docker-hanoi meetup #1: introduction about Docker
Docker-hanoi meetup #1: introduction about DockerDocker-hanoi meetup #1: introduction about Docker
Docker-hanoi meetup #1: introduction about DockerNguyen Anh Tu
 
Continuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in CloudContinuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in CloudIdeato
 
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv Amazon Web Services
 
Docker Compose by Aanand Prasad
Docker Compose by Aanand Prasad Docker Compose by Aanand Prasad
Docker Compose by Aanand Prasad Docker, Inc.
 
Tectonic Summit 2016: Kubernetes 1.5 and Beyond
Tectonic Summit 2016: Kubernetes 1.5 and BeyondTectonic Summit 2016: Kubernetes 1.5 and Beyond
Tectonic Summit 2016: Kubernetes 1.5 and BeyondCoreOS
 

Mais procurados (20)

Docker up and running
Docker up and runningDocker up and running
Docker up and running
 
Docker Overview
Docker OverviewDocker Overview
Docker Overview
 
Infrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & AnsibleInfrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & Ansible
 
Rapid Development With Docker Compose
Rapid Development With Docker ComposeRapid Development With Docker Compose
Rapid Development With Docker Compose
 
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken Cochrane
 
Exploring Docker Security
Exploring Docker SecurityExploring Docker Security
Exploring Docker Security
 
Learn basic ansible using docker
Learn basic ansible using dockerLearn basic ansible using docker
Learn basic ansible using docker
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based Deployments
 
Adventures in docker compose
Adventures in docker composeAdventures in docker compose
Adventures in docker compose
 
Docker Security Deep Dive by Ying Li and David Lawrence
Docker Security Deep Dive by Ying Li and David LawrenceDocker Security Deep Dive by Ying Li and David Lawrence
Docker Security Deep Dive by Ying Li and David Lawrence
 
Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0
 
Docker-hanoi meetup #1: introduction about Docker
Docker-hanoi meetup #1: introduction about DockerDocker-hanoi meetup #1: introduction about Docker
Docker-hanoi meetup #1: introduction about Docker
 
Continuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in CloudContinuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in Cloud
 
Django via Docker
Django via DockerDjango via Docker
Django via Docker
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
 
Docker Compose by Aanand Prasad
Docker Compose by Aanand Prasad Docker Compose by Aanand Prasad
Docker Compose by Aanand Prasad
 
Tectonic Summit 2016: Kubernetes 1.5 and Beyond
Tectonic Summit 2016: Kubernetes 1.5 and BeyondTectonic Summit 2016: Kubernetes 1.5 and Beyond
Tectonic Summit 2016: Kubernetes 1.5 and Beyond
 
Docker in practice
Docker in practiceDocker in practice
Docker in practice
 

Semelhante a TIAD 2016 : Application delivery in a container world

Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)QAware GmbH
 
DCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker ContainersDCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker ContainersDocker, Inc.
 
DevEx | there’s no place like k3s
DevEx | there’s no place like k3sDevEx | there’s no place like k3s
DevEx | there’s no place like k3sHaggai Philip Zagury
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Patrick Chanezon
 
Kubered -Recipes for C2 Operations on Kubernetes
Kubered -Recipes for C2 Operations on KubernetesKubered -Recipes for C2 Operations on Kubernetes
Kubered -Recipes for C2 Operations on KubernetesJeffrey Holden
 
Test cloud application deployments locally and in CI without staging environm...
Test cloud application deployments locally and in CI without staging environm...Test cloud application deployments locally and in CI without staging environm...
Test cloud application deployments locally and in CI without staging environm...Thomas Rausch
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Mandi Walls
 
Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesQAware GmbH
 
Scaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceScaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceBen Hall
 
Docker DANS workshop
Docker DANS workshopDocker DANS workshop
Docker DANS workshopvty
 
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Docker, Inc.
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetesBen Hall
 
I Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other ThingsI Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other ThingsMichael Lange
 
Best Practices for Running Kafka on Docker Containers
Best Practices for Running Kafka on Docker ContainersBest Practices for Running Kafka on Docker Containers
Best Practices for Running Kafka on Docker ContainersBlueData, Inc.
 
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 2017Patrick Chanezon
 
K8s best practices from the field!
K8s best practices from the field!K8s best practices from the field!
K8s best practices from the field!DoiT International
 
HOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLDHOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLDAleksandr Maklakov
 
Docker Multi-arch All The Things
Docker Multi-arch All The ThingsDocker Multi-arch All The Things
Docker Multi-arch All The ThingsDocker, Inc.
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Arun prasath
 

Semelhante a TIAD 2016 : Application delivery in a container world (20)

Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
 
DCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker ContainersDCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker Containers
 
DevEx | there’s no place like k3s
DevEx | there’s no place like k3sDevEx | there’s no place like k3s
DevEx | there’s no place like k3s
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
 
Kubered -Recipes for C2 Operations on Kubernetes
Kubered -Recipes for C2 Operations on KubernetesKubered -Recipes for C2 Operations on Kubernetes
Kubered -Recipes for C2 Operations on Kubernetes
 
Test cloud application deployments locally and in CI without staging environm...
Test cloud application deployments locally and in CI without staging environm...Test cloud application deployments locally and in CI without staging environm...
Test cloud application deployments locally and in CI without staging environm...
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
 
Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit Kubernetes
 
Scaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceScaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container Service
 
Docker DANS workshop
Docker DANS workshopDocker DANS workshop
Docker DANS workshop
 
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 
I Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other ThingsI Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other Things
 
Best Practices for Running Kafka on Docker Containers
Best Practices for Running Kafka on Docker ContainersBest Practices for Running Kafka on Docker Containers
Best Practices for Running Kafka on Docker Containers
 
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
 
K8s best practices from the field!
K8s best practices from the field!K8s best practices from the field!
K8s best practices from the field!
 
HOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLDHOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLD
 
Kubernetes @ meetic
Kubernetes @ meeticKubernetes @ meetic
Kubernetes @ meetic
 
Docker Multi-arch All The Things
Docker Multi-arch All The ThingsDocker Multi-arch All The Things
Docker Multi-arch All The Things
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
 

Mais de The Incredible Automation Day

A smooth migration to Docker focusing on build pipelines - TIAD Camp Docker
A smooth migration to Docker focusing on build pipelines - TIAD Camp DockerA smooth migration to Docker focusing on build pipelines - TIAD Camp Docker
A smooth migration to Docker focusing on build pipelines - TIAD Camp DockerThe Incredible Automation Day
 
Docker in real life and in the Cloud - TIAD Camp Docker
Docker in real life and in the Cloud - TIAD Camp DockerDocker in real life and in the Cloud - TIAD Camp Docker
Docker in real life and in the Cloud - TIAD Camp DockerThe Incredible Automation Day
 
Orchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp DockerOrchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp DockerThe Incredible Automation Day
 
Strategy, planning and governance for enterprise deployments of containers - ...
Strategy, planning and governance for enterprise deployments of containers - ...Strategy, planning and governance for enterprise deployments of containers - ...
Strategy, planning and governance for enterprise deployments of containers - ...The Incredible Automation Day
 
Opening Keynote - TIAD Camp Microsoft Cloud Readiness
Opening Keynote - TIAD Camp Microsoft Cloud ReadinessOpening Keynote - TIAD Camp Microsoft Cloud Readiness
Opening Keynote - TIAD Camp Microsoft Cloud ReadinessThe Incredible Automation Day
 
GitLab CI Packer - TIAD Camp Microsoft Cloud Readiness
GitLab CI Packer - TIAD Camp Microsoft Cloud ReadinessGitLab CI Packer - TIAD Camp Microsoft Cloud Readiness
GitLab CI Packer - TIAD Camp Microsoft Cloud ReadinessThe Incredible Automation Day
 
Active Directory - TIAD Camp Microsoft Cloud Readiness
Active Directory - TIAD Camp Microsoft Cloud ReadinessActive Directory - TIAD Camp Microsoft Cloud Readiness
Active Directory - TIAD Camp Microsoft Cloud ReadinessThe Incredible Automation Day
 
Application Stack - TIAD Camp Microsoft Cloud Readiness
Application Stack - TIAD Camp Microsoft Cloud ReadinessApplication Stack - TIAD Camp Microsoft Cloud Readiness
Application Stack - TIAD Camp Microsoft Cloud ReadinessThe Incredible Automation Day
 
Serverless low cost analytics by Adways y Audric Guigon
Serverless low cost analytics by Adways y Audric GuigonServerless low cost analytics by Adways y Audric Guigon
Serverless low cost analytics by Adways y Audric GuigonThe Incredible Automation Day
 
Operationnal challenges behind Serverless architectures by Laurent Bernaille
Operationnal challenges behind Serverless architectures by Laurent BernailleOperationnal challenges behind Serverless architectures by Laurent Bernaille
Operationnal challenges behind Serverless architectures by Laurent BernailleThe Incredible Automation Day
 
Build chatbots with api.ai and Google cloud functions
Build chatbots with api.ai and Google cloud functionsBuild chatbots with api.ai and Google cloud functions
Build chatbots with api.ai and Google cloud functionsThe Incredible Automation Day
 

Mais de The Incredible Automation Day (20)

A smooth migration to Docker focusing on build pipelines - TIAD Camp Docker
A smooth migration to Docker focusing on build pipelines - TIAD Camp DockerA smooth migration to Docker focusing on build pipelines - TIAD Camp Docker
A smooth migration to Docker focusing on build pipelines - TIAD Camp Docker
 
Docker in real life and in the Cloud - TIAD Camp Docker
Docker in real life and in the Cloud - TIAD Camp DockerDocker in real life and in the Cloud - TIAD Camp Docker
Docker in real life and in the Cloud - TIAD Camp Docker
 
Orchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp DockerOrchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp Docker
 
Monitoring in 2017 - TIAD Camp Docker
Monitoring in 2017 - TIAD Camp DockerMonitoring in 2017 - TIAD Camp Docker
Monitoring in 2017 - TIAD Camp Docker
 
Strategy, planning and governance for enterprise deployments of containers - ...
Strategy, planning and governance for enterprise deployments of containers - ...Strategy, planning and governance for enterprise deployments of containers - ...
Strategy, planning and governance for enterprise deployments of containers - ...
 
Cluster SQL - TIAD Camp Microsoft Cloud Readiness
Cluster SQL - TIAD Camp Microsoft Cloud ReadinessCluster SQL - TIAD Camp Microsoft Cloud Readiness
Cluster SQL - TIAD Camp Microsoft Cloud Readiness
 
Build the VPC - TIAD Camp Microsoft Cloud Readiness
Build the VPC - TIAD Camp Microsoft Cloud ReadinessBuild the VPC - TIAD Camp Microsoft Cloud Readiness
Build the VPC - TIAD Camp Microsoft Cloud Readiness
 
Opening Keynote - TIAD Camp Microsoft Cloud Readiness
Opening Keynote - TIAD Camp Microsoft Cloud ReadinessOpening Keynote - TIAD Camp Microsoft Cloud Readiness
Opening Keynote - TIAD Camp Microsoft Cloud Readiness
 
Replatforming - TIAD Camp Microsoft Cloud Readiness
Replatforming - TIAD Camp Microsoft Cloud ReadinessReplatforming - TIAD Camp Microsoft Cloud Readiness
Replatforming - TIAD Camp Microsoft Cloud Readiness
 
GitLab CI Packer - TIAD Camp Microsoft Cloud Readiness
GitLab CI Packer - TIAD Camp Microsoft Cloud ReadinessGitLab CI Packer - TIAD Camp Microsoft Cloud Readiness
GitLab CI Packer - TIAD Camp Microsoft Cloud Readiness
 
Active Directory - TIAD Camp Microsoft Cloud Readiness
Active Directory - TIAD Camp Microsoft Cloud ReadinessActive Directory - TIAD Camp Microsoft Cloud Readiness
Active Directory - TIAD Camp Microsoft Cloud Readiness
 
Application Stack - TIAD Camp Microsoft Cloud Readiness
Application Stack - TIAD Camp Microsoft Cloud ReadinessApplication Stack - TIAD Camp Microsoft Cloud Readiness
Application Stack - TIAD Camp Microsoft Cloud Readiness
 
Keynote TIAD Camp Serverless
Keynote TIAD Camp ServerlessKeynote TIAD Camp Serverless
Keynote TIAD Camp Serverless
 
From AIX to Zero-ops by Pierre Baillet
From AIX to Zero-ops by Pierre BailletFrom AIX to Zero-ops by Pierre Baillet
From AIX to Zero-ops by Pierre Baillet
 
Serverless low cost analytics by Adways y Audric Guigon
Serverless low cost analytics by Adways y Audric GuigonServerless low cost analytics by Adways y Audric Guigon
Serverless low cost analytics by Adways y Audric Guigon
 
Operationnal challenges behind Serverless architectures by Laurent Bernaille
Operationnal challenges behind Serverless architectures by Laurent BernailleOperationnal challenges behind Serverless architectures by Laurent Bernaille
Operationnal challenges behind Serverless architectures by Laurent Bernaille
 
Build chatbots with api.ai and Google cloud functions
Build chatbots with api.ai and Google cloud functionsBuild chatbots with api.ai and Google cloud functions
Build chatbots with api.ai and Google cloud functions
 
Real time serverless data pipelines on AWS
Real time serverless data pipelines on AWSReal time serverless data pipelines on AWS
Real time serverless data pipelines on AWS
 
Azure functions
Azure functionsAzure functions
Azure functions
 
TIAD 2016 - Beyond windowsautomation
TIAD 2016 - Beyond windowsautomation TIAD 2016 - Beyond windowsautomation
TIAD 2016 - Beyond windowsautomation
 

Último

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

TIAD 2016 : Application delivery in a container world

  • 1. Application delivery in a container world 4 octobre 2016 . #TIAD . @tiadparis
  • 2. # TIAD@ tiadparis Who am I? 2 Laurent Bernaille @d2si • Linux background • Cloud enthousiast • Opensource advocate • Love discovering, building (and breaking…) new things • Passionate about the ongoing IT transformations @lbernail
  • 3. # TIAD@ tiadparis Docker from development to production 3 • Local development • Docker and Continuous integration • Deploying to servers: scheduling containers • Multi-server setup: service discovery • Updating my application safely: Blue green deployment • Dynamically enable/disable features: Feature toggling
  • 4. # TIAD@ tiadparis Demo • Local Build • Run locally (docker-compose) • Update code • Commit • Intregration with travis to publish image to ECR registry docker build -t demotiad/vote:0.1 --build-arg version=0.1 vote docker tag demotiad/vote:0.1 demotiad/vote:latest specific version tag ARG for label Alias image to latest ARG version ADD Dockerfile /Dockerfile LABEL eu.d2-si.python_version="2.7" LABEL eu.d2-si.application="vote" LABEL eu.d2-si.version="${version}" Metadata about the image Amazon ECR
  • 5. # TIAD@ tiadparis 5 Bastion eu-west-1a Public subnets Let’s create an environment in AWS to deploy Private subnets NAT GW Public subnets Private subnets eu-west-1b Public subnets Private subnets eu-west-1c
  • 6. # TIAD@ tiadparis Scheduling How do I run my containers? • Manual : ssh / docker run • Automated: ansible How do I choose a host? • Static (see before) • With a generic scheduler (Mesos, Nomad) • With a specialized scheduler (Kubernetes, ECS, Swarm) Choosing your scheduler • Most complete: Kubernetes • Kubernetes and Swarm provide more than scheduling - Higher level of abstraction - Control networking - Really worth looking into once if you have run production workloads for a while - hosts: redis tasks: - name: Run redis docker_container: name: redis image: redis - hosts: app tasks: - name: Run app docker name: vote image: demotiad/vote Demo: ECS (good integration with AWS / terraform, simple)
  • 7. # TIAD@ tiadparis Service discovery How do my containers find each other when I have multiple hosts? • Static: set up /etc/hosts entries in containers • Rely on service discovery from scheduler * Kubernetes * Swarm > Big assumptions on the nework, intrusive (overlay, proxy, iptables) • Use a separate tool for service discovery + More control + Can be used for non-containers workloads (and for communication with them) - An additional tool to manage app redis redis ? - hosts: redis tasks: - name: Run redis docker_container: name: redis image: redis - hosts: app tasks: - name: Run app docker name: vote image: demotiad/vote etc_hosts: redis: 10.0.0.4 Demo: Consul (one of the reference standalone solution)
  • 8. # TIAD@ tiadparis 8 Bastion Public subnets NAT GW Public subnets Public subnets CAg (UI) CS CS CS Let’s create a consul cluster
  • 9. # TIAD@ tiadparis ECS 9 Bastion Public subnets NAT GW Public subnets Public subnets ECS ECS EFS file system EFS Mount target EFS Mount target EFS Mount target /mnt/efs /mnt/efs /mnt/efs Deploy ECS servers CAg (UI) CS CS CS
  • 10. # TIAD@ tiadparis ECS 10 Bastion Public subnets NAT GW Public subnets Public subnets CAg (UI) CS CS CS ECS ECS EFS file system EFS Mount target EFS Mount target EFS Mount target /mnt/efs /mnt/efs /mnt/efs CAg RG Cad CAg RG Cad CAg RG Cad docker events We need some services on all nodes
  • 11. # TIAD@ tiadparis ECS 11 Bastion Public subnets NAT GW Public subnets Public subnets CAg (UI) CS CS CS ECS ECS EFS file system EFS Mount target EFS Mount target EFS Mount target /mnt/efs /mnt/efs /mnt/efs CAg RG Cad CAg RG Cad CAg RG Cad docker events Let’s start two containers Rd Ash redis?
  • 12. # TIAD@ tiadparis ECS 12 Bastion Public subnets NAT GW Public subnets Public subnets CAg (UI) CS CS CS ECS ECS EFS file system EFS Mount target EFS Mount target EFS Mount target /mnt/efs /mnt/efs /mnt/efs/redis CAg RG Cad CAg RG Cad CAg RG Cad Let’s deploy our application: backends Red Ctmpl+Nginx Ctmpl+Nginx
  • 13. # TIAD@ tiadparis A few notes on ECS ECS tasks • run « manually » (part of ECS servers bootstrap here) • Consist of one or several related containers (« pod ») • Consul Agent / Registrator / cAdvisor ECS services • Run a given number of tasks on the cluster • Ensure they remain running • Scheduling * find host with capacity * try to run tasks of the same service on different nodes / AZ - Redis : 1 - Haproxy + Consul Template : 2 Persistency • No solution for dynamic volume migration • We use EFS and mount an EFS sub-directory inside containers with data
  • 14. # TIAD@ tiadparis Consul template • Watch for entries in consul • Generate configuration based on these entries • Here * Generate nginx configuration * Start nginx as a child process * Reload nginx when configuration as changed server { location / { proxy_pass http://{{key_or_default "routes/vote" "blue”}}; } } server { location / { proxy_pass http://blue; } } key routes/vote ? • Let’s create routes/vote and set it to green
  • 15. # TIAD@ tiadparis ECS 15 Bastion Public subnets NAT GW Public subnets Public subnets CAg (UI) CS CS CS ECS ECS EFS file system EFS Mount target EFS Mount target EFS Mount target /mnt/efs /mnt/efs /mnt/efs/redis CAg RG Cad CAg RG Cad CAg RG Cad Red Ctmpl+Nginx Ctmpl+Nginx Deploy our app Vote: http://tiad.awsdemo.d2-si.eu AppApp
  • 16. # TIAD@ tiadparis How did nginx find the containers? upstream green { {{ range service "votegreen" }} server {{.Address}}:{{.Port}};{{end}} } upstream green { server 10.255.128.166:32769; server 10.255.129.118:32770; } service votegreen ?
  • 17. # TIAD@ tiadparis ECS 17 Bastion Public subnets NAT GW Public subnets Public subnets CAg (UI) CS CS CS ECS ECS EFS file system EFS Mount target EFS Mount target EFS Mount target /mnt/efs /mnt/efs /mnt/efs/redis CAg RG Cad CAg RG Cad CAg RG Cad Red Ctmpl+Nginx Ctmpl+Nginx AppApp What about a new version? App App
  • 18. # TIAD@ tiadparis Blue Green deployment HA P HA P AppApp App App routes/vote: green Test before switching Acces blue containers directly Use custom header: X-Color map $http_x_color $color { "green" "green"; "blue" "blue"; default "{{= key_or_default "routes/vote" "blue”}}"; } server { location / { proxy_pass http://$color; } } X-color = blue?
  • 19. # TIAD@ tiadparis When ok switch HA P HA P AppApp App App routes/vote: blue Dynamic parameters Get title from consul params/title/blue title=get_param("title",color,"Hello TIAD")
  • 20. # TIAD@ tiadparis Feature toggling HA P HA P AppApp App App routes/vote: blue features/containerid/blue Switch on/off features Release code not validated yet Simplify branch management (always ship trunk) Advanced use cases Canary deployment (x% users) Specific users only if is_enabled_feature("containerid",color): message=message+" on container "+ hostname « Always Ship Trunk » (Paul Hammond, Velocity 2010) « Feature Toggles » (Martin Fowler 2016: http://martinfowler.com/articles/feature-toggles.htm)
  • 21. # TIAD@ tiadparis Conclusion and perspectives Going into production with docker • With containers OPS and DEV are closer than ever • Continuous Integration as a source for images • Service discovery will be a challenge => Not specific to containers but to microservices in general A few other (somewhat unrelated) notes • Docker in production will require experienced sysadmins • Avoid putting stateful (db) services in containers • Security (image sources, container permissions)
  • 22. # TIAD@ tiadparis Thank you @lbernail Look at / Fork the code of this demo on github https://github.com/lbernail/demotiad Questions ?