Saturday, September 14, 2019

Container Tools in Visual Studio

The tools included in Visual Studio for developing with containers are easy to use, and greatly simplify building, debugging, and deployment for containerized applications. You can work with a container for a single project, or use container orchestration with Docker Compose, Service Fabric, or Kubernetes to work with multiple services in containers.
 Note
This article applies to Visual Studio on Windows, and not Visual Studio for Mac.
 Tip
To learn more about installing Docker for Windows, see Docker Desktop for Windows.

Docker support in Visual Studio

Docker support is available for ASP.NET projects, ASP.NET Core projects, and .NET Core and .NET Framework console projects.
The support for Docker in Visual Studio has changed over a number of releases in response to customer needs. There are two levels of Docker support you can add to a project, and the supported options vary by the type of project and the version of Visual Studio. With some supported project types, if you just want a container for a single project, without using orchestration, you can do that by adding Docker support. The next level is container orchestration support, which adds appropriate support files for the particular orchestrator you choose.
With Visual Studio 2019, you can use Docker Compose, Kubernetes, and Service Fabric as container orchestration services.
 Note
If you are using the full .NET Framework console project template, when you add Docker support, support for orchestration using Docker Compose is added automatically.

Adding Docker support

You can enable Docker support during project creation by selecting Enable Docker Support when creating a new project, as shown in the following screenshot:
Enable Docker Support for new ASP.NET Core web app in Visual Studio
 Note
For .NET Framework projects (not .NET Core), only Windows containers are available.
You can add Docker support to an existing project by selecting Add > Docker Support in Solution Explorer. The Add > Docker Support and Add > Container Orchestrator Support commands are located on the right-click menu (or context menu) of the project node for an ASP.NET Core project in Solution Explorer, as shown in the following screenshot:
Add Docker Support menu option in Visual Studio
When you add or enable Docker support, Visual Studio adds the following to the project:
  • Dockerfile file
  • a .dockerignore file
  • a NuGet package reference to the Microsoft.VisualStudio.Azure.Containers.Tools.Targets
The solution looks like this once you add Docker support:
Screenshot of solution explorer with Dockerfile and .dockerignore file

Docker Compose support

When you want to compose a multi-container solution using Docker Compose, add container orchestration support to your projects. This lets you run and debug a group of containers (a whole solution or group of projects) at the same time if they're defined in the same docker-compose.yml file.
To add container orchestration support using Docker Compose, right-click on the solution or project node in Solution Explorer, and choose Add > Container Orchestration Support. Then choose Docker Compose to manage the containers.
After you add container orchestration support to your project, you see a Dockerfile added to the project (if there wasn't one there already) and a docker-compose folder added to the solution in Solution Explorer, as shown here:
Docker files in Solution Explorer in Visual Studio
If docker-compose.yml already exists, Visual Studio just adds the required lines of configuration code to it.
Repeat the process with the other projects that you want to control using Docker Compose.

Kubernetes support

With Kubernetes support, you can enable a connection between your local project and a Kubernetes cluster running in Azure Kubernetes Service (AKS), and thereby modify and debug your services running in AKS using Visual Studio. This service is provided by Azure Dev Spaces. Azure Dev Spaces also lets you set up separate branches of your Kubernetes services called dev spaces for development purposes, so you can efficiently isolate production services from working versions in development, and keep distinct modifications cleanly separated from each other.
To add Kubernetes support to your projects, choose Kubernetes/Helm when you add container orchestration support. Several files are added to your project, including azds.yaml, which configures Azure Dev Spaces, and Helm charts which describe the structure of your Kubernetes services.

Service Fabric support

With Service Fabric tools in Visual Studio, you can develop and debug for Azure Service Fabric, run and debug locally, and deploy to Azure.
Visual Studio 2019 supports developing containerized microservices using Windows containers and Service Fabric orchestration.
For a detailed tutorial, see Tutorial: Deploy a .NET application in a Windows container to Azure Service Fabric.
For more information on Azure Service Fabric, see Service Fabric.

Continuous delivery and continuous integration (CI/CD)

Visual Studio integrates readily with Azure Pipelines for automated and continuous integration and delivery of changes to your service code and configuration. To get started, see Create your first pipeline.
For Service Fabric, see Tutorial: Deploy your ASP.NET Core app to Azure Service Fabric by using Azure DevOps Projects.
For Kubernetes, see Deploy a Docker container app to Azure Kubernetes Service.

No comments:

Post a Comment

How to DROP SEQUENCE in Oracle?

  Oracle  DROP SEQUENCE   overview The  DROP SEQUENCE  the statement allows you to remove a sequence from the database. Here is the basic sy...