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



推荐阅读
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • Ralph的Kubernetes进阶之旅:集群架构与对象解析
    本文深入探讨了Kubernetes集群的架构和核心对象,详细介绍了Pod、Service、Volume等基本组件,以及更高层次的抽象如Deployment、StatefulSet等,帮助读者全面理解Kubernetes的工作原理。 ... [详细]
  • VPX611是北京青翼科技推出的一款采用6U VPX架构的高性能数据存储板。该板卡搭载两片Xilinx Kintex-7系列FPGA作为主控单元,内置RAID控制器,支持多达8个mSATA盘,最大存储容量可达8TB,持续写入带宽高达3.2GB/s。 ... [详细]
  • 5G至4G空闲态移动TAU流程解析
    本文详细解析了用户从5G网络移动到4G网络时,在空闲态下触发的跟踪区更新(TAU)流程。通过N26接口实现无缝迁移,确保用户体验不受影响。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 作为一名专业的Web前端工程师,掌握HTML和CSS的命名规范是至关重要的。良好的命名习惯不仅有助于提高代码的可读性和维护性,还能促进团队协作。本文将详细介绍Web前端开发中常用的HTML和CSS命名规范,并提供实用的建议。 ... [详细]
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
  • 科研单位信息系统中的DevOps实践与优化
    本文探讨了某科研单位通过引入云原生平台实现DevOps开发和运维一体化,显著提升了项目交付效率和产品质量。详细介绍了如何在实际项目中应用DevOps理念,解决了传统开发模式下的诸多痛点。 ... [详细]
  • 本文详细介绍了 Flink 和 YARN 的交互机制。YARN 是 Hadoop 生态系统中的资源管理组件,类似于 Spark on YARN 的配置方式。我们将基于官方文档,深入探讨如何在 YARN 上部署和运行 Flink 任务。 ... [详细]
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社区 版权所有