SlideShare a Scribd company logo
1 of 30
Download to read offline
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Containerize Legacy .NET
Framework Web Apps for Cloud
Migration
Nicki Klein
Sr. Technical Evangelist
Amazon Web Services
Brian Lewis
Solutions Architect
Amazon Web Services
W I N 3 0 5
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
The basics: Why containers for legacy .NET apps?
Containerize a legacy ASP.NET app
Deploying a .NET app
container to Amazon
ECS
Hypervisor
Status:on
Connections Connections Connections
Network Up/NetworkDown
Amazon
ECS
AZ1 AZ2
Private Subnet
Public Subnet
Internet
Gateway
Private Subnet
Public Subnet
NAT
GATEWAY
NAT
GATEWAY
ALB
Amazon ECS Cluster
What we will cover
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Microsoft .NET history
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Recent AWS .NET related announcements
• .NET Developer Center (aws.amazon.com/net)—7/2
• .NET Core 2.1 on Amazon Linux and Ubuntu—7/13
• .NET Core 2.1 on AWS Lambda—7/19
• .NET Global Tools—9/10
• PowerShell for Lambda—9/11
• .NET CDK – 9/13
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Windows deployment modes
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
• Smallest base layer available for Windows
• Only 64-bit applications
• No graphical applications
• Optimized for .NET Core applications
• Windows PowerShell not included by default
(as of Windows Server version 1709)
• Only PowerShell Core is available
microsoft/nanoserver
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
• Minimal installation of Windows Server
2016
• Windows PowerShell
• Full .NET support
• No Widows Shell Desktop
• Great for migrating existing Windows
applications to containers
microsoft/windowsservercore
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
.NET 4.x requires Server Core
Server 2016 version 1803 – Server Core:
•1.58GB, download size, 30% reduction from Windows Server, version 1709
•3.61GB, on disk size, 20% reduction from Windows Server, version 1709
Server version Size on disk
Server 2016 – Server Core ~ 8 Gig
Serve 2016 version 1709 – Server Core ~4.5 Gig
Server 2016 version 1803 - Server Core: ~ 3.6 Gig
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Why containers for legacy .NET apps?
Operating system
utilization
Deployment /
runtime consistency
Scaling
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Why containers for legacy .NET apps?
Decrease the OS
count from
12 to 4 (66%)
Windows Server 2016
App Files
Bins/Libs
Processes
Windows Kernel
Host Mode
System
Processess
Container Mgmt
SVCHost
Session Mngr
LSASS
w3wp.exe
Container #1
App Files
Bins/Libs
Processes
Container #2
Windows Server 2016
App Files
Bins/Libs
Processes:
Windows Kernel
Host Mode
System
Processess
Container Mgmt
SVCHost
Session Mngr
LSASS
w3wp.exe
Container #1
App Files
Bins/Libs
Container #2
w3wp.exe
Processes:
w3wp.exe
Operating system
utilization CPU: 67% Memory: 85%
CPU: 72% Memory: 78%
CPU: 63% Memory: 81%
CPU: 59% Memory: 80%
Statu s: on
Connection sConn ect io nsConn ect ions
Network Up /Network Do wn
Hypervisor
Guest OS Guest OSGuest OS
App #1 App #2 App #3
Statu s: on
Connection sConn ect io nsConn ect ions
Network Up /Network Do wn
Hypervisor
Guest OS Guest OSGuest OS
App #1 App #2 App #3
Statu s: on
Connection sConn ect io nsConn ect ions
Network Up /Network Do wn
Hypervisor
Guest OS Guest OSGuest OS
App #1 App #2 App #3
Statu s: on
Connection sConn ect io nsConn ect ions
Network Up /Network Do wn
Hypervisor
Guest OS Guest OSGuest OS
App #1 App #2 App #3
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Deployment / runtime consistency
Dev
Windows 10
App #1
Windows Server 2016
Hypervisor
Statu s: on
Connection sConn ect io nsConn ect ions
Network Up /Network Do wn
App #1
Windows Server 2016
Hypervisor
Statu s: on
Connection sConn ect io nsConn ect ions
Network Up /Network Do wn
App #1
Test Prod
Why containers for legacy .NET apps?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
FROM microsoft/windowsservercore
RUN Add-WindowsFeature Web-server
RUN Add-WindowsFeature NET-Frame...
COPY myapp /myappfiles
1. Docker File 2. Docker Image 3. Docker Container
FROM microsoft/windowsservercore
RUN Add-WindowsFeature Web-server
RUN Add-WindowsFeature NET-Frame...
COPY myapp /myappfiles
1. Docker File 2. Docker Image
ds8fmdsf895nlks 7 GB
3. Docker Container
FROM microsoft/windowsservercore
RUN Add-WindowsFeature Web-server
RUN Add-WindowsFeature NET-Frame...
COPY myapp /myappfiles
1. Docker File 2. Docker Image
akm34ks9dj5flf9d 500 MB
ds8fmdsf895nlks 7 GB
3. Docker Container
FROM microsoft/windowsservercore
RUN Add-WindowsFeature Web-server
RUN Add-WindowsFeature NET-Frame...
COPY myapp /myappfiles
1. Docker File 2. Docker Image
k58cxbh48fj490d 300 MB
akm34ks9dj5flf9d 500 MB
ds8fmdsf895nlks 7 GB
3. Docker Container
FROM microsoft/windowsservercore
RUN Add-WindowsFeature Web-server
RUN Add-WindowsFeature NET-Frame...
COPY myapp /myappfiles
1. Docker File 2. Docker Image
f954msx83nc85b 50 MB
k58cxbh48fj490d 300 MB
akm34ks9dj5flf9d 500 MB
ds8fmdsf895nlks 7 GB
3. Docker Container
FROM microsoft/windowsservercore
RUN Add-WindowsFeature Web-server
RUN Add-WindowsFeature NET-Frame...
COPY myapp /myappfiles
1. Docker File 2. Docker Image
f954msx83nc85b 50 MB
k58cxbh48fj490d 300 MB
akm34ks9dj5flf9d 500 MB
ds8fmdsf895nlks 7 GB
3. Docker Container
Read-Only
FROM microsoft/windowsservercore
RUN Add-WindowsFeature Web-server
RUN Add-WindowsFeature NET-Frame...
COPY myapp /myappfiles
1. Docker File 2. Docker Image
f954msx83nc85b 50 MB
k58cxbh48fj490d 300 MB
akm34ks9dj5flf9d 500 MB
ds8fmdsf895nlks 7 GB
3. Docker Container
Read / Write Layer
f954msx83nc85b 50 MB
k58cxbh48fj490d 300 MB
akm34ks9dj5flf9d 500 MB
ds8fmdsf895nlks 7 GB
Read-Only
Why containers for legacy .NET apps? Scaling
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Scaling
Read / Write Layer
f954msx83nc85b 50 MB
k58cxbh48fj490d 300 MB
akm34ks9dj5flf9d 500 MB
ds8fmdsf895nlks 7 GB
Windows Server 2016
Read / Write Layer
Windows Server 2016
f954msx83nc85b 50 MB
k58cxbh48fj490 300 MB
akm34ks9dj5flf 500 MB
ds8fmdsf895nlks 7 GB
Read / Write Layer
Windows Server 2016
f954msx83nc85b 50 MB
k58cxbh48fj490 300 MB
akm34ks9dj5flf 500 MB
ds8fmdsf895nlks 7 GB
Read / Write Layer
f954msx83nc85b 50 MB
k58cxbh48fj490d 300 MB
akm34ks9dj5flf9d 500 MB
ds8fmdsf895nlks 7 GB
Read / Write Layer
Windows Server 2016
f954msx83nc85b 50 MB
k58cxbh48fj490 300 MB
akm34ks9dj5flf 500 MB
ds8fmdsf895nlks 7 GB
Read / Write Layer
Why containers for legacy .NET apps?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Benefits of Windows containers
• Ease of movement (on-premises or in public cloud)
• Improve operating system utilization / density
• Development / deployment runtime consistency
• Deployment size and speed / use of base images
• Server boot times under 1 second
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
What’s our sample .NET app?
• Sample app circa 2010
• ASP.NET MVC 1.0
• SQL Server Express LocalDB
https://github.com/kneekey23/NerdDinner
NerdDinner
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Demo:
Containerize a legacy
ASP.NET AppHypervisor
Status:on
Connections Connections Connections
Network Up/NetworkDown
Amazon
ECS
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Microsoft SQL Server in a container
Production SQL Server container images must be pulled from the Docker
Store
• docker pull microsoft/mssql-server-windows
• docker pull microsoft/mssql-server-linux:2017-latest
For persistent SQL data:
• Use data volume containers
• Store the database on a file share (SMB 3.2 suggested)
• Mount a host directory as data volume (Linux)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Demo:
Containerizing
Microsoft SQL ServerHypervisor
Status:on
Connections Connections Connections
Network Up/NetworkDown
Amazon
ECS
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Steps to containerize the legacy .NET app
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Best practice:
When building your application, build it in a disposable container and
publishing in new containers. This will keep the size of your
production containers down and reduce the attack surface of the
containers.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Windows containers
on your server
AZ1 AZ2
Private Subnet
Public Subnet
Internet
Gateway
Private Subnet
Public Subnet
NAT
GATEWAY
NAT
GATEWAY
ALB
Amazon ECS Cluster
Demo:
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon ECS for Windows Server 2016
• Dec 5, 2017 – Windows Server containers for
production workloads!
• Amazon ECS-optimized Windows Server 2016
AMI
• Includes Docker 17.06 Enterprise Edition
• Amazon ECS agent now runs as a native Windows
service
• Windows containers memory and CPU limit(s)
enforcement
Windows Server on Amazon ECS:
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon ECS for Windows Server 2016
• Reference architecture on GitHub
Step 1. Build Amazon ECS cluster
https://github.com/aws-
samples/ecs-refarch-
cloudformation-windows
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon ECS for Windows Server 2016
Step 2. Create task definition
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon ECS for Windows Server 2016
• Service name
• Number of tasks
• ELB
• IAM role
Step 3.
Create service & launch
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Elastic
Container
Service (Amazon
ECS)
AZ1 AZ2
Private Subnet
Public Subnet
Internet
Gateway
Private Subnet
Public Subnet
NAT
GATEWAY
NAT
GATEWAY
ALB
Amazon ECS Cluster
Demo:
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon ECS
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Next steps: After you migrate your app
Modernizing your .NET apps
• Rewriting the application is always the cleanest path
• Windows Containers offer another option
Use Docker to take a feature-driven approach to breaking up the monolithic
application, splitting the functionality across multiple containers and using Docker
for the plumbing. Use .NET Core to extend the application.
Thank you!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Code from demos:
https://github.com/kneekey23/NerdDinner
Nicki Klein – Technical Evangelist, @nicki_23
Brian Lewis – Solutions Architect

More Related Content

What's hot

Running Serverless at The Edge (CTD302) - AWS re:Invent 2018
Running Serverless at The Edge (CTD302) - AWS re:Invent 2018Running Serverless at The Edge (CTD302) - AWS re:Invent 2018
Running Serverless at The Edge (CTD302) - AWS re:Invent 2018Amazon Web Services
 
Thomson Reuters Shows How It Hosted a .NET App on Amazon ECS Using Windows Co...
Thomson Reuters Shows How It Hosted a .NET App on Amazon ECS Using Windows Co...Thomson Reuters Shows How It Hosted a .NET App on Amazon ECS Using Windows Co...
Thomson Reuters Shows How It Hosted a .NET App on Amazon ECS Using Windows Co...Amazon Web Services
 
Deploying Microservices using AWS Fargate (CON315-R1) - AWS re:Invent 2018
Deploying Microservices using AWS Fargate (CON315-R1) - AWS re:Invent 2018Deploying Microservices using AWS Fargate (CON315-R1) - AWS re:Invent 2018
Deploying Microservices using AWS Fargate (CON315-R1) - AWS re:Invent 2018Amazon Web Services
 
AWS Storage Leadership Session: What's New in Amazon S3, Amazon EFS, Amazon E...
AWS Storage Leadership Session: What's New in Amazon S3, Amazon EFS, Amazon E...AWS Storage Leadership Session: What's New in Amazon S3, Amazon EFS, Amazon E...
AWS Storage Leadership Session: What's New in Amazon S3, Amazon EFS, Amazon E...Amazon Web Services
 
Earn Your DevOps Black Belt: Deployment Scenarios with AWS CloudFormation (DE...
Earn Your DevOps Black Belt: Deployment Scenarios with AWS CloudFormation (DE...Earn Your DevOps Black Belt: Deployment Scenarios with AWS CloudFormation (DE...
Earn Your DevOps Black Belt: Deployment Scenarios with AWS CloudFormation (DE...Amazon Web Services
 
Another Day in the Life of a Cloud Network Engineer at Netflix (NET312) - AWS...
Another Day in the Life of a Cloud Network Engineer at Netflix (NET312) - AWS...Another Day in the Life of a Cloud Network Engineer at Netflix (NET312) - AWS...
Another Day in the Life of a Cloud Network Engineer at Netflix (NET312) - AWS...Amazon Web Services
 
What’s New for Amazon DynamoDB - 2018 Q1 Update - AWS Online Tech Talks
What’s New for Amazon DynamoDB - 2018 Q1 Update - AWS Online Tech TalksWhat’s New for Amazon DynamoDB - 2018 Q1 Update - AWS Online Tech Talks
What’s New for Amazon DynamoDB - 2018 Q1 Update - AWS Online Tech TalksAmazon Web Services
 
Running Kubernetes Across Multiple AWS Accounts (CON409) - AWS re:Invent 2018
Running Kubernetes Across Multiple AWS Accounts (CON409) - AWS re:Invent 2018Running Kubernetes Across Multiple AWS Accounts (CON409) - AWS re:Invent 2018
Running Kubernetes Across Multiple AWS Accounts (CON409) - AWS re:Invent 2018Amazon Web Services
 
Building Microservices with the Twelve Factor App Pattern on AWS
Building Microservices with the Twelve Factor App Pattern on AWSBuilding Microservices with the Twelve Factor App Pattern on AWS
Building Microservices with the Twelve Factor App Pattern on AWSAmazon Web Services
 
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018Amazon Web Services
 
Use Elastic Beanstalk Blue/Green Deployment to Reduce Downtime & Risk (DEV330...
Use Elastic Beanstalk Blue/Green Deployment to Reduce Downtime & Risk (DEV330...Use Elastic Beanstalk Blue/Green Deployment to Reduce Downtime & Risk (DEV330...
Use Elastic Beanstalk Blue/Green Deployment to Reduce Downtime & Risk (DEV330...Amazon Web Services
 
Driving DevOps Transformation in Enterprises (DEV320) - AWS re:Invent 2018
Driving DevOps Transformation in Enterprises (DEV320) - AWS re:Invent 2018Driving DevOps Transformation in Enterprises (DEV320) - AWS re:Invent 2018
Driving DevOps Transformation in Enterprises (DEV320) - AWS re:Invent 2018Amazon Web Services
 
Building BMW Group's Customer Engagement Platform on AWS (AMT305) - AWS re:In...
Building BMW Group's Customer Engagement Platform on AWS (AMT305) - AWS re:In...Building BMW Group's Customer Engagement Platform on AWS (AMT305) - AWS re:In...
Building BMW Group's Customer Engagement Platform on AWS (AMT305) - AWS re:In...Amazon Web Services
 
Control for Your Cloud Environment Using AWS Management Tools (ENT226-R1) - A...
Control for Your Cloud Environment Using AWS Management Tools (ENT226-R1) - A...Control for Your Cloud Environment Using AWS Management Tools (ENT226-R1) - A...
Control for Your Cloud Environment Using AWS Management Tools (ENT226-R1) - A...Amazon Web Services
 
Optimizing Lambda@Edge for Performance and Cost Efficiency (CTD405-R2) - AWS ...
Optimizing Lambda@Edge for Performance and Cost Efficiency (CTD405-R2) - AWS ...Optimizing Lambda@Edge for Performance and Cost Efficiency (CTD405-R2) - AWS ...
Optimizing Lambda@Edge for Performance and Cost Efficiency (CTD405-R2) - AWS ...Amazon Web Services
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...Amazon Web Services
 
SRV205 Architectures and Strategies for Building Modern Applications on AWS
 SRV205 Architectures and Strategies for Building Modern Applications on AWS SRV205 Architectures and Strategies for Building Modern Applications on AWS
SRV205 Architectures and Strategies for Building Modern Applications on AWSAmazon Web Services
 
[NEW LAUNCH!] Lambda Layers (SRV375) - AWS re:Invent 2018
[NEW LAUNCH!] Lambda Layers (SRV375) - AWS re:Invent 2018[NEW LAUNCH!] Lambda Layers (SRV375) - AWS re:Invent 2018
[NEW LAUNCH!] Lambda Layers (SRV375) - AWS re:Invent 2018Amazon Web Services
 
SRV318 Running Kubernetes with Amazon EKS
SRV318 Running Kubernetes with Amazon EKSSRV318 Running Kubernetes with Amazon EKS
SRV318 Running Kubernetes with Amazon EKSAmazon Web Services
 
Visualize and Monitor Live OTT Media Services on AWS (CTD402) - AWS re:Invent...
Visualize and Monitor Live OTT Media Services on AWS (CTD402) - AWS re:Invent...Visualize and Monitor Live OTT Media Services on AWS (CTD402) - AWS re:Invent...
Visualize and Monitor Live OTT Media Services on AWS (CTD402) - AWS re:Invent...Amazon Web Services
 

What's hot (20)

Running Serverless at The Edge (CTD302) - AWS re:Invent 2018
Running Serverless at The Edge (CTD302) - AWS re:Invent 2018Running Serverless at The Edge (CTD302) - AWS re:Invent 2018
Running Serverless at The Edge (CTD302) - AWS re:Invent 2018
 
Thomson Reuters Shows How It Hosted a .NET App on Amazon ECS Using Windows Co...
Thomson Reuters Shows How It Hosted a .NET App on Amazon ECS Using Windows Co...Thomson Reuters Shows How It Hosted a .NET App on Amazon ECS Using Windows Co...
Thomson Reuters Shows How It Hosted a .NET App on Amazon ECS Using Windows Co...
 
Deploying Microservices using AWS Fargate (CON315-R1) - AWS re:Invent 2018
Deploying Microservices using AWS Fargate (CON315-R1) - AWS re:Invent 2018Deploying Microservices using AWS Fargate (CON315-R1) - AWS re:Invent 2018
Deploying Microservices using AWS Fargate (CON315-R1) - AWS re:Invent 2018
 
AWS Storage Leadership Session: What's New in Amazon S3, Amazon EFS, Amazon E...
AWS Storage Leadership Session: What's New in Amazon S3, Amazon EFS, Amazon E...AWS Storage Leadership Session: What's New in Amazon S3, Amazon EFS, Amazon E...
AWS Storage Leadership Session: What's New in Amazon S3, Amazon EFS, Amazon E...
 
Earn Your DevOps Black Belt: Deployment Scenarios with AWS CloudFormation (DE...
Earn Your DevOps Black Belt: Deployment Scenarios with AWS CloudFormation (DE...Earn Your DevOps Black Belt: Deployment Scenarios with AWS CloudFormation (DE...
Earn Your DevOps Black Belt: Deployment Scenarios with AWS CloudFormation (DE...
 
Another Day in the Life of a Cloud Network Engineer at Netflix (NET312) - AWS...
Another Day in the Life of a Cloud Network Engineer at Netflix (NET312) - AWS...Another Day in the Life of a Cloud Network Engineer at Netflix (NET312) - AWS...
Another Day in the Life of a Cloud Network Engineer at Netflix (NET312) - AWS...
 
What’s New for Amazon DynamoDB - 2018 Q1 Update - AWS Online Tech Talks
What’s New for Amazon DynamoDB - 2018 Q1 Update - AWS Online Tech TalksWhat’s New for Amazon DynamoDB - 2018 Q1 Update - AWS Online Tech Talks
What’s New for Amazon DynamoDB - 2018 Q1 Update - AWS Online Tech Talks
 
Running Kubernetes Across Multiple AWS Accounts (CON409) - AWS re:Invent 2018
Running Kubernetes Across Multiple AWS Accounts (CON409) - AWS re:Invent 2018Running Kubernetes Across Multiple AWS Accounts (CON409) - AWS re:Invent 2018
Running Kubernetes Across Multiple AWS Accounts (CON409) - AWS re:Invent 2018
 
Building Microservices with the Twelve Factor App Pattern on AWS
Building Microservices with the Twelve Factor App Pattern on AWSBuilding Microservices with the Twelve Factor App Pattern on AWS
Building Microservices with the Twelve Factor App Pattern on AWS
 
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
Continuous Integration Best Practices (DEV319-R1) - AWS re:Invent 2018
 
Use Elastic Beanstalk Blue/Green Deployment to Reduce Downtime & Risk (DEV330...
Use Elastic Beanstalk Blue/Green Deployment to Reduce Downtime & Risk (DEV330...Use Elastic Beanstalk Blue/Green Deployment to Reduce Downtime & Risk (DEV330...
Use Elastic Beanstalk Blue/Green Deployment to Reduce Downtime & Risk (DEV330...
 
Driving DevOps Transformation in Enterprises (DEV320) - AWS re:Invent 2018
Driving DevOps Transformation in Enterprises (DEV320) - AWS re:Invent 2018Driving DevOps Transformation in Enterprises (DEV320) - AWS re:Invent 2018
Driving DevOps Transformation in Enterprises (DEV320) - AWS re:Invent 2018
 
Building BMW Group's Customer Engagement Platform on AWS (AMT305) - AWS re:In...
Building BMW Group's Customer Engagement Platform on AWS (AMT305) - AWS re:In...Building BMW Group's Customer Engagement Platform on AWS (AMT305) - AWS re:In...
Building BMW Group's Customer Engagement Platform on AWS (AMT305) - AWS re:In...
 
Control for Your Cloud Environment Using AWS Management Tools (ENT226-R1) - A...
Control for Your Cloud Environment Using AWS Management Tools (ENT226-R1) - A...Control for Your Cloud Environment Using AWS Management Tools (ENT226-R1) - A...
Control for Your Cloud Environment Using AWS Management Tools (ENT226-R1) - A...
 
Optimizing Lambda@Edge for Performance and Cost Efficiency (CTD405-R2) - AWS ...
Optimizing Lambda@Edge for Performance and Cost Efficiency (CTD405-R2) - AWS ...Optimizing Lambda@Edge for Performance and Cost Efficiency (CTD405-R2) - AWS ...
Optimizing Lambda@Edge for Performance and Cost Efficiency (CTD405-R2) - AWS ...
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
 
SRV205 Architectures and Strategies for Building Modern Applications on AWS
 SRV205 Architectures and Strategies for Building Modern Applications on AWS SRV205 Architectures and Strategies for Building Modern Applications on AWS
SRV205 Architectures and Strategies for Building Modern Applications on AWS
 
[NEW LAUNCH!] Lambda Layers (SRV375) - AWS re:Invent 2018
[NEW LAUNCH!] Lambda Layers (SRV375) - AWS re:Invent 2018[NEW LAUNCH!] Lambda Layers (SRV375) - AWS re:Invent 2018
[NEW LAUNCH!] Lambda Layers (SRV375) - AWS re:Invent 2018
 
SRV318 Running Kubernetes with Amazon EKS
SRV318 Running Kubernetes with Amazon EKSSRV318 Running Kubernetes with Amazon EKS
SRV318 Running Kubernetes with Amazon EKS
 
Visualize and Monitor Live OTT Media Services on AWS (CTD402) - AWS re:Invent...
Visualize and Monitor Live OTT Media Services on AWS (CTD402) - AWS re:Invent...Visualize and Monitor Live OTT Media Services on AWS (CTD402) - AWS re:Invent...
Visualize and Monitor Live OTT Media Services on AWS (CTD402) - AWS re:Invent...
 

Similar to Containerize Legacy .NET Apps for Cloud Migration

Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...
Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...
Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...Amazon Web Services
 
Containerize Legacy .NET Framework Web Apps for Cloud Migration
Containerize Legacy .NET Framework Web Apps for Cloud Migration Containerize Legacy .NET Framework Web Apps for Cloud Migration
Containerize Legacy .NET Framework Web Apps for Cloud Migration Amazon Web Services
 
Containerize Legacy .NET Framework Web Apps for Cloud Migration
Containerize Legacy .NET Framework Web Apps for Cloud MigrationContainerize Legacy .NET Framework Web Apps for Cloud Migration
Containerize Legacy .NET Framework Web Apps for Cloud MigrationAmazon Web Services
 
Containerizing Legacy .NET Workloads (CON348-R1) - AWS re:Invent 2018
Containerizing Legacy .NET Workloads (CON348-R1) - AWS re:Invent 2018Containerizing Legacy .NET Workloads (CON348-R1) - AWS re:Invent 2018
Containerizing Legacy .NET Workloads (CON348-R1) - AWS re:Invent 2018Amazon Web Services
 
SRV314 Containerized App Development with AWS Fargate
SRV314 Containerized App Development with AWS FargateSRV314 Containerized App Development with AWS Fargate
SRV314 Containerized App Development with AWS FargateAmazon Web Services
 
Breaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfBreaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfAmazon Web Services
 
Breaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfBreaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfAmazon Web Services
 
Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) - AWS re:...
Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) - AWS re:...Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) - AWS re:...
Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) - AWS re:...Amazon Web Services
 
[NEW LAUNCH!] Deep Dive on Amazon FSx for Windows File Server (STG322-R1) - A...
[NEW LAUNCH!] Deep Dive on Amazon FSx for Windows File Server (STG322-R1) - A...[NEW LAUNCH!] Deep Dive on Amazon FSx for Windows File Server (STG322-R1) - A...
[NEW LAUNCH!] Deep Dive on Amazon FSx for Windows File Server (STG322-R1) - A...Amazon Web Services
 
[NEW LAUNCH!] Deep Dive on Amazon FSx for Windows File Server (STG322-R) - AW...
[NEW LAUNCH!] Deep Dive on Amazon FSx for Windows File Server (STG322-R) - AW...[NEW LAUNCH!] Deep Dive on Amazon FSx for Windows File Server (STG322-R) - AW...
[NEW LAUNCH!] Deep Dive on Amazon FSx for Windows File Server (STG322-R) - AW...Amazon Web Services
 
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017Amazon Web Services
 
Developer insight into why applications run amazingly Fast in CF 2018
Developer insight into why applications run amazingly Fast in CF 2018Developer insight into why applications run amazingly Fast in CF 2018
Developer insight into why applications run amazingly Fast in CF 2018Pavan Kumar
 
Building Secure Services using Containers
Building Secure Services using ContainersBuilding Secure Services using Containers
Building Secure Services using ContainersAmazon Web Services
 
Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...
Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...
Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...Amazon Web Services
 
Exciting world of Amazon container services with AWS Fargate and Amazon EKS
Exciting world of Amazon container services with AWS Fargate and Amazon EKSExciting world of Amazon container services with AWS Fargate and Amazon EKS
Exciting world of Amazon container services with AWS Fargate and Amazon EKSAmazon Web Services
 
Getting Started with Containers on AWS
Getting Started with Containers on AWSGetting Started with Containers on AWS
Getting Started with Containers on AWSAmazon Web Services
 
From Russia with Love: Fox Sports World Cup Production (ARC333) - AWS re:Inve...
From Russia with Love: Fox Sports World Cup Production (ARC333) - AWS re:Inve...From Russia with Love: Fox Sports World Cup Production (ARC333) - AWS re:Inve...
From Russia with Love: Fox Sports World Cup Production (ARC333) - AWS re:Inve...Amazon Web Services
 
AWS Black Belt Online Seminar 2018 re:Invent Recap: Compute, Container and Ne...
AWS Black Belt Online Seminar 2018 re:Invent Recap: Compute, Container and Ne...AWS Black Belt Online Seminar 2018 re:Invent Recap: Compute, Container and Ne...
AWS Black Belt Online Seminar 2018 re:Invent Recap: Compute, Container and Ne...Amazon Web Services Japan
 

Similar to Containerize Legacy .NET Apps for Cloud Migration (20)

Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...
Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...
Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...
 
Containerize Legacy .NET Framework Web Apps for Cloud Migration
Containerize Legacy .NET Framework Web Apps for Cloud Migration Containerize Legacy .NET Framework Web Apps for Cloud Migration
Containerize Legacy .NET Framework Web Apps for Cloud Migration
 
Containerize Legacy .NET Framework Web Apps for Cloud Migration
Containerize Legacy .NET Framework Web Apps for Cloud MigrationContainerize Legacy .NET Framework Web Apps for Cloud Migration
Containerize Legacy .NET Framework Web Apps for Cloud Migration
 
Containerizing Legacy .NET Workloads (CON348-R1) - AWS re:Invent 2018
Containerizing Legacy .NET Workloads (CON348-R1) - AWS re:Invent 2018Containerizing Legacy .NET Workloads (CON348-R1) - AWS re:Invent 2018
Containerizing Legacy .NET Workloads (CON348-R1) - AWS re:Invent 2018
 
SRV314 Containerized App Development with AWS Fargate
SRV314 Containerized App Development with AWS FargateSRV314 Containerized App Development with AWS Fargate
SRV314 Containerized App Development with AWS Fargate
 
Breaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfBreaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdf
 
Breaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfBreaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdf
 
S903 palla
S903 pallaS903 palla
S903 palla
 
Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) - AWS re:...
Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) - AWS re:...Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) - AWS re:...
Optimizing Network Performance for Amazon EC2 Instances (CMP308-R1) - AWS re:...
 
[NEW LAUNCH!] Deep Dive on Amazon FSx for Windows File Server (STG322-R1) - A...
[NEW LAUNCH!] Deep Dive on Amazon FSx for Windows File Server (STG322-R1) - A...[NEW LAUNCH!] Deep Dive on Amazon FSx for Windows File Server (STG322-R1) - A...
[NEW LAUNCH!] Deep Dive on Amazon FSx for Windows File Server (STG322-R1) - A...
 
[NEW LAUNCH!] Deep Dive on Amazon FSx for Windows File Server (STG322-R) - AW...
[NEW LAUNCH!] Deep Dive on Amazon FSx for Windows File Server (STG322-R) - AW...[NEW LAUNCH!] Deep Dive on Amazon FSx for Windows File Server (STG322-R) - AW...
[NEW LAUNCH!] Deep Dive on Amazon FSx for Windows File Server (STG322-R) - AW...
 
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
 
Kubernetes on AWS
Kubernetes on AWSKubernetes on AWS
Kubernetes on AWS
 
Developer insight into why applications run amazingly Fast in CF 2018
Developer insight into why applications run amazingly Fast in CF 2018Developer insight into why applications run amazingly Fast in CF 2018
Developer insight into why applications run amazingly Fast in CF 2018
 
Building Secure Services using Containers
Building Secure Services using ContainersBuilding Secure Services using Containers
Building Secure Services using Containers
 
Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...
Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...
Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...
 
Exciting world of Amazon container services with AWS Fargate and Amazon EKS
Exciting world of Amazon container services with AWS Fargate and Amazon EKSExciting world of Amazon container services with AWS Fargate and Amazon EKS
Exciting world of Amazon container services with AWS Fargate and Amazon EKS
 
Getting Started with Containers on AWS
Getting Started with Containers on AWSGetting Started with Containers on AWS
Getting Started with Containers on AWS
 
From Russia with Love: Fox Sports World Cup Production (ARC333) - AWS re:Inve...
From Russia with Love: Fox Sports World Cup Production (ARC333) - AWS re:Inve...From Russia with Love: Fox Sports World Cup Production (ARC333) - AWS re:Inve...
From Russia with Love: Fox Sports World Cup Production (ARC333) - AWS re:Inve...
 
AWS Black Belt Online Seminar 2018 re:Invent Recap: Compute, Container and Ne...
AWS Black Belt Online Seminar 2018 re:Invent Recap: Compute, Container and Ne...AWS Black Belt Online Seminar 2018 re:Invent Recap: Compute, Container and Ne...
AWS Black Belt Online Seminar 2018 re:Invent Recap: Compute, Container and Ne...
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Containerize Legacy .NET Apps for Cloud Migration

  • 1. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Containerize Legacy .NET Framework Web Apps for Cloud Migration Nicki Klein Sr. Technical Evangelist Amazon Web Services Brian Lewis Solutions Architect Amazon Web Services W I N 3 0 5
  • 2. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. The basics: Why containers for legacy .NET apps? Containerize a legacy ASP.NET app Deploying a .NET app container to Amazon ECS Hypervisor Status:on Connections Connections Connections Network Up/NetworkDown Amazon ECS AZ1 AZ2 Private Subnet Public Subnet Internet Gateway Private Subnet Public Subnet NAT GATEWAY NAT GATEWAY ALB Amazon ECS Cluster What we will cover
  • 3. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Microsoft .NET history
  • 4. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Recent AWS .NET related announcements • .NET Developer Center (aws.amazon.com/net)—7/2 • .NET Core 2.1 on Amazon Linux and Ubuntu—7/13 • .NET Core 2.1 on AWS Lambda—7/19 • .NET Global Tools—9/10 • PowerShell for Lambda—9/11 • .NET CDK – 9/13
  • 5. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Windows deployment modes
  • 6. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. • Smallest base layer available for Windows • Only 64-bit applications • No graphical applications • Optimized for .NET Core applications • Windows PowerShell not included by default (as of Windows Server version 1709) • Only PowerShell Core is available microsoft/nanoserver
  • 7. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. • Minimal installation of Windows Server 2016 • Windows PowerShell • Full .NET support • No Widows Shell Desktop • Great for migrating existing Windows applications to containers microsoft/windowsservercore
  • 8. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. .NET 4.x requires Server Core Server 2016 version 1803 – Server Core: •1.58GB, download size, 30% reduction from Windows Server, version 1709 •3.61GB, on disk size, 20% reduction from Windows Server, version 1709 Server version Size on disk Server 2016 – Server Core ~ 8 Gig Serve 2016 version 1709 – Server Core ~4.5 Gig Server 2016 version 1803 - Server Core: ~ 3.6 Gig
  • 9. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Why containers for legacy .NET apps? Operating system utilization Deployment / runtime consistency Scaling
  • 10. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Why containers for legacy .NET apps? Decrease the OS count from 12 to 4 (66%) Windows Server 2016 App Files Bins/Libs Processes Windows Kernel Host Mode System Processess Container Mgmt SVCHost Session Mngr LSASS w3wp.exe Container #1 App Files Bins/Libs Processes Container #2 Windows Server 2016 App Files Bins/Libs Processes: Windows Kernel Host Mode System Processess Container Mgmt SVCHost Session Mngr LSASS w3wp.exe Container #1 App Files Bins/Libs Container #2 w3wp.exe Processes: w3wp.exe Operating system utilization CPU: 67% Memory: 85% CPU: 72% Memory: 78% CPU: 63% Memory: 81% CPU: 59% Memory: 80% Statu s: on Connection sConn ect io nsConn ect ions Network Up /Network Do wn Hypervisor Guest OS Guest OSGuest OS App #1 App #2 App #3 Statu s: on Connection sConn ect io nsConn ect ions Network Up /Network Do wn Hypervisor Guest OS Guest OSGuest OS App #1 App #2 App #3 Statu s: on Connection sConn ect io nsConn ect ions Network Up /Network Do wn Hypervisor Guest OS Guest OSGuest OS App #1 App #2 App #3 Statu s: on Connection sConn ect io nsConn ect ions Network Up /Network Do wn Hypervisor Guest OS Guest OSGuest OS App #1 App #2 App #3
  • 11. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Deployment / runtime consistency Dev Windows 10 App #1 Windows Server 2016 Hypervisor Statu s: on Connection sConn ect io nsConn ect ions Network Up /Network Do wn App #1 Windows Server 2016 Hypervisor Statu s: on Connection sConn ect io nsConn ect ions Network Up /Network Do wn App #1 Test Prod Why containers for legacy .NET apps?
  • 12. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. FROM microsoft/windowsservercore RUN Add-WindowsFeature Web-server RUN Add-WindowsFeature NET-Frame... COPY myapp /myappfiles 1. Docker File 2. Docker Image 3. Docker Container FROM microsoft/windowsservercore RUN Add-WindowsFeature Web-server RUN Add-WindowsFeature NET-Frame... COPY myapp /myappfiles 1. Docker File 2. Docker Image ds8fmdsf895nlks 7 GB 3. Docker Container FROM microsoft/windowsservercore RUN Add-WindowsFeature Web-server RUN Add-WindowsFeature NET-Frame... COPY myapp /myappfiles 1. Docker File 2. Docker Image akm34ks9dj5flf9d 500 MB ds8fmdsf895nlks 7 GB 3. Docker Container FROM microsoft/windowsservercore RUN Add-WindowsFeature Web-server RUN Add-WindowsFeature NET-Frame... COPY myapp /myappfiles 1. Docker File 2. Docker Image k58cxbh48fj490d 300 MB akm34ks9dj5flf9d 500 MB ds8fmdsf895nlks 7 GB 3. Docker Container FROM microsoft/windowsservercore RUN Add-WindowsFeature Web-server RUN Add-WindowsFeature NET-Frame... COPY myapp /myappfiles 1. Docker File 2. Docker Image f954msx83nc85b 50 MB k58cxbh48fj490d 300 MB akm34ks9dj5flf9d 500 MB ds8fmdsf895nlks 7 GB 3. Docker Container FROM microsoft/windowsservercore RUN Add-WindowsFeature Web-server RUN Add-WindowsFeature NET-Frame... COPY myapp /myappfiles 1. Docker File 2. Docker Image f954msx83nc85b 50 MB k58cxbh48fj490d 300 MB akm34ks9dj5flf9d 500 MB ds8fmdsf895nlks 7 GB 3. Docker Container Read-Only FROM microsoft/windowsservercore RUN Add-WindowsFeature Web-server RUN Add-WindowsFeature NET-Frame... COPY myapp /myappfiles 1. Docker File 2. Docker Image f954msx83nc85b 50 MB k58cxbh48fj490d 300 MB akm34ks9dj5flf9d 500 MB ds8fmdsf895nlks 7 GB 3. Docker Container Read / Write Layer f954msx83nc85b 50 MB k58cxbh48fj490d 300 MB akm34ks9dj5flf9d 500 MB ds8fmdsf895nlks 7 GB Read-Only Why containers for legacy .NET apps? Scaling
  • 13. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Scaling Read / Write Layer f954msx83nc85b 50 MB k58cxbh48fj490d 300 MB akm34ks9dj5flf9d 500 MB ds8fmdsf895nlks 7 GB Windows Server 2016 Read / Write Layer Windows Server 2016 f954msx83nc85b 50 MB k58cxbh48fj490 300 MB akm34ks9dj5flf 500 MB ds8fmdsf895nlks 7 GB Read / Write Layer Windows Server 2016 f954msx83nc85b 50 MB k58cxbh48fj490 300 MB akm34ks9dj5flf 500 MB ds8fmdsf895nlks 7 GB Read / Write Layer f954msx83nc85b 50 MB k58cxbh48fj490d 300 MB akm34ks9dj5flf9d 500 MB ds8fmdsf895nlks 7 GB Read / Write Layer Windows Server 2016 f954msx83nc85b 50 MB k58cxbh48fj490 300 MB akm34ks9dj5flf 500 MB ds8fmdsf895nlks 7 GB Read / Write Layer Why containers for legacy .NET apps?
  • 14. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Benefits of Windows containers • Ease of movement (on-premises or in public cloud) • Improve operating system utilization / density • Development / deployment runtime consistency • Deployment size and speed / use of base images • Server boot times under 1 second
  • 15. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. What’s our sample .NET app? • Sample app circa 2010 • ASP.NET MVC 1.0 • SQL Server Express LocalDB https://github.com/kneekey23/NerdDinner NerdDinner
  • 16. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Demo: Containerize a legacy ASP.NET AppHypervisor Status:on Connections Connections Connections Network Up/NetworkDown Amazon ECS
  • 17. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Microsoft SQL Server in a container Production SQL Server container images must be pulled from the Docker Store • docker pull microsoft/mssql-server-windows • docker pull microsoft/mssql-server-linux:2017-latest For persistent SQL data: • Use data volume containers • Store the database on a file share (SMB 3.2 suggested) • Mount a host directory as data volume (Linux)
  • 18. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Demo: Containerizing Microsoft SQL ServerHypervisor Status:on Connections Connections Connections Network Up/NetworkDown Amazon ECS
  • 19. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Steps to containerize the legacy .NET app
  • 20. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Best practice: When building your application, build it in a disposable container and publishing in new containers. This will keep the size of your production containers down and reduce the attack surface of the containers.
  • 21. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Windows containers on your server AZ1 AZ2 Private Subnet Public Subnet Internet Gateway Private Subnet Public Subnet NAT GATEWAY NAT GATEWAY ALB Amazon ECS Cluster Demo:
  • 22. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon ECS for Windows Server 2016 • Dec 5, 2017 – Windows Server containers for production workloads! • Amazon ECS-optimized Windows Server 2016 AMI • Includes Docker 17.06 Enterprise Edition • Amazon ECS agent now runs as a native Windows service • Windows containers memory and CPU limit(s) enforcement Windows Server on Amazon ECS:
  • 23.
  • 24. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon ECS for Windows Server 2016 • Reference architecture on GitHub Step 1. Build Amazon ECS cluster https://github.com/aws- samples/ecs-refarch- cloudformation-windows
  • 25. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon ECS for Windows Server 2016 Step 2. Create task definition
  • 26. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon ECS for Windows Server 2016 • Service name • Number of tasks • ELB • IAM role Step 3. Create service & launch
  • 27. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Elastic Container Service (Amazon ECS) AZ1 AZ2 Private Subnet Public Subnet Internet Gateway Private Subnet Public Subnet NAT GATEWAY NAT GATEWAY ALB Amazon ECS Cluster Demo:
  • 28. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon ECS
  • 29. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Next steps: After you migrate your app Modernizing your .NET apps • Rewriting the application is always the cleanest path • Windows Containers offer another option Use Docker to take a feature-driven approach to breaking up the monolithic application, splitting the functionality across multiple containers and using Docker for the plumbing. Use .NET Core to extend the application.
  • 30. Thank you! © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Code from demos: https://github.com/kneekey23/NerdDinner Nicki Klein – Technical Evangelist, @nicki_23 Brian Lewis – Solutions Architect