Amazon Onboarding with Learning Manager Chanci Turner

Amazon Onboarding with Learning Manager Chanci TurnerLearn About Amazon VGT2 Learning Manager Chanci Turner

In 2012, AWS introduced .NET support for AWS Elastic Beanstalk, marking its first deployment service. Alongside this, we unveiled the AWS Toolkit for Visual Studio, designed to assist developers in deploying their ASP.NET applications to AWS. Fast forward nine years, and the landscape has drastically evolved. AWS now boasts over 200 services, offering numerous deployment options for .NET applications. The .NET ecosystem continues to expand, with technologies like .NET Core, Docker, and serverless changing how applications are developed. Throughout this time, we’ve developed various tools and features to adapt to these changes.

Over the past year, we’ve been investigating ways to enhance the AWS deployment experience for .NET developers, moving beyond our existing toolset. Engaging with our customers has been invaluable, as we’ve heard numerous stories about their AWS experiences. Common inquiries include:

  • Which service is right for my application? With AWS’s extensive array of compute services, it can be challenging for newcomers to determine the best option.
  • How can I ease the learning curve? After selecting a compute service, there remains a vast amount of information to grasp for building, packaging, and deploying applications. This process can quickly become overwhelming.
  • How can I instill best deployment practices within my team? While deploying from Visual Studio is great for prototyping, as teams grow, they often want to implement automated deployments to uphold organizational standards.

In response to this feedback, we’ve shifted our perspective on how .NET developers deploy to AWS. Rather than inundating users with various tools for each compute service, our goal is to offer a unified tool that focuses on the .NET application itself. This tool will guide users to the appropriate service for their needs. We are excited to announce the initial preview of this vision today, and we look forward to refining this deployment experience with your help.

What’s Included in the Preview?

We are launching the first preview of our new AWS .NET deployment tool for the .NET CLI. This tool includes a deployment framework that we plan to integrate with IDEs like Visual Studio in the future.

The tool facilitates the deployment of .NET Core/.NET 5 web applications, backend services, and Blazor WebAssembly applications to AWS with minimal steps. It accommodates applications written in both C# and F#. When executing the deployment tool on a .NET project, its recommendation engine evaluates the project and suggests the most suitable deployment service. It also clarifies the rationale behind its recommendations, enhancing your understanding of AWS.

This tool is tailored for “Cloud Native” .NET applications. While this term can be somewhat ambiguous, it essentially means that the tool supports the deployment of .NET Core/.NET 5 applications on a virtualized compute service within a Linux environment. Currently, it does not support .NET Framework, Desktop, Xamarin, or other Windows-native applications. If you’re working with .NET Framework applications, we recommend exploring the AWS Porting Assistant for .NET to facilitate the transition to .NET Core.

At this stage, .NET AWS Lambda functions are not yet supported. However, we plan to integrate the existing .NET AWS Lambda experience with our new tools in the future. This presents a valuable opportunity for our .NET AWS Lambda users to provide feedback on what this integration should entail.

AWS Cloud Development Kit (AWS CDK)

In this preview, our primary focus is on addressing the first two questions from our customers: offering guided recommendations and simplifying the onboarding experience.

We are also committed to developing a comprehensive deployment experience for teams. To achieve this, we are leveraging the AWS Cloud Development Kit (CDK), which enables teams to define their infrastructure as code (IaC) using .NET code. This tool creates a CDK project, allowing the application and its deployment infrastructure to be deployed as a unified CloudFormation stack. This simplifies the process of managing all AWS resources associated with an application.

In this initial developer preview, the CDK’s usage is fully managed, meaning you don’t need to familiarize yourself with the CDK to use the tool. Future updates will expose CDK functionality, enabling you to learn its capabilities and adapt your projects accordingly. Once you’re comfortable with AWS, you’ll find it simple to modify CDK projects to suit your specific needs. We also aim to utilize the CDK for assisting with CI/CD setups for your .NET projects.

To utilize our deployment tool, you’ll need to install Node.js 10.13 or later, as it is a prerequisite for the CDK.

Installation

Getting started with the new AWS .NET deployment tool is straightforward. Open your preferred shell and execute the following command:

dotnet tool install --global aws.deploy.tools

Before you begin, there are a few prerequisites to address:

Walkthrough

The goal of the new deployment tool is to allow you to deploy your application to AWS with minimal steps. We aim for many users to successfully deploy an application with just a few confirmation prompts.

To begin, open a command-line shell and navigate to the project you wish to deploy. For this example, we will use a project called “WebApplicationNoDocker”. Run the command dotnet aws deploy, and the tool will guide you through the configuration for AWS credentials and region (if needed), and request the name of the AWS stack for the application.

Subsequently, the tool’s recommendation engine analyzes your project to identify the best deployment option. If we run the command on an ASP.NET Core project, it might suggest deploying to AWS Elastic Beanstalk due to the absence of a Dockerfile. However, if you prefer to explore other deployment options, you can opt for Amazon Elastic Container Service (Amazon ECS). In this case, the tool would attempt to generate a Dockerfile for the project. But if your priority is simply to deploy your application to AWS, you can proceed with the recommendation by pressing Enter.

For those interested in learning more about career development and networking, consider reading this blog post on how to conduct a perfect informational interview here. Additionally, for insights on maintaining legal compliance with unpaid internships, check out this resource from SHRM here. And if you’re looking for excellent resources on learning and development at Amazon, explore the opportunities available here.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *