Azure的服务平台对Kubernetes和容器的采用改变了您构建,部署和管理云原生应用程序的方式,将容器和服务视为构建的目标,而不是构成这些服务的代码。
Kubernetes本身可以自动执行许多基础架构任务,包括协调和管理容器。 Azure的AKS工具简化了Kubernetes的配置 ,但是您需要直接部署到AKS实例中,这是任何开发新应用程序或处理现有服务迁移的障碍。 尽管AKS本身并不昂贵,但是建立和拆除业务流程模型需要花费时间-最好将时间花费在编写和调试代码上。
引入Azure开发空间
这就是Azure Dev Spaces发挥作用的地方,它是一个与本地开发工具集成在一起的托管AKS实例。 在这里您可以试用代码,将其与其他Azure服务集成,并在其中与开发团队的其他成员进行协作。 通过将团队中每个成员的开发空间绑定到Git存储库的特定分支,您可以处理服务的特定部分,而其他开发人员则可以在自己的开发空间中处理服务的特定部分,然后再将代码与请求合并在运行集成和系统级测试之前。
这也是开始学习基于容器的开发的好方法。 借助Azure Dev Spaces,您可以使用Helm和Brigade之类的工具快速构建新应用程序的脚手架,创建容器以及支持在容器中运行代码的框架。 您可以使用Node.js , .Net Core或您选择的开发工具,同时支持Visual Studio Code和完整的Visual Studio IDE 。 它还简化了开发环境的设置:您无需在开发PC上运行Docker或Kubernetes。 您需要的是带有所有熟悉的调试工具的常规IDE。
目前,Azure Dev Spaces在公共Beta版中可用,仅在部分美国Azure地区,加拿大几个地区和一个欧洲地区的可用AKS群集的子集上运行。 随着该服务即将投入生产,您应该看到它在更多地区运行,但是在此之前,准备好比通常预期的延迟更多。 设置开发空间时可能还会有所延迟; 例如,在为您的应用配置公共DNS时,首次运行可能需要几分钟。 如果您使用SSH隧道访问您的空间,则即使您的代码在设备上运行,您也可以对其进行访问,即使该代码位于AKS上运行的远程容器中也是如此。
Azure Dev Spaces入门
要开始使用Azure Dev Spaces,您需要启用Kubernetes群集并运行Kubernetes 1.10.3。 它不是最新版本,但却是一个不错的起点。 再次,期望在生产发布之前和之后,随着服务的发展,受支持的群集版本的范围也会发生变化。 集群还需要支持HTTP应用程序路由,使您可以从IDE中进行访问以进行测试和调试。
使用Visual Studio Code时,需要确保已安装Visual Studio Code的Azure CLI和Azure Dev Spaces扩展。 设置Azure Dev Spaces在CLI中需要一个单行命令,您可以从Visual Studio Code的内置终端访问该命令。 Microsoft在GitHub中提供了示例代码,您可以使用这些示例代码开始使用基本的Web应用程序。
为代码构建适当的Docker和Helm资产后,就可以开始编辑代码以及容器中的任何Web内容。 通过处理Kubernetes的活动资产,您可以避免整个构建/编译/部署/测试周期。 简单的azds up
命令可处理HTML和CSS的内容同步,因此内容编辑一旦上传就可以使用。 如果对已编译的代码进行更改,则同一命令将使用其Helm图表来重建和部署您的应用程序。
调试Kubernetes容器
在Azure Dev Spaces中调试代码非常容易:您需要做的就是首先运行Visual Studio Code命令以启用调试支持。 完成后,在Visual Studio Code中启用适当的调试选项,以使用.Net Core和Azure Dev Spaces。 按F5键将构建和部署代码,并同步到使用附加的调试器构建的新容器。 在代码中添加断点可让您访问实时代码编辑器,您在其中进行的更改将自动重新编译并同步到当前正在运行的容器。
将Azure Dev Spaces用作此类调试目标会在每次更改代码时缩短构建新容器的过程。 即使您使用ExpressRoute将本地网络直接链接到Azure,将整个容器推送到Azure也将花费一些时间,即使它使用的是.Net Core和Windows Server Nano 。 几乎实时更新代码使您有机会在代码库上快速迭代,并在对所做的更改感到满意后将其保存回Git实例。
使用共享的Azure开发空间
现代微服务架构意味着代码不是孤立运行的。 您编写的代码需要与同事的代码一起使用,并在单独的容器中甚至在不同的云资源中运行。 Azure Dev Spaces支持此方法,使您可以在单用户开发空间中部署多个容器,因此可以使用应用程序的个人实例。 通过在开发空间中运行,您可以将所需的计算资源卸载到云中,从而可以调试比本地开发系统上运行的应用程序复杂得多的应用程序,而无需模拟服务和端点。
共享的Azure开发空间使团队可以使用包含实时应用程序的默认空间来处理其代码。 开发人员可以创建自己的派生空间,这些派生空间将从默认空间继承代码。 可以将代码更改上载到派生空间,并将对应用程序其他未更改部分的调用路由到默认空间。 Azure Dev Spaces使用URL前缀来处理对新代码的调用,如果在您的个人空间中找不到代码,则会回退到默认值。 URL前缀可用于共享开发空间中的任何端点; 它不需要在您的空间中运行。 删除前缀以测试共享空间中的代码,以便您可以比较代码和原始代码之间的性能。
借助Visual Studio和Visual Studio Code的支持,没有尝试不使用Azure Dev Spaces的机会。
From: https://www.infoworld.com/article/3290346/build-and-test-microservices-applications-with-azure-dev-spaces.html