containers and orchestration approaches
TRANSCRIPT
Containers & orchestration approaches
@derya_sezenDevOps Consultant / kloia
docker● “Industry 3.0” of Software Development
● “Infrastructure-as-code” DevOps Practice
● Infra Cost Optimisation(Storage/VM)
● Binary/Byte + Hosting/OS Dependencies
● Identical dev-test-staging-prod...
Docker 1.12● Swarm-mode: Orchestration built-in,
Infra-agnostic
● Cryptographic Node Security: Mutual TLS, Key
rotation, Notary & TUF
● Routing Mesh: Service Discovery, Container
native load-balancing, Works with current LB,
IPVS
docker-Dev. Env.- “Local” Development Environment
- Lightweight vs. Vagrant
- Local vs. Prod identical
- “Infra-as-code” DevOps practice
docker-dockerfileDockerfile Image
docker-architecture
docker-Dev. Env.Dockerfile initiatives:
● FROM
● COPY/ADD
● RUN
● CMD/ENTRYPOINT
Docker-docker compose
Docker-docker machine
ORCHESTRATORS
dockerhttps://github.com/docker/example-voting-app
Docker datacenter- On-premises & cloud
- UCP (Universal Control Plane): Deploy&Manage Apps
- Docker Trusted Registry: Secure Images
Docker datacenter - deploy?● Set ENV for remote deploy:
○ DOCKER_HOST=tcp://kloiaclbpiplabel.westeurope.cloudapp.azure.com:443
○ DOCKER_TLS_VERIFY=1
○ DOCKER_CERT_PATH=/Users/dsezen/code/example-voting-app/ucp
● Convert docker-compose.yml to “dab”:○ docker-compose bundle
● Deploy via cli:○ docker deploy votingappdocker
Mesos● Apache Foundation Project
● C++
● Uber, Samsung, Verizon, Autodesk, Azure,
Twitter, Airbnb, Yelp, Ebay, Apple…
Mesos - marathon● Orchestration - Deploy
● Scala
● Service Discovery
● Event Subscription
● Docker natively supported
Mesos - OTHER● Chronos: Java, Replacement for cron
● Aurora: Twitter, Marathon + Chronos
● Mesosphere: DC/OS
Mesos - DC/OS● “DataCenter Operating System” abstracts resources such as CPU, RAM, and networking
● Distributed Operating System based on the Apache Mesos
● Embedded Marathon, Chronos
#dcos package install spark
#dcos cluster resize 100
Mesos - DC/OS - deploy?● dcos cli:
○ dcos marathon group add votingapp.json
● REST API:
○ curl -X POST http://10.141.141.10:8080/v2/apps -d @basic-3.json -H "Content-type: application/json"
rancher● Orchestration-agnostic: Swarm, Kubernetes, Mesos, Cattle
● Infra-agnostic: on-premises, public-cloud
● Open Source
questions?