#msitconf
Damien Caro Technical Evangelist Manager, Что будет, если приложение поместить в контейнер? What happens if the application is placed in a container?
Agenda Why containers? How to create an application in a container? Running an application in a world of containers Managing containers Questions ?
Shipping evolved
Isolation Techniques More Isolated Threads Processes Process level Virtual Machines Java,.Net Process Groups Job Objects System Virtual Machines Hpyer-V, Xen, VMWare Operating System VMs Ex: IBM CP/CPS Containers Docker on Linux Application Virtualization App-V, VMWare ThinApp
Why Containers ? DevOps People, process & tools integration Optimized app development process Operations focused on standardized infrastructure Developers focused on building deploying and testing apps. Developers Write-once, run-anywhere Deployed as multi-tier distributed apps Powerful abstraction for microservices Operations Familiar deployment models Standardized environments for development, QA and production. Abstract the differences in OS distributions and underlying infrastructure Higher utilization and compute density Rapid scale-up / scale down
Creating your first container Docker fundamentals Provisioning your VM Technical requirement Constraints Running Hello World Getting a container Docker Hub
Docker Architecture – High level Docker ClientDocker Engine Docker Hub Docker Registry A Docker Registry B … Public Repository Private Repository
Docker Architecture Cient-Server architecture Client talk to daemon (can be on the same machine) Docker Host can run multiple containers
Docker Architecture Docker Client Docker Engine Linux Kernel Resource Management / namespace virt.Networking Storage / File system cgroups selinuxnetlinknetfilter apparmornamespacesbridgevfsAUFS DeviceMapper btrfs libcontainer Docker-Networkgraph libvirtlxc Optional, in place of libcontainer
Running an application Images Read-only template The base to create containers Registry The store for the Docker images Public or private Containers Networking Port mapping IP Address DockerFile
Microsoft IT Conference #MSITConf ДЕМОНСТРАЦИЯ Hello World – Running a container
Managing containers
Kubernetes Manage a cluster of containers Labels & Pods Group of containers with shared columes Logical units Smallest unit that can be created with Kubernetes Definition based on JSON files Azure supports Kubernetes hosts on VMs Deployment provided via simple Shell script
Microsoft Azure Pod Kubernetes architecture Master Server
Sample pod definition { “id”: “redis-master”, “kind”: “Pod”, “apiVersion”: “v1beta1”, “desiredState”: { “manifest”: { “version”: “v1beta1”, “id”: “redis-master”, “containers”: [{ “name”: “master”, “image”: “dockerfile/redis”, “cpu”: 100, “ports”: [{ “containerPort”: 6379, “hostPort”: 6379 }] } }, “labels”: { “name”: “redis-master” }
Demo script Azure supports Kubernetes hosts on VMs Deployment provided via simple Shell script
Microsoft IT Conference #MSITConf ДЕМОНСТРАЦИЯ Deploying containers in Azure with Kubernetes
Summary Why containers in the cloud world? Running a simple container Creating your own container Managing containers with Kubernetes on Azure
Resources Azure Using Docker on Azure: Azure Azure Docker Documentation: User guide: Docker Hub: Kubernetes GitHub MSOpenTech Using Docker and Kubernetes on Azure: microsoft-azure-with-kubernetes-visualizer/ microsoft-azure-with-kubernetes-visualizer/
Questions? Damien Caro Technical Evangelist Manager
©2015 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.