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.

Slides:



Advertisements
Similar presentations
Get more control & flexibility of the Windows Azure environment Developers IT Pros Easier migration of existing Windows applications to Windows Azure.
Advertisements

Virtual desktops in the cloud: Experiences from the field
From IT Pros to IT Heroes - with Azure DevTest Labs
5/21/2018 9:40 PM BRK3021 Learn about modern infrastructure roles in RDS: Next generation Windows desktop & app virtualization Clark Nicholson - Principal.
Azure Machine Learning Deploying and Managing Models in production
Cloud Security IS Application-Centric Security
SharePoint Provisioning Success with PnP PowerShell
Use any Amazon S3 application with Azure Blob Storage
6/10/2018 4:48 AM THR2155 A/B Testing, Canary releases and dark launching: Implementing continuous delivery on Azure Marcel de Vries CTO, Xpirit © Microsoft.
DevOps for any language
Azure Cloud Shell Magic of Modern Command-line Management
ASP.NET Core 2.0 Fundamentals
Developing Hybrid Apps on Microsoft Azure Stack
Windows 10 and the cloud: Why the future needs hybrid solutions
TFS Database Import Service for Visual Studio Team Services
Learning about Containers in the Real World
Azure SDKs and Tools for You
Lessons learned from moving to Microsoft Azure
Optimizing Microsoft OneDrive for the enterprise
What a Real, Functioning DevOps Team Looks Like
7/22/2018 9:21 PM BRK3270 Building a Better Data Solution: Microsoft SQL Server and Azure Data Services Joey D’Antoni Principal Consultant Denny Cherry.
SQL Server on Linux on All-Flash Arrays
Microsoft Ignite /31/ :08 AM
8/6/ :17 AM THR2214 Hybrid Cloud Activated A customer case study optimizing on-premises & Azure performance and cost Mor Cohen-Tal Senior Product.
Excel and Power BI Better Together Democratization of data
Workflow Orchestration with Adobe I/O
Azure Security in four steps
Automate all things! Microsoft Azure continuous deployment
Modern Front-End Web Development with Visual Studio
Agile Planning with Visual Studio Team Services (VSTS)
Servicing Windows 10 in the Real World
9/22/2018 3:49 AM BRK2247 Learn from MVPs: Panel discussion on all things SharePoint and OneDrive © Microsoft Corporation. All rights reserved. MICROSOFT.
Confidence at speed: Visual Studio 2017 and your CI pipeline
Azure PowerShell Aaron Roney Senior Program Manager Cormac McCarthy
Continuous Delivery for Microsoft Azure
Port your AWS Knowledge to Azure
11/22/2018 1:43 PM THR3005 How to provide business insight from your data using Azure Analysis Services Peter Myers Bitwise Solutions © Microsoft Corporation.
Continuous Delivery with Visual Studio Team Services
Supercharge Microsoft Teams using Teams apps in node.js
Azure Advisor: Optimization in the best way
Bring existing desktop apps to UWP with the Desktop Bridge
Mobile Center and VSTS:​ Better together for your Mobile DevOps
11/27/2018 5:08 PM THR3057 Using a PowerShell release pipeline for a real-world service provider delivery in Microsoft Azure Niklas Åkerlund Lead Architect.
Developing for the cloud with Visual Studio
Microsoft products for non-profits
Introduction to ASP.NET Core 1.0
Five cool things you can do with Windows PowerShell on Office 365
Securely pass passwords into your deployment
1/2/2019 5:18 PM THR3016 Customer stories: Plan and orchestrate large resource deployments on Azure infrastructure Igal Figlin Principal PM Manager – Azure.
MDM Migration Analysis Tool (MMAT)
Overview: Dynamics 365 for Project Service Automation
Keep up with Office 365 evolution in the real world
Understand your Azure cloud assets dependencies with BMC Discovery
Surviving identity management in a hybrid world
Breaking Down the Value of A Yammer Post: 20 Things to Do
Cool Microsoft Edge Tips and Tricks
When Bad Things Happen to Good Applications
Explore PnP Partner Pack for IT pros, admins and architects
Getting the most out of Azure resources with Azure Advisor
“Hey Mom, I’ll Fix Your Computer”
4/21/2019 7:09 AM THR2098 Unlock New Opportunities with Nintex Hawkeye Process Intelligence and Workflow Analytics Sr. Product.
Business Continuity and the Microsoft Cloud
Consolidate, manage, backup, and secure your cloud content
Designing Bots that Fit Your Organization
Ask the Experts: Windows 10 deployment and servicing
Passwordless Service Accounts
Digital Transformation: Putting the Jigsaw Together
WCF and .NET Framework Microservices in Containers
Diagnostics and troubleshooting in Azure App Service Support Center
Optimizing your content for search and discovery
Presentation transcript:

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.

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

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!

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

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 https://github.com/docker/communitytools-image2docker-win

Containerize your existing ASP.NET applications

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

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

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.

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.

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

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

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.

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

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

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)

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.

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

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

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 mdevries@xpirit.com Fluentbytes.com @marcelv

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 https://myignite.microsoft.com/evaluations Phone: download and use the Microsoft Ignite mobile app https://aka.ms/ignite.mobileapp 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.

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.