net core a new .net platform 101 container management docker engine compute web api web api...
TRANSCRIPT
![Page 1: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/1.jpg)
![Page 2: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/2.jpg)
Containers
• Docker-
compose
• Environments
Composition
• Orchestrators
• Containerized
application lifecycle
Clusters
• Summary
• Questions and
answers
Wrap up
• Container technology
• Docker
• Visual Studio 2017 tooling
![Page 3: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/3.jpg)
Outer loop
Inner loop
Run
Code
Validate
![Page 4: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/4.jpg)
Demo #1Diving straight into Docker containers
![Page 5: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/5.jpg)
Container technologyDocker 101
![Page 6: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/6.jpg)
![Page 7: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/7.jpg)
![Page 8: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/8.jpg)
Container management
Docker Engine
Compute
![Page 9: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/9.jpg)
![Page 10: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/10.jpg)
Web APIWeb API
containercontainer
LeaderboardMicroservice
Identity Microservice
ASP.NET Core Web App
Client applications (browser)
Web Page
HTML 5 JavaScript game
![Page 11: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/11.jpg)
Demo #2Highscore application
![Page 12: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/12.jpg)
Docker containers and Visual Studio 2017
![Page 13: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/13.jpg)
![Page 14: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/14.jpg)
![Page 15: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/15.jpg)
microsoft/nanoserver:10.0.14393.1066
-or- debian/jessie
microsoft/dotnet:1.0.0-sdk
microsoft/dotnet:1.1.1-runtime
microsoft/dotnet:1.1.1-runtime-deps
microsoft/aspnetcore:1.1.1
Your application layer:
e.g. dotnext/gamingwebapp:latest
debian/jessie
![Page 16: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/16.jpg)
![Page 17: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/17.jpg)
Sources
In C# this would besource ?? “obj/Docker/Publish”
Determined by VS2017 in DOCKER_BUILD_SOURCE
![Page 18: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/18.jpg)
Demo #3Running containers in VS2017
![Page 19: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/19.jpg)
Sources
Debugger
~%USER_PROFILE%
![Page 20: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/20.jpg)
![Page 21: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/21.jpg)
Demo #4Debugging containers in VS2017
![Page 22: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/22.jpg)
Composing applications from containers
![Page 23: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/23.jpg)
Orchestration tool for container automation
![Page 24: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/24.jpg)
Web API
container
LeaderboardMicroservice
Web App
![Page 25: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/25.jpg)
services
service-name
docker-image
how to build image
other services
key/value pairs
port mappings
networks
network-name
volumes
volume-name
VS2017 currently uses 2.1Support for 3.x coming soon
![Page 26: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/26.jpg)
version: '2.1'
services:ci-build:image: microsoft/aspnetcore-build:1.0-1.1volumes:
- .:/srcworking_dir: /srccommand: /bin/bash -c "dotnet restore ./DotNextGaming.sln
&& dotnet publish ./DotNextGaming.sln -c Release -o ./obj/Docker/publish"
![Page 27: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/27.jpg)
Demo #5Building compositions
![Page 28: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/28.jpg)
![Page 29: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/29.jpg)
docker-compose
-f "docker-compose.yml" -f "docker-compose.override.yml“-p composition up -d
![Page 30: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/30.jpg)
Demo #6Working with compositions
![Page 31: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/31.jpg)
{"ConnectionString": "Server=tcp:…","Logging": {
"IncludeScopes": false,"LogLevel": {
"Default": "Warning"}
}}
![Page 32: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/32.jpg)
public Startup(IHostingEnvironment env){
var builder = new ConfigurationBuilder().SetBasePath(env.ContentRootPath).AddJsonFile("appsettings.json", optional: false, reloadOnChange: true).AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true).AddEnvironmentVariables();
Configuration = builder.Build();}
![Page 33: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/33.jpg)
environment:- ASPNETCORE_ENVIRONMENT=Development- ASPNETCORE_URLS=http://0.0.0.0:1337- ConnectionString=Server=sql.data;…
environment:- ASPNETCORE_ENVIRONMENT=Production- ASPNETCORE_URLS=http://0.0.0.0:80- ConnectionString=DOCKERSECRETS_KEY
{"ConnectionString": "Server=tcp:…","Logging": {"IncludeScopes": false,"LogLevel": {
"Default": "Warning"}
}}
![Page 34: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/34.jpg)
// Key/value collection with indexer
Configuration["LeaderboardBaseUrl"];
Configuration["ConnectionStrings:LeaderboardContext"];
// Or special extension methods
Configuration.GetConnectionString("LeaderboardContext");
// appsettings.json{ "LeaderboardBaseUrl": "http://localhost:1337/api","ConnectionStrings": {
"LeaderboardContext": "Server=tcp:127.0.0.1,3433; …"}, …
}
![Page 35: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/35.jpg)
public class HomeController : Controller{private readonly IOptionsSnapshot<WebAppSettings> settings;
// Inject snapshot of settingspublic HomeController(IOptionsSnapshot<WebAppSettings> settings) {
this.settings = settings;}
public void ConfigureServices(IServiceCollection services){// Add framework services.services.Configure<WebAppSettings>(Configuration);services.AddMvc();
} public class WebAppSettings {public string Setting1 …public int Setting2 …
}
![Page 36: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/36.jpg)
Moving to container clusters
![Page 37: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/37.jpg)
![Page 38: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/38.jpg)
Cluster FabricHigh Availability
Hyper-Scale
Hybrid Operations
High DensityRolling Upgrades
Stateful services
Low LatencyFast startup &
shutdown
Container Orchestration &
lifecycle management
Replication &
Failover
Simple
programming
modelsLoad balancing
Self-healingData Partitioning
Automated Rollback
Health
Monitoring
Placement
Constraints
Microservices
Mesos DC/OS Docker Swarm Google Kubernetes Azure Service Fabric
![Page 39: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/39.jpg)
Azure
DC/OSSwarmKubernetes
![Page 40: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/40.jpg)
Outer loop
Inner loop
Run
Code
Validate
![Page 41: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/41.jpg)
![Page 42: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/42.jpg)
![Page 43: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/43.jpg)
Demo #7Deploying and hosting in a Docker Swarm cluster
![Page 44: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/44.jpg)
Demo #8Visual Studio Team ServicesBuild and release pipelines
![Page 45: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/45.jpg)
Outer loop
Inner loop
Run
Code
Validate
![Page 46: NET Core a New .NET Platform 101 Container management Docker Engine Compute Web API Web API container container Leaderboard Microservice Identity Microservice ASP.NET Core Web App](https://reader030.vdocuments.mx/reader030/viewer/2022021505/5abefa197f8b9ac0598dd1f0/html5/thumbnails/46.jpg)
Resources
http://dot.net
http://docs.docker.comhttp://hub.docker.com/microsoft/
http://visualstudio.com
https://docs.microsoft.com/en-us/