CDP-B382 Docker and Microsoft: How Azure is Bringing the World of Windows and Linux Together TechEd Europe Nick Stinemates / Corey Sanders Agenda • • • • • • • Introduction The growing technology challenge An analogy: the shipping industry Docker Engine Overview Docker Hub Overview Microsoft and Docker: partnership Azure and Docker Nick Stinemates • • • • • • Head of Business Development & Technical Alliances at Docker, Inc or: PARTNERS! Open Source Fanatic Programming most of my life: started on VB3 for Windows 3.1 I love to talk, so.. please get in touch nick@docker.com | @nickstinemates | github.com/keeb | keeb on Freenode Corey Sanders • • • • • • • Partner Group Program Manager at Microsoft IaaS on Azure Former Windows Developer Re-learning Open Source Programming most of my life: started on Visual Basic on Apple IIE I like making jokes… corey.sanders@Microsoft.com @ CoreySandersWA Agenda • • • • • • • Introduction The growing technology challenge An analogy: the shipping industry Docker Engine Overview Docker Hub Overview Microsoft and Docker: partnership Azure and Docker Applications Have Fundamentally Changed ~2000 2014 Long lived Development is iterative and constant Monolithic and built on a single stack Built from loosely coupled components Deployed to a single server Deployed to a multitude of servers User DB postgresql + pgv8 + Static website Queu e Analytics DB hadoop + hive + thrift + Redis + redis-sentinel OpenJDK v8 nginx 1.5 + modsecurity + openssl + bootstrap 2 Web frontend Background workers Python 3.0 + celery + pyredis + libcurl + ffmpeg + libopencv + nodejs + phantomjs Ruby + Rails + sass + Unicorn API endpoint Do services and apps interact appropriately? Multiplicity of Stacks The Problem in 2014: Distributed Applications Development VM Public Cloud Production Cluster QA server Disaster recovery Customer Data Center Production Servers Contributor’s laptop Can I migrate smoothly and quickly? Multiplicity of hardware environments Python 2.7 + Flask + pyredis + celery + psycopg + postgresql-client The Matrix From Hell Static website ? ? ? ? ? ? ? Web frontend ? ? ? ? ? ? ? Background workers ? ? ? ? ? ? ? User DB ? ? ? ? ? ? ? Analytics DB ? ? ? ? ? ? ? Queue ? ? ? ? ? ? ? Single Prod Server Onsite Cluster Public Cloud Contributor’ s laptop Customer Servers Developmen QA Server t VM Multiplicity of Goods Do I worry about how goods interact (e.g. coffee beans next to spices) Can I transport quickly and smoothly (e.g. from boat to train to truck) Multipilicity of methods for transporting/storin g An Inspiration: Cargo Transport Pre-1960 A standard container that is loaded with virtually any goods, and stays sealed until it reaches final delivery. …in between, can be loaded and unloaded, stacked, transported efficiently over long distances, and transferred from one mode of transport to another Can I transport quickly and smoothly (e.g. from boat to train to truck) Multiplicity of methods for transporting/storing Do I worry about how goods interact (e.g. coffee beans next to spices) Multiplicity of Goods Solution: Intermodal Shipping Container Ecosystem The Intermodal Shipping Container Ecosystem • • • • • • 90% of all cargo now shipped in a standard container Order of magnitude reduction in cost and time to load and unload ships Massive reduction in losses due to theft or damage Huge reduction in freight cost as percent of final goods (from >25% to <3%) massive globalization 5000 ships deliver 200M containers per year Static website User DB Queu e Web frontend Analytics DB An engine that enables any payload to be encapsulated as a lightweight, portable, self-sufficient container… Multiplicity of hardware environments Development VM QA server Customer Data Center Public Cloud Production Cluster Contributor’s laptop Can I migrate smoothly and quickly …that can be manipulated using standard operations and run consistently on virtually any hardware platform Do services and apps interact appropriately? Multiplicity of Stacks Let’s create an ecosystem for distributed applications And eliminate the matrix from Hell Static website Web frontend Background workers User DB Analytics DB Queue Developmen QA Server t VM Single Prod Server Onsite Cluster Public Cloud Contributor’ s laptop Customer Servers Importance of an Ecosystem • • • • Container technology has been around for a while ( LXC, Solaris Zones, BSD Jails) Analogy: Shipping containers are not just steel boxes With Docker, low level containers get the following: Re-usable components Ability to run on any Linux server today: physical, virtual, VM, cloud, OpenStack, +++ Ability to move between any of the above in a matter of seconds-no modification or delay Ability to share containerized components Self contained environment—no dependency hell Tools for how containers work together: linking, nesting, discovery, orchestration “Containerization” is really “Dockerization” Snapshot: The Docker Ecosystem Community Partners 640+ Contributors 250+ Meetups on Docker 38M Downloads 16K Projects on GitHub The Docker Platform Support Enterprise Support Docker Engine Docker Hub Robust Documentation Implementation, Integration, Training Network of Partners Users Content Official Repos&&35 DockerizedApps Apps Official Repos 14K+KDockerized Build, Ship, and Run Agenda • • • • • • • Introduction The growing technology challenge An analogy: the shipping industry Docker Engine Overview Docker Hub Overview Microsoft and Docker Azure and Docker Docker Engine • Open Source Project written in Go • Released March, 2013 • Provides the Docker Container - Repeatable Runtimes, Sandboxing, Network, and Storage • Linux and (soon) Windows CLI tools for Developers • Local and Remote REST API for further integration • Low level API for Runtime, Storage, and Network extension Docker Engine: Demo Comparison: Containers vs. VMs App A App A’ App B Bins/ Libs Bins/ Libs Bins/ Libs Guest OS Guest OS Guest OS VM Containers are isolated, but share OS kernel and, where appropriate, bins/libraries …result is significantly faster deployment, much less overhead, easier migration, faster restart Guest OS Guest OS Bins/Libs Host OS Host OS Server Server App B’ App B’ App B’ Bins/Libs App B App A’ Hypervisor (Type 2) App A Container Agenda • • • • • • • Introduction The growing technology challenge An analogy: the shipping industry Docker Engine Overview Docker Hub Overview Microsoft and Docker Azure and Docker Docker Hub • • • • • Launched June, 2014 Enables any Docker Host to run any application in seconds Provides Official, Public, and Private Docker Application Repositories Workflow management: Automated Builds, Webhooks Distribution Channel: Get vendor supported and provided Software Source Linux OS Prod Machine DockerFile Policy Build Ship Registries Public Curated Private Docker VM QA Docker Docker Mac/Win Dev Machine Provenance Docker Docker Boot2Docker Physical Docker Docker Docker Dev Collab Linux OS Prod Machine Infrastructure Management Docker Hub Users Linux OS Prod Machine Docker Docker Analytics DB Source Code Repository Docker Docker Hub: Build, Ship, Run Applications VM VM Infrastructure Management Virtual Linux OS Docker Hub API QA Machine Third Party Tools TEST Staging TEST TEST TEST TEST Run GCE RAX Azure Cloud ++ Any App + 45K apps + 16K projects API Engine Hub open source software at the heart of the Docker platform cloud-based platform services for distributed applications API Any infrastructure • Physical • Virtual cloud Agenda • • • • • • • Introduction The growing technology challenge An analogy: the shipping industry Docker Engine Overview Docker Hub Overview Microsoft and Docker Azure and Docker Recent News: Docker for Windows • Bring Docker and Containers to Windows • Contribute to open source Docker Engine to support Windows • Local box support on Hyper-V Bringing Communities Together Linux Community Windows Community Distributed Applications With Both Linux and Windows Components Queu e Web Fronten d Use r DB API Endpoin t Dat a Analytic s DB Backgroun d Workers Dat a Production Cluster Development VM Public Cloud QA Server Disaster Recovery Customer Data Center Production Servers Contributor’s Laptop Agenda • • • • • • • Introduction The growing technology challenge An analogy: the shipping industry Docker Engine Overview Docker Hub Overview Microsoft and Docker Azure and Docker Extension Model and Docker • DockerCon Announce • Curated Extensions • Updated with latest Agent Demo: Docker Client on Windows Docker Hub Integration Docker Hub Azure Marketplace Combining Windows and Linux on Azure SQL Server Background Workers nginx Recap • Docker has great momentum building an ecosystem to build, ship, and run applications • Docker and Microsoft have partnered to bring the success of Docker on Linux to Windows • Now, virtually any workload can be deployed and run anywhere Learn More • All Videos and Talks from DockerCon: http://bit.ly/1AnvHFz • Demo of DockerHub: see Ben Golub keynote from DockerCon, http://bit.ly/1xHqUL8 demo starts at 29:00 • Sign up for a DockerHub account: https://hub.docker.com/ • Security & Isolation: see above, also blog.docker.io • Use Cases: https://docker.com/resources/usecases/ • Docker project: www.docker.com/ • Follow Docker on Twitter: twitter.com/docker • Take the Docker interactive tutorial: https://docker.com/tryit/ • Join Docker on IRC: botbot.me/freenode/docker/ • Go to the Docker repository on GitHub: github.com/docker/docker/ • Go to a meetup: https://www.docker.com/community/meetups/ http://technet.microsoft.com/library/dn765472.aspx http://technet.microsoft.com/en-us/library/hh546785.aspx http://www.microsoft.com/en-us/server-cloud/products/ windows-azure-pack http://azure.microsoft.com/en-us/ http://channel9.msdn.com/Events/TechEd www.microsoft.com/learning http://microsoft.com/technet http://developer.microsoft.com