Presentation is loading. Please wait.

Presentation is loading. Please wait.

6/11/2018 8:14 AM THR2175 Building and deploying existing ASP.NET applications using VSTS and Docker on Windows Marcel de Vries CTO, Xpirit © Microsoft.

Similar presentations


Presentation on theme: "6/11/2018 8:14 AM THR2175 Building and deploying existing ASP.NET applications using VSTS and Docker on Windows Marcel de Vries CTO, Xpirit © Microsoft."— Presentation transcript:

1 6/11/2018 8:14 AM THR2175 Building and deploying existing ASP.NET applications using VSTS and Docker on Windows Marcel de Vries CTO, Xpirit © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

2 Agenda Why containers? Options for migration
Containerize your existing ASP.NET applications Demo

3 Why containers? Improved server density
Improved recoverability of your infra structure Independent scale per container Easy to update Cluster orchestrators provide 0-downtime deployment capabilities Keep your infrastructure simple and clean Also available on Windows as of Windows Server 2016!

4 Options for migration Rewrite
Re-implement using container- and cloud-optimized framework (e.g. ASP.NET Core) Lots of work Option to change architecture Lift and shift Migrate existing VMs to container Extract essentials from VM image Benefit from sharing resources at kernel Containerize Host existing app in Docker image Deploy app in image Applies mostly to ASP.NET and WCF services Some rework required

5 Image2Docker Convert WIM/VHD to Dockerfile Written in PowerShell Open Source Discover Find Installed Programs Show Roles & Features IIS Sites & Configurations Common applications SQL, Apache Generate Dockerfile

6 Containerize your existing ASP.NET applications

7 What are the fundamental differences when running in a container
? What are the fundamental differences when running in a container

8 You bake an image that is immutable
Immutable means you create it once and move it between environments How do you deal with changes in the environment Traditionally we managed the environment in web.config Now we need to read configuration from environment variables

9 Changes in the delivery pipeline
6/11/2018 8:14 AM Changes in the delivery pipeline Production Continuous Delivery Pipeline Build Binaries Deploy to Test environments Test Binaries Source Control Continuous Deployment Continuous Delivery Pipeline Source Control Continuous Deployment Next Bake Container Move container Move Container Production © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

10 Changing environments
6/11/2018 8:14 AM Changing environments Web.config <configuration> <connectionStrings> </connectionStrings> <appSettings> </appSettings> </configuration> Container images are immutable Environments are not same docker run –it –-env key=value xpirit/app Environment: e.g. developer laptop, staging or production cluster Environment variables Container Dependencies Config Code © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

11 Security context of the container
Containers are volatile Container can not be domain joined and this is by design! Don’t fight this! You can use AD capabilities

12 Security accounts Container runs on host as
user manager\containeradministrator Group Managed Service Accounts (gMSA) Single identity solution for services in a server cluster Use a specific gMSA as service identity Any service running as Local System or Network Service uses gMSA No password or secrets stored in container image

13 DefaultAccount: Domain\MyWebApp1
Microsoft Build 2016 6/11/2018 8:14 AM Default Account 1) Use default accounts for services & tasks (LocalSystem, Network Service) Image IIS + ASP.NET Running Container Service: IIS User: LocalSystem SQL Server Domain\MyWebApp1 Credential Spec DefaultAccount: Domain\MyWebApp1 3) Container connects using service account 2) Provide default service account to use when starting container © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

14 Persistence to local disk is not maintained
By default you disk persistence is volatile When writing to local disk you need to define a volume mapping to make it permanent Ad-hock By Name, admin defines the location

15 Required changes to your ASP.NET app
Connection to a database Either group managed account standard db authentication (no SSO) Connection to other resources Standard in web.config Now come in using environment variables at startup Local persistence Use volume mapping to write to host Use external storage, outside container

16 Required deployment tools
Ability to run docker tasks Orchestrate the release in steps Preferably create new machines on the fly One tool to rule them all: Visual Studio Team Services (VSTS)

17 Demo Marcel de Vries CTO, Xpirit 6/11/2018 8:14 AM
© Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

18 Tip: A container runs one command
Other processes can run in the meanwhile, but container lifetime is bound to container command e.g. servicemonitor.exe Split your application services in multiple containers Provides additional benefit of scaling individual

19 Xpirit mdevries@xpirit.com Fluentbytes.com @marcelv
6/11/2018 8:14 AM Xpirit All Photos used in this presentation come from unsplash.com Fluentbytes.com @marcelv © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

20 Xpirit xpir.it/XpiritMagazine mdevries@xpirit.com Fluentbytes.com
Building a CD pipeline with VS 2015 Test Automation with CodedUI Testing Web Applications with CodedUI Introduction to Docker on Windows with Visual Studio 2017 All Photos used in this presentation come from unsplash.com Fluentbytes.com @marcelv

21 Please evaluate this session
Tech Ready 15 6/11/2018 Please evaluate this session From your Please expand notes window at bottom of slide and read. Then Delete this text box. PC or tablet: visit MyIgnite Phone: download and use the Microsoft Ignite mobile app Your input is important! © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

22 6/11/2018 8:14 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Download ppt "6/11/2018 8:14 AM THR2175 Building and deploying existing ASP.NET applications using VSTS and Docker on Windows Marcel de Vries CTO, Xpirit © Microsoft."

Similar presentations


Ads by Google