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
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
Post a Comment