• Azure Dev Spaces的简单介绍
  • 发布于 2个月前
  • 243 热度
    0 评论

上周在build上,微软宣布了Azure dev spaces的一些特效。这个针对AzureKubernetes服务(AKS)的附加组件使您的团队能够使用云上开发应用程序。在实时AKS集群中运行您的服务,并端到端地测试它,而不会影响您的同事。允许整个开发团队共享一个AKS集群,而不是为每个开发人员要求单独的环境,从而节省维护时间和金钱。


Azure dev spaces源于微软与拥有基于大型微服务的云本机架构的公司的对话。我们了解到,他们中的许多人构建了自己的内部服务,使他们的开发人员能够快速地将新代码部署到一个孤立的环境中,并在整个应用程序的上下文中进行测试。这些公司在构建这些能力上投入了大量的时间和精力。AzureDevSpaces允许您只需点击几下就可以为自己的团队带来相同的功能。


在本文中,我们将向您展示如何开始使用Azure dev spaces
1.如果您是团队负责人或DevOps,您将学习如何设置团队的AKS集群以用于Azure开发人员空间。
2.如果您是开发人员,您将学习如何在团队的共享AKS集群中运行服务。
3.您还将学习如何使用dev spaces扩展for vs代码排除错误。(还提供了Visual Studio的扩展功能。)


设置你的AKS集群

我们假设你的所有服务都跑在你们公司内部的测试环境AKS集群上

您可以从Azure门户或Azure CLI在集群上启用dev spaces。下面的屏幕显示了在Azure门户中启用开发空间的位置。

然后,你可以设置服务的命名空间,比如,我这边是命名为dev

现在你已经正确地设置了集群和应用程序,那么让我们看看你团队中的各个开发人员如何使用dev spaces在整个应用程序的上下文中测试他们的代码。


在AKS中运行服务

假设一个名为jane的新开发人员加入了您的团队。您希望她在现有的名为bikes的微服务中添加一个新功能.

传统上,Jane会先在本地开发编写该功能的代码,并在本地做一些基本的单元测试。希望您的团队已经投资了一些自动化的集成测试,这样她可以进一步验证他没有破坏任何代码。但是,由于她刚接触这个程序,对代码不熟,在看到修改后的程序正常运行之前,她可能不会有信心签入代码。自动化测试不能捕获所有东西,没有人想破坏团队的开发环境,尤其是在团队的第一天!


这时候,AzureDevSpaces就可以发挥效用了!Jane可以创建一个名为newFeature的子dev space。

在子开发空间中运行的应用程序版本有自己的URL。这只是指向团队版本的应用程序的URL,前缀为newfeature.s.azure dev spaces会截取带有此URL前缀的请求,并将其正确路由。如果有一个版本的服务在newfeature dev空间中运行,那么dev spaces会将请求路由到该版本。否则,dev space s将请求路由到在根dev空间中运行的团队版本的服务。


端到端测试

即使在嵌入代码之前,Jane也可以利用此功能快速测试端到端的更改。她所需要做的就是在新功能开发空间中运行她更新版本的自行车服务。现在,她可以使用newfeature.s的url访问自己的应用程序版本。Azure dev space s将自动处理Jane更新版本的bikes(在newfeature dev space中运行)和组成应用程序的其余服务(在父dev space中运行)之间的路由请求。

在下面所示的示例中,站点当前为每个列出的自行车显示一个通用的自行车图标。简的一个队友已经更新了数据库,其中包括一张实际自行车的图片。Jane需要更新Bikes服务以从数据库中提取此图片并将其发送到上游服务:

使用Azure Dev Spaces排除bug

如果简发现她所做的代码更改不能正常工作怎么办?首先,她的坏代码只在新特性dev space中运行。她的同事的请求仍然使用在父开发空间中运行的的原始版本。她知道自己不会妨碍同事,所以可以花时间解决问题。

此外,她可以使用Visual Studio的Azure开发人员空间扩展或Visual Studio代码,只需单击一下即可调试她在云中运行的代码。这使她能够快速地集中精力解决问题,解决问题,并验证她的解决方法。如果问题跨越多个服务,她甚至可以在newfeature dev空间中运行和调试其他服务。

下面的图片显示通过VS代码调试NoDE.js服务,但对于.NETCype和Java,VisualStudio或VS代码都有相同的功能:

一旦Jane使用AzureDevSpaces完全测试了她的代码,她就可以自信地嵌入代码了,因为她知道自己已经验证了自己的端到端代码。

用户评论