Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Docker and Azure: Design, Deploy, and Scale

870 views

Published on

There is already significant momentum in the industry toward building applications for containerized environments - with Docker leading the way. If you don’t develop applications with containers and micro services architecture in mind, rest assured you will. This session will provide a look at the designing, developing, and deploying distributed applications to Docker on Azure - including a look at the ecosystem of resources and tools like Docker Hub, Kubernetes, and Swarm.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Docker and Azure: Design, Deploy, and Scale

  1. 1. Docker and Azure: Design, Deploy, and Scale Michele Leroux Bustamante Cofounder, Solliance Cloud / Security Architect michelebusta@solliance.net
  2. 2. What’s the plan? • Discuss what’s available on Azure for Docker • How do you create, deploy and run containers? • What does scaling look like? • Where are things heading?
  3. 3. Virtualization vs. Containerization VM OS Docker Engine VM Host OS Hypervisor Guest OS Guest OS Guest OS Binaries Binaries Binaries App A App B App B Binaries Shared Binaries App A App B App B Container NOT a Container
  4. 4. Virtualization vs. Containerization VM OS Docker Engine VM Host OS Hypervisor Guest OS Guest OS Guest OS Binaries Binaries Binaries App A App B App B Binaries Shared Binaries App A App B App B No OS OS Fast Efficient Simple Practical
  5. 5. DEMO 1: Registry, Images, Containers • SETUP: • Docker Tools installed • Local virtual box • Download existing image • Create and run container • Access application • Stop / start container
  6. 6. ###DEMO1: REFERENCE ### Local Docker illustration #Run a Ghost container based on the latest Docker Hub image #Browse to site at virtual box IP:PORT ###Commands: $ docker images $ docker ps $ docker stop ghost $ docker run ghost
  7. 7. Docker and Azure • VM templates • Support for Docker on Linux or Windows VM • Container images target the OS, cannot share • Container Service • Azure Container Service • ARM templates to preconfigure environment • Eventually containers as a first class citizen • Eventually container orchestration built-in (Mesos) • Comparable to: • Amazon EC2 Container Service • Google Container Service
  8. 8. Azure VM Templates • Create Linux or Windows VM with Docker installed • Docker VM Extension • Docker CLI commands are the same on Windows!
  9. 9. Container Templates • Single container • Multi-container
  10. 10. Images and Containers • Images are created from • Dockerfile • Repository • Create one from a container • Containers are based on an image • Run a container, stop, start, etc.
  11. 11. DEMO 2: Create, tag, publish image -> run • Build an image from a Dockerfile • Tag an image, for versioning • Publish an image to Docker Hub • Run a container from published image • Update an image, apply tag, publish an update
  12. 12. ###DEMO2 REFERENCE #build image, push to docker hub, run container #Create a Linux VM with Docker installed ###Building from the machine #Navigate to repo for Docker Hub /dasblonde/editdemo, review files #Build the image, tag it, push it to Docker Hub $ docker build --no-cache -t dasblonde/editdemo . $ docker tag dasblonde/editdemo:latest dasblonde/editdemo:v1 $ docker push dasblonde/editdemo #Show Docker Hub registry $ docker run -d --name editdemov1 -p 8080:8080 dasblonde/editdemo:v1 #Browse to machine at port 8080
  13. 13. ###DEMO2 REFERENCE (2/2) #version image, publish update, run container from versioned image #Update Dockerfile to create from base v1 image and modify $ docker build -t dasblonde/editdemo:v2 -f DockerfileUpdateToV2 . #Review images, note latest points at v1 $ docker tag -f dasblonde/editdemo:v2 dasblonde/editdemo:latest $ docker push dasblonde/editdemo #Note updates to Docker Hub versions #Run new version $ docker run -d --name editdemov2 -p 8081:8080 dasblonde/editdemo:v2
  14. 14. DEMO 3: Access container, modify, run • Log in to container on Docker VM • Modify a file • Save, exit, run container
  15. 15. ###DEMO3 REFERENCE #Access container, modify files, run container with changes ### connect to the container, modify file, exit $ docker exec -ti editdemov2 /bin/bash $ vi FILENAME $ CTRL + D ### commit container changes to a new image v3, tag it $ docker commit –m “installed VIM” editdemov2 dasblonde/editdemo:v3 $ docker tag -f dasblonde/editdemo:v3 dasblonde/editdemo:latest ### push images to Docker Hub $ docker push dasblonde/editdemo ### create and run container v3 $ docker run -d --name editdemov3 -p 8082:8080 dasblonde/editdemo:v3
  16. 16. DEMO 4: compose multiple containers • ASSUMPTION: Docker Compose is installed • Create a yml file to compose containers • Example: • Node.js client, external port • Redis cache service, internal port
  17. 17. ### Install docker-compose if not available # NOTE: Compose 1.4.2 requires Docker 1.7.0 or later $ curl -L https://github.com/docker/compose/releases/download/1.4.2/docker-compose- `uname -s`-`uname -m` > /usr/local/bin/docker-compose $ chmod +x /usr/local/bin/docker-compose
  18. 18. ###DEMO4 REFERENCE ### navigate to yml folder, create and start containers $ docker-compose up –d ### stop / start /restart containers $ docker-compose stop $ docker-compose start $ docker-compose restart ### view logs $ docker-compose logs ### browse to container, app is deployed
  19. 19. Orchestration • Orchestrators schedule deployments usually across a cluster • For example: • Swarm and Compose (Docker) • Kubernetes (Google) • Mesos + Swarm, Chronos, Marathon (Mesosphere)
  20. 20. Clustering with Swarm • ARM templates available to kick start • Simple cluster template • Single swarm master • Multiple agent nodes (3) • Clustered swarm template • Multiple swarm master/slave topology (3) • Multiple agent nodes (3)
  21. 21. DEMO 5: Deploying to a cluster with swarm • SETUP: • Provision Azure with ARM template • Swarm master node • Agent nodes each have swarm agent running • Deploy to swarm master • View provisioned containers across cluster • View information about the cluster
  22. 22. ###DEMO5 REFERENCE # deploy to swarm from remote machine # or could access swarm master and do from that machine ### what’s in the swarm? ### replace IP with your swarm DNS docker -H tcp://0.0.0.0:2376 ps docker -H tcp://0.0.0.0:2376 info ### deploy something, ghost on swarm docker -H tcp://0.0.0.0:2376 run -d ghost ### deploy more, another ghost, redis etc # note swarm decides how to allocate based on cluster resources
  23. 23. Containers / Microservices on Azure • Now: • Linux VMs • Windows Server Container VMs • Container Templates • Container / VM Clustering Templates • Future: • Hyper-V Containers • Azure Container Service • Container Resources • Mesosphere Data Center Operating System (DCOS) • Service Fabric
  24. 24. DCOS • See 7 minute demo at Mesosphere site regarding DCOS • Very impressive vision regarding container orchestration, scale and disaster recovery
  25. 25. About Michele Michele Leroux Bustamante michelebusta@solliance.net @michelebusta Solliance Cofounder Cloud / Security Architect Microsoft Regional Director since 2003 Microsoft MVP – Microsoft Azure Azure Elite, Azure Insider
  26. 26. Glöm inte att utvärdera sessionen direkt i Microsoft TechDays-appen!

×