In this slide deck I present the latest trends in Virtualisation called Containers, how Docker mastered it and how it is making way into the Windows Server Eco System, includes getting started guides as well.
2. Physical Servers ContainersVirtual Servers
• Space/Scaling Constraints
• Higher Provisioning Time
• Over/Under Utilization
• Maintenance
Hypervisor/Hosted
Hypervisor
• Scalable, Lesser Provisioning
Time, Scale up/down easy, Less
Maintenance.
• Bare Metal - VMware, Hypervisor,
Xen
• Hosted – Virtual PC, Virtual Box
etc.1965 & Before
1965 & After
Bare Metal/Traditional OSBare Metal/Traditional OS
Hypervisor/Hosted
Hypervisor
Guest Operating System
Guest Operating System
Containers
2013 & Future
• 2013: Docker Introduced
Containers, followed by MS in
WS2016 (Aug-2015)
• Easily Shippable
• Complete Isolation
• Very less turn up times
• Programmable
Virtualization Trends
3. www.docker.com
• An Open Source framework built by Solomon Hykes and team @dotCloud to build,
manage and deploy containers on Linux.
• Written using Go (Google) Programming Language
• Standardized in collaboration with Amazon, Cisco, Google, VM Ware and Microsoft and
works consistently across all major Linux Brands. OCI – Open Container Initiative
• Docker is built using LXC, namespaces, CGroups features on Linux.
• Open Source, 2013: https://www.docker.com/contribute, 400 Million downloads so far.
• Steps to deploy a Docker container.
• Developers build application and package as Docker containers. These containers are published as images to
Docker Hub or Private Image repository or Host Machine.
• Containers are deployed on Linux Machine with Docker Engine Installed using any image repository. The images
in repositories are inherently discoverable.
• The Docker Engine on Host Machine can be invoked remotely via Docker CLI.
• Docker enabled Linux Machines are available on Azure Image Gallery. VS can be used to
perform 1-Click deployment to Docker machines.
• Docker also gels very well with Machine configuration tools like Puppet, Chef, Vagrant
and Ansible.
C C C
Docker Engine
(Linux)
Docker Hub/Private Image Repository
C
Build Applications
Package using Docker CLI
Publish
Deploy
4. Windows Server Containers
• Docker Engine for Windows Server available on Windows
Server 2016 CTP 3 (Container Role) – Aug 2015.
• Create, Build and Manage Containers using PowerShell or
Docker (CLI) – Platform agnostic Docker Commands.
• Visual Studio tools for Docker available as an Extension to VS
2015 enables on click deployment to Docker enabled
Windows/Linux Machines.
• Docker Engine re-written for Windows Open Sourced
(libcontainer) is also open sourced – First Time Ever !!
• Docker Engine on Windows uses namespaces isolation and
resource governance for container isolation.
• Windows Server Container Preview available on Azure Today
!! (No GUI)
5. Use Cases for Containers Micro services: Containerized app can be
converted to Images, multiple containers can be
deployed using image within seconds. Apt for
light-weight portable apps like micro services.
Higher Utilization: Since a VM can be used to
host Multiple applications in isolated containers.
Easy to Scale: Container Images can used to
scale the application to N instances within
seconds.
Easy Procurement: Since the kernel is already
heated up, application deployment does not have
to wait for full OS boot times.
Reusability: One can easily deploy a container
install custom applications (Redis, MySQL etc.)
from Docker Host, customize the configuration
and image it out and use many times.
6. Getting Started
• Create a HOST Machine
• Create a “Windows Server Container Preview”
machine from Azure Image Gallery. (Recommended)
• Create a “Windows Server 2016 CTP3” login and
enable Container Role.
• Preparing Dev Machine
• Download Docker Tools for VS 2015 from here.
• Quick Start Guides:
https://msdn.microsoft.com/virtualization/windowscontai
ners/containers_welcome
PS Sample for Installing NGINX on WSC
7. Limitations
Docker Containers created on Linux cannot be ported to windows.
Docker Containers cannot be managed using PS library for Windows.
ASP.NET 4.5 and below does not run on WSC yet, only option is ASP.NET 5.0.
Not all Docker commands work today.
If the OS needs patchingupgrade, the changesupgrade might ripple into containers as well
• Hyper-V Containers: VMs have their own OS kernel files and memory
• Hyper-V Containers can be managed using Docker, WSC can be deployed as Hyper-V
Containers.
• Better Security with Hyper-V Containers
• MS working on Nano servers 1/20th size of previous servers specially designed for
containers/Micro Services
Hyper-V Containers