net on aws · © 2018, amazon web services, inc. or its affiliates. all rights reserved..net 5...

19
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved. .NET on AWS Kirk Davis Specialized Solutions Architect April 2020

Upload: others

Post on 26-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

.NET on AWS

Kirk Davis

Specialized Solutions Architect

April 2020

Page 2: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

“.NET Core is the Future of .NET”

“.NET Framework 4.8 will be the last major version of .NET Framework”

“…all *new* .NET applications should be based on .NET Core”

“All future investment in .NET will be in .NET Core”

- Scott Hunter, Director Program Management for .NET, Microsoft

.NET Core Release schedule and naming:

.NET Core 3.1 December, 2019 Currently GA

.NET 5.0 November, 2020 Maintenance/Service

.NET 6.0 November, 2021 Long-Term Support (LTS)

.NET 7.0 November, 2022 Maintenance/Service

https://devblogs.microsoft.com/dotnet/net-core-is-the-future-of-net/ May 2019

Page 3: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

.NET 5 – Unified platform, many targets

Page 4: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Compute Resources: Where to Run Code

EC2 Instances: Windows/Linux (.NET Framework, .NET Core)

‒ Choose instance type/size, memory, disk, vCPUs

‒ You manage and patch

Containers: Windows, Linux (.NET Framework, .NET Core)

‒ Easy to package, deploy, reuse and scale

‒ Focus on development, not infrastructure

Lambda (.NET Core)

‒ Serverless platform for short-running tasks (< 15 min)

‒ Pay only for the time the code is executing

‒ Choose from C#, Node.js, Python, Java, Go, Ruby,

or bring your own runtime!

ab

stra

ctio

n

Page 5: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

AWS Toolkits for .NET IDEs

AWS Toolkit for Visual Studio

AWS Toolkit for VS Code

AWS Toolkit for JetBrains Rider

Page 6: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

AWS Tools & SDKs for .NET and Windows

AWS CLICommand line

AWS Tools for PowerShellPowerShell

AWS SDK for .NETNuGet

AWS Tools for VSTSAzure DevOps

Page 7: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

AWS SDK for .NET

.NET assemblies make it easy to program against the AWS APIs.

.NET Standard API:

.NET Framework 3.5 and later

.NET Core 2.x, 3.x, etc

Install packages with NuGet

SDK packages are named AWSSDK.* Other useful packages at Amazon.* and AWS.*

Page 8: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

AWS SDK for .NET

Page 9: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Patterns for .NET Coding for AWS Services

Using the low-level APIs:

Create a service-specific client.var client = new AmazonS3Client(…)

Create action-specific request.var request = new PutBucketRequest(…)

Invoke client method, passing request and receiving responsevar response = await client.PutBucketAsync(request)

High-level Abstractions & Utilities:

S3 TransferUtility – copy large files and entire folders to/from S3

DynamoDB Object Model – automatically store POCOs to DynamoDB

Logger Packages – ILogger implementations

DynamoDB Session Provider – ASP.NET Session to DynamoDB

Page 10: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

AWS Toolkit for Visual Studio

• See your AWS resources

• Launch VMs, databases, create

DynamoDB tables, more

• ASP.NET and Lambda deployment

wizards

• Scan DynamoDB tables

• Test your Lambda functions

• Manage CloudFormation stacks

• More!

Page 11: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

AWS Toolkit for Visual Studio

Lots of sample

project templates in

the New Project

wizard.

Page 12: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

AWS Toolkit for Visual Studio

Page 13: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

AWS Toolkit for Visual Studio Code

Create, deploy and

invoke new SAM

serverless apps

View, delete and get

information on AWS

CloudFormation

Stacks

Invoke, delete and get

information on AWS

Lambda functions

Page 14: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

AWS Tools for Azure DevOps & TFS

Page 15: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

AWS Tools for PowerShell & PowerShell Core

Manage AWS Resources and

Services from PowerShell

Perform many of the same

actions available in the AWS

SDK for .NET

Use scripts to automate

administrative tasks, and

take advantage of the range

of AWS services

Page 16: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

AWS Elastic Beanstalk (EB)

Easily deploy, monitor, and scale three-tier web

applications and services.

Infrastructure provisioned and managed by EB – but you

maintain complete control.

Preconfigured application stacks that are easily

customizable.

Support for:

Page 17: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

AWS Elastic Beanstalk

Your code

IIS Web Server

ASP.NET / App Pool

.NET Framework

Windows Server

Host

Elastic Beanstalk configures

each EC2 instance in your

environment with the

components necessary to run

applications for the selected

platform. No more worrying

about logging into instances to

install and configure you

application stack.

Focus on building

your application

Provided by you

Provided and managed by AWS Elastic Beanstalk (EB)

Page 18: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

.NET Framework Migration Strategies

Deploy .NET Framework apps “as is” to EC2 Every app can have custom server configuration, different .NET

Framework versions, IIS configuration, dependencies, etc.

Containerize in Windows Containers and orchestrate with ECS Supports different .NET Framework versions, IIS configurations,

dependencies

Leverage common CI/CD pipelines, consolidate servers

Port to .NET Core, and run in ECS, Fargate or Lambda No OS licensing costs, smaller containers

Enables deploying apps to Lambda

Le

ve

l of E

ffort

Page 19: NET on AWS · © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved..NET 5 –Unified platform, many targets

© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

More Resources

AWS .NET Developer Centeraws.amazon.com/net/

AWS .NET Developer Blogaws.amazon.com/blogs/developer/category/programing-language/dot-net/

AWS Extensions for dotnet CLIgithub.com/aws/aws-extensions-for-dotnet-cli