.NET Core and Docker
Microservices Overview and Demo
.net core
Chris Myers – Consultant, Neudesic
Bloggedbychris.com
Docker Partner (DTSP, DSP)
github.com/jixer
@myerscj
github.com/jixer/oct2016dcc
Contents
• Why Docker?
• Why Microservices?
• Why .NET Core & Microsoft?
• Demonstrations
• Q&A
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
Why Docker?
Why Kim Kardashian?
Contents
• Why Docker?
• Why Microservices?
• Why .NET Core & Microsoft?
• Demonstrations
• Q&A
Microservices
Contents
• Why Docker?
• Why Microservices?
• Why .NET Core & Microsoft?
• Demonstrations
• Q&A
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
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
Contents
• What is Docker?
• Microservices
• Microsoft and Docker
• Demonstrations
• Q & A
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
Pre-Requisites for Demos
• Docker:
• Docker for Windows
• Docker for OSX
• Docker Toolbox
• Visual Studio Code
• .NET Core
• NPM
GitHub
github.com/jixer/oct2016d
cc
Demos
• Demo 1: First Dockerized .NET Core App
• Demo 2: Yeoman Generators FTW
• Demo 3: Creating the KeyValue Service
• Optional Demos:
• Unit Testing
• Automation
Questions?

Micro Services in .NET Core and Docker

  • 1.
    .NET Core andDocker Microservices Overview and Demo .net core Chris Myers – Consultant, Neudesic Bloggedbychris.com Docker Partner (DTSP, DSP) github.com/jixer @myerscj github.com/jixer/oct2016dcc
  • 2.
    Contents • Why Docker? •Why Microservices? • Why .NET Core & Microsoft? • Demonstrations • Q&A
  • 3.
    In the firstfour 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
  • 4.
  • 5.
  • 6.
    Contents • Why Docker? •Why Microservices? • Why .NET Core & Microsoft? • Demonstrations • Q&A
  • 7.
  • 9.
    Contents • Why Docker? •Why Microservices? • Why .NET Core & Microsoft? • Demonstrations • Q&A
  • 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 isDocker? • Microservices • Microsoft and Docker • Demonstrations • Q & A
  • 13.
    Microservices Patterns • Databaseper 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
  • 15.
  • 16.
    Demos • Demo 1:First Dockerized .NET Core App • Demo 2: Yeoman Generators FTW • Demo 3: Creating the KeyValue Service • Optional Demos: • Unit Testing • Automation
  • 17.