Skip to main content

Azure Dev Spaces - A free tool for developing app on top of AKS

In this post, we will talk about Azure Dev Spaces and how it can improve the developing and support experience when you are working with AKS (Azure Kubernetes Service).

Working with containers and AKS it is a great experience when you develop the application on your local machine, or you are in production and everything works as expected.
The friction appears in the moment when you have some issues with your application, and you want to debug it. Recreating a dedicated env. just for you can be complicated, time-consuming and expensive.  This is where Azure Dev Spaces comes to fill the gap. It is enabling us to deploy and to remote debugging of our services directly inside the AKS cluster.

Directly from our preferred IDE we can deploy our container inside AKS and do a remote debugging session to it, adding breakpoint directly in Visual Studio.

How is this possible?
Azure Dev Spaces tools that are installed on your local machine are creating a secure tunnel between your device and AKS. This SSH tunnel is used to communicate with your container and enabling the remote debugging session.
From the development perspective, the experience is the same as the code would run on your local machine. Even the service URL that can be used to access the service web endpoint is with 'localhost'. Behind the scene, the calls are redirected to your container that is running inside AKS.
All the configuration related to Docker and Kubernetes are generated on the fly automatically by the CLI.

Sharing the cluster
Azure Dev Spaces enables us to share an AKS cluster between team members. Even if multiple containers can run inside the AKS, each developer will be able to do remote debugging only to the services that he deployed and have access.
In this way, you can have an environment that it is end-to-end configured and debug only one of the service.

Supported languages
At this moment there is full support for Node.JS and .NET from IDEs like Visual Studio 2017, Visual Studio Code od CLI.

Code changes
There is a nice feature, integrated with the IDE that enables us to make changes to our code and just hit Refresh button. The debug session will still remain active, and a new version of your service will be redeployed automatically in the same container instance.
Remarks: This is possible only in the Visual Studio Code. In Visual Studio you will need to stop the debug session, change the code and start debugging. 
During the debug session you will have access to all debugging information as you would have for the code that it is running on your local machine.
Another useful feature is the ability to deploy and debug multiple services. From the IDE you are allowed to deploy and start debugging of multiple services at the same time. This is great when you have an issue on multiple services, and you want to identify the root problem.

Space isolation
As I said before, inside Azure Dev Spaces, you are allowed to share the space and services between the team. There might be cases when you don't want to do this, and you want to have your own isolate space with your own configuration and services.
For this, you are free to create your own space, that is entirely isolated from the team one. Inside Azure Dev Spaces you are free to create as many spaces you need - shared by the team or 'private.' All of them can be created inside the same AKS cluster, allowing you to control and reduce the cost of Azure for DEV and TEST environments.


Space management
The CLI gives you the ability to get the list of all spaces that are created inside an AKS cluster. Be aware that a space it is not deleted automatically at the moment when you stop debugging. For this, you need to run commands like 'remove-dev-spaces' that deletes all the Dev Spaces from the AKS cluster.
az aks remove-dev-spaces --name rvaks--resource-group rvaksdemo

Useful commands

  • azds list-up : Check the list of dev spaces resource group
  • azds space list : List of spaces
  • azds space select : Select a specific space
  • az aks use-dev-spaces -n rvaks -g rvaksdemo --update : Update Dev Space CLI extension and command tools
Overview
Azure Dev Space it's a powerful development tool, that comes hand in hand with AKS. It shall be part of the tools used by the team when you are working with AKS in DEV and TEST scenarios. And yes, it is FREE.

Comments

Popular posts from this blog

Windows Docker Containers can make WIN32 API calls, use COM and ASP.NET WebForms

After the last post , I received two interesting questions related to Docker and Windows. People were interested if we do Win32 API calls from a Docker container and if there is support for COM. WIN32 Support To test calls to WIN32 API, let’s try to populate SYSTEM_INFO class. [StructLayout(LayoutKind.Sequential)] public struct SYSTEM_INFO { public uint dwOemId; public uint dwPageSize; public uint lpMinimumApplicationAddress; public uint lpMaximumApplicationAddress; public uint dwActiveProcessorMask; public uint dwNumberOfProcessors; public uint dwProcessorType; public uint dwAllocationGranularity; public uint dwProcessorLevel; public uint dwProcessorRevision; } ... [DllImport("kernel32")] static extern void GetSystemInfo(ref SYSTEM_INFO pSI); ... SYSTEM_INFO pSI = new SYSTEM_INFO(...

ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded

Today blog post will be started with the following error when running DB tests on the CI machine: threw exception: System.InvalidOperationException: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information. at System.Data.Entity.Infrastructure.DependencyResolution.ProviderServicesFactory.GetInstance(String providerTypeName, String providerInvariantName) This error happened only on the Continuous Integration machine. On the devs machines, everything has fine. The classic problem – on my machine it’s working. The CI has the following configuration: TeamCity .NET 4.51 EF 6.0.2 VS2013 It see...

Navigating Cloud Strategy after Azure Central US Region Outage

 Looking back, July 19, 2024, was challenging for customers using Microsoft Azure or Windows machines. Two major outages affected customers using CrowdStrike Falcon or Microsoft Azure computation resources in the Central US. These two outages affected many people and put many businesses on pause for a few hours or even days. The overlap of these two issues was a nightmare for travellers. In addition to blue screens in the airport terminals, they could not get additional information from the airport website, airline personnel, or the support line because they were affected by the outage in the Central US region or the CrowdStrike outage.   But what happened in reality? A faulty CrowdStrike update affected Windows computers globally, from airports and healthcare to small businesses, affecting over 8.5m computers. Even if the Falson Sensor software defect was identified and a fix deployed shortly after, the recovery took longer. In parallel with CrowdStrike, Microsoft provi...