Micro Services in .NET Core and Docker

  • View
    1.112

  • Download
    2

  • Category

    Software

Preview:

Citation preview

.NET Core and DockerMicroservices Overview and Demo

.net coreChris Myers – Consultant, NeudesicBloggedbychris.comDocker 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

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?