热门标签 | 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



推荐阅读
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • Ralph的Kubernetes进阶之旅:集群架构与对象解析
    本文深入探讨了Kubernetes集群的架构和核心对象,详细介绍了Pod、Service、Volume等基本组件,以及更高层次的抽象如Deployment、StatefulSet等,帮助读者全面理解Kubernetes的工作原理。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 随着网络安全威胁的不断演变,电子邮件系统成为攻击者频繁利用的目标。本文详细探讨了电子邮件系统中的常见漏洞及其潜在风险,并提供了专业的防护建议。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • 本文详细介绍了在不同操作系统中查找和设置网卡的方法,涵盖了Windows系统的具体步骤,并提供了关于网卡位置、无线网络设置及常见问题的解答。 ... [详细]
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社区 版权所有