热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用AzureDevSpaces构建和测试微服务应用程序

Azure的服务平台对Kubernetes和容器的采用改变了您构建,部署和管理云原生应用程序的方式,将容器和服务视为构建的目标,而不是构成

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



推荐阅读
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • Node.js 配置文件管理方法详解与最佳实践
    本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ... [详细]
  • 本文主要探讨了Java中处理ActionEvent事件的接口,以及一些常见的编程问题和解决方案,包括方法重载、成员变量访问、镜片质量检测等。 ... [详细]
  • C盘无法格式化的原因及解决方法
    本文探讨了C盘无法格式化的原因,并提供了详细的解决方案,帮助用户顺利进行系统维护。 ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • 本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析Spring Boot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。 ... [详细]
  • FreeBSD环境下PHP GD库安装问题的详细解决方案
    在 FreeBSD 环境下,安装 PHP GD 库时可能会遇到一些常见的问题。本文详细介绍了从配置到编译的完整步骤,包括解决依赖关系、配置选项以及常见错误的处理方法。通过这些详细的指导,开发者可以顺利地在 FreeBSD 上完成 PHP GD 库的安装,确保其正常运行。此外,本文还提供了一些优化建议,帮助提高安装过程的效率和稳定性。 ... [详细]
  • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
  • 在 Kubernetes 中,Pod 的调度通常由集群的自动调度策略决定,这些策略主要关注资源充足性和负载均衡。然而,在某些场景下,用户可能需要更精细地控制 Pod 的调度行为,例如将特定的服务(如 GitLab)部署到特定节点上,以提高性能或满足特定需求。本文深入解析了 Kubernetes 的亲和性调度机制,并探讨了多种优化策略,帮助用户实现更高效、更灵活的资源管理。 ... [详细]
  • 在《Python编程基础》课程中,我们将深入探讨Python中的循环结构。通过详细解析for循环和while循环的语法与应用场景,帮助初学者掌握循环控制语句的核心概念和实际应用技巧。此外,还将介绍如何利用循环结构解决复杂问题,提高编程效率和代码可读性。 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
  • 如何使用和示例代码解析 org.semanticweb.owlapi.model.OWLSubPropertyChainOfAxiom.getPropertyChain() 方法 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
author-avatar
gfhhhgh_130
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有