3. In the first four months since Docker
launched
• >50,000 pulls
• >4,000 github stars
• >100 significant contributors
• >150 projects built on top of docker
• UIs, mini-PaaS, Remote Desktop….
• 1000’s of Dockerized applications
• Memcached, Redis, Node.js…
• Integration in Jenkins, Travis, Chef,
Puppet, Vagrant and OpenStack
• Meetups arranged around the
world…with organizations like Ebay,
Uber, Mozilla, Cloudflare, and
Rackspace presenting on their use of
Docker
10. Why .NET Core?
• C#
• Easy to use language
• Regular updates
• Visual Studio IDE
• OSS, but still supported by MS
• .NET Standard is targeting multi-plat
• “a formal specification of .NET APIs that are intended to be available
on all .NET runtimes”
• But wait Chris! We’re building microservices now… Shouldn’t
platform selection be the choice of autonomous teams of
developers?
• Lift and Shift to avoid lock-in
11. Docker and .NET: Past, Present, Future
• Past: Mono can run on Linux and host .NET code
• Past: OWIN Can run on Mono
• Past: Community creates Mono Docker Image
• https://hub.docker.com/_/mono/
• 2015: Mono containers leverage OWIN Web API’s
• http://www.bloggedbychris.com/2015/09/28/running-asp-net-web-api-
docker/
• 2016: .NET Core Released
• 2016: .NET Core Containers
• https://hub.docker.com/r/microsoft/dotnet/
• 2016: Docker for Windows and OSX
• 2016: Windows Containers
• Future: More features integrated into .NET Core
• Future: More Windows containers will be created
12. Contents
• What is Docker?
• Microservices
• Microsoft and Docker
• Demonstrations
• Q & A
13. Microservices Patterns
• Database per service
• Services must be loosely coupled so that they can be developed,
deployed and scaled independently
• Different services have different data storage requirements
• Pattern: Single Service Instance per Host
• Services are written using a variety of languages, frameworks, and
framework versions
• You want deployment to be reliable
• Service instances need to be isolated from one another
14. Pre-Requisites for Demos
• Docker:
• Docker for Windows
• Docker for OSX
• Docker Toolbox
• Visual Studio Code
• .NET Core
• NPM