使用 Azure DevTest Lab 搭建云端开发测试环境

点击上方蓝字关注“汪宇杰博客”

640?wx_fmt=png

导语

程序员和测试工程师经常需要自己搭环境用于开发和测试目的,这些机器可能只会使用很短一段时间。通常我们会在本机使用 Hyper-V、VMWare 之类的虚拟机产品,或者使用企业IT管理员分配的虚拟机去完成这项工作。然而安装配置以及管理这些VM都很麻烦,好在目前许多厂家都有造福IT管理员的解决方案,微软Azure也给我们提供了一个DevTest Lab,假装帮助我们分分钟配环境,拒绝996,远离ICU。

Azure Lab Services

通过 Azure 实验室服务,可以快速在云中设置团队环境(例如,开发环境、测试环境、教室实验室环境)。 实验室所有者创建实验室、预配 Windows 或 Linux 虚拟机、安装必要的软件和工具,并将其提供给实验室用户使用。 实验室用户在实验室中连接到虚拟机 (VM),以便进行日常工作、短期项目或实验室练习。 用户开始利用实验室中的资源后,实验室管理员可分析多个实验室的成本和使用情况,并设置总体策略以优化组织或团队成本。

该服务目前包含两个独立的子服务:

  • 教室实验室 (Classroom Labs)

  • 开发测试实验室 (DevTest Labs)

我们今天要讲的是其中的 DevTest Labs,官网概述如下:

可使用 Azure 开发测试实验室来实现许多关键方案,但其中一个主要方案涉及使用开发测试实验室为开发人员托管开发计算机。 在此方案中,开发测试实验室具有以下优势:

  • 开发人员可快速按需预配其开发计算机。

  • 通过使用可重用模板和项目,预配 Windows 和 Linux 环境。

  • 开发人员可在任何需要的时候轻松自定义其开发计算机。

  • 管理员可以通过确保开发者无法获得超过开发所需的 VM,以及在未使用 VM 时将其关闭来控制成本。

创建 DevTest Lab

在 Azure Portal 里点击 Create a resource,搜索 DevTest,即可打开创建向导。

输入 Lab name,选择订阅、资源组、位置、是否自动关机、是否为公有环境(互联网访问)。

其中的 Resource group 要注意,它指的是该实验室本身的资源组,而不是实验室里的VM所使用的资源组。

640?wx_fmt=png

创建完成后,点击 Add 添加第一台虚拟机。

640?wx_fmt=png

搜索并选择你需要的操作系统镜像,这个列表里也包括了许多预配置的镜像,如SQL Server、AKS、各种Linux等等,甚至还可以找到 Windows 10 + Office 365。你也可以制作自己的镜像用于创建后续VM。

640?wx_fmt=png

输入虚拟机名称,管理员账号、密码,选择虚拟机大小以及磁盘配置。如果你用过普通的 Azure VM服务,会发现这个向导就是个极简版的Azure VM,省去了网卡、NSG、IP等众多高级配置。

640?wx_fmt=png


Artifact 的意思是预装的软件,比如我需要 7-zip 以及 Chrome,就可以在这个列表里找到,并勾选。当然,这个列表肯定不包含你自己或企业的专业软件,别担心,微软允许从三方库添加这些artifact(可以自行查阅方法,本文暂不讨论)

640?wx_fmt=png

在VM的高级设置中,除了传统的虚拟网络、子网、IP等信息,还多了过期时间、Claim 这两个选项。过期时间很好理解,管理员可以设置一个VM的使用期限,而 Claim 的含义是“认领”,即使用之前用户需要认领这台机器,才能开机使用。用完之后要取消认领,还给企业。

640?wx_fmt=png

等待虚拟机创建完成后,可以在 Labs Overview 里看见这台机器。

640?wx_fmt=png

和使用普通 Azure VM 非常类似,点击 Connect 即可使用 RDP 或 SSH 连接到虚拟机,然后你想怎么玩就怎么玩。

640?wx_fmt=png

如果你不喜欢默认分配的 DNS 名称也没关系,这个其实是可以改的!这台 VM 从普通的 Azure Virtual Machine 界面也能进去,进去以后就可以点击 DNS name 分配一个新域名。

640?wx_fmt=png

640?wx_fmt=png

配置定时自动开关机

Azure 的意思顾名思义是 A zone user rich enough,富人的玩具,我们苦逼程序员还是得省钱进ICU里花。因此我们可以设置定时开关机,让虚拟机只有 996 的工作时间才可用,回家睡觉时关机,这样 VM 就不会计费了。

进入 Configuration and policies

640?wx_fmt=png

Auto-start 里设置自动开机时间,选择中国时间早上9点,记得勾选星期六,以收取福报。

640?wx_fmt=png

同样,Auto-shutdown 里配置为晚上9点。当然,也可以配置成半夜12点,这样可以养生。

640?wx_fmt=png

现在,回到 VM 的设置里,就可以完成996定时设置了!云福报!

640?wx_fmt=png

分配用户

如果你的需求非常简单,用户不多,完全可以只靠RDP+管理员账号密码来分配使用权限。但是在正规的组织机构中,通常同步了 Azure AD,我们可以通过 Azure AD 来分配不同用户和角色使用或管理 Labs 里的机器。

由于我的Azure AD是个人使用,不方便模拟公司环境,此处摘录微软官网文档:

将用户添加到实验室用户角色

在左侧菜单中,选择“配置和策略”。

从菜单中选择“访问控制(IAM)”,并在工具栏中选择“+ 添加角色分配”。

640?wx_fmt=png

在“添加权限”页上,执行以下操作:

  • 在“角色”中,选择“开发测试实验室用户”。

  • 选择要添加的“用户”。

  • 选择“保存”。

640?wx_fmt=png

640?wx_fmt=gif

参考资料

https://docs.microsoft.com/en-us/azure/lab-services/lab-services-overview

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314279.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dotNET Core WebAPI 统一处理(返回值、参数验证、异常)

现在 Web 开发比较流行前后端分离现在 Web 开发比较流行前后端分离,我们的产品也是一样,前端使用Vue,后端使用 dotNet Core WebAPI ,在写 API 的过程中有很多地方需要统一处理文档参数验证返回值异常处理本文就说说 API 的统一处理…

.net测试篇之单元测试/集成测试神器Autofixture

autofixture简介有了单元测试框架加上Moq(后面我们会用单独章节来介绍moq),可以说测试问题基上都能搞定了.然而有了AutoFixture对单元测试来说可以说是如虎添翼,AutoFixture并且它能与moq,rhinomock等框架结合,对单元测试带来的便捷性,可维护性和扩展性更是难以言表,只有用用了…

DotNetCore 3.0 助力 WPF本地化

概览随着我们的应用程序越来越受欢迎,我们的下一步将要开发多语言功能。方便越来越多的国家使用我们中国的应用程序,基于 WPF 本地化,我们很多时候使用的是系统资源文件,可是动态切换本地化,就比较麻烦了。实现思路现在…

开源题材征集 + MVCEF Core 完整教程小结

到目前为止,我们的MVCEF Core 完整教程的理论部分就全部结束了,共20篇,覆盖了核心的主要知识点。下一阶段是实战部分,我们将会把这些知识点串联起来,用10篇(天)来完成一个开源项目。现向园友征集题材,你提需…

对微软的敌视何时休? 从一篇语言评论文章对C#的评价说起

看到一篇公众号文章《2020年什么编程语言最受欢迎,待遇最高?》,其中对C#的描述如下:点击阅读原文,看到这是一篇翻译文章:https://codinginfinite.com/top-programming-languages-2020-stats-surveys/这篇文…

ASP.NET Core on K8S深入学习(6)Health Check

本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。预计阅读时间为10分钟。01—关于K8S中的健康监测所谓Health Check,就是健康检查,即防微杜渐。K8S是一个编排引擎可以帮助我们快捷地部署容器集…

关于 .Net Core runtimeconfig 文件说明

项目的bin\debug\netcoreapp${Version}下面能够找到这个${AppName}.runtimeconfig.json文件,简单来说,它就是用来定义应用程序所用的共享框架(.Net Core App)以及运行时选项 的一个文件。一个简单的例子{ "runtimeOptions&q…

net core 3.0 之Grpc新特性小试牛刀

作者: 相信微服务大家伙都有听说和知道,好处弊端咱也不多说了,Grpc算是一个比较全面的微服务框架,也得到微软的支持总结下来就是,跨平台,可靠,通信快,扩展性强,网络消耗小…

CF1168D Anagram Paths(由必要到充分/虚树)

CF1168D Anagram Paths 对于这道题首先有一个关键的性质,那就是对于一个树,它是可重排的,当且仅当在树上任意一个节点,所有字母在相关联的字符串中出现次数最大值之和小于当前点到叶子的距离。这个性质可以通过归纳证明&#xff0…

基于Coravel定时任务之计算总页数

在物联网系统中,需要计算底端所有设备的总数,除以分页每页显示数量,进行一个总页数的显示。包括状态,告警,日志等等数据都需要对应的总页数的显示。2.1 TaskSchedulerTaskScheduler库只支持.net,且需要结合…

Docker系列之AspNetCore Runtime VS .NetCore Runtime VS SDK(四)

接下来我们就要慢慢步入在.NET Core中使用Docker的殿堂了,如题在开始之前,我们需要搞清楚一些概念,要不然看到官方提供如下一系列镜像,我们会一脸懵逼,不知道到底要使用哪一个。AspNetCore Runtime VS .NetCore Runti…

.NET Core跨平台部署于Docker(Centos)- 视频教程

.NET Core跨平台部署于Docker,Docker部署于Centos中,演示跨平台特性!以下视频教程,请带上耳机开始聆听往期教程:.NET开发框架(一)-框架介绍与视频演示.NET开发框架(二)-框架功能简述.NET开发框架(三)-高可用服务器端设计.NET开发框…

【清华集训2014】Sum)(类欧几里得算法)

【清华集训2014】Sum 然后本质上我们需要求解的就是那个带根号式子的奇偶性,然后我们发现这个式子很像是类欧几里得算法,求解一个斜率为无理数直线下的整点个数,然后我们直接对于一般形式求解,那么就是每次利用整数部分将斜率减小…

一本让我多花2倍时间读的书

这里是Z哥的个人公众号每周五11:45 按时送达当然了,也会时不时加个餐~我的第「87」篇原创敬上Hi,大家好,我是Z哥。熟悉我的小伙伴应该知道,我平时看书大多都很快,之前还把自己的速读技巧分享给了…

[NOI2005]月下柠檬树 (自适应辛普森)

P4207 [NOI2005]月下柠檬树 如图,我们要求的面积就是这些圆形跟梯形的组合,由于投射到地面上,显然有h′htanθh \frac{h}{tan \theta}h′tanθh​,由此我们就可以开始推导这个f(x)f(x)f(x)函数了。 所以转换为我们要推导出直线a…

Kong 1.3发布,原生gRPC代理、上游TLS交叉认证

Kong 1.3 发布了,此版本亮点包括支持原生 gRPC 代理、上游 TLS 交叉认证,以及一系列新功能和性能改进。原生 gRPC 代理越来越多的用户转向微服务架构,并且希望有对原生 gRPC 代理的支持,Kong 1.3 解决了这个问题,为支持…

对Windows桌面应用程序进行UI自动化测试

所谓UI自动化测试,就是模拟一个用户,对应用程序的UI进行操作,以完成特定场景的功能性集成测试。要对Windows桌面应用程序进行UI自动化测试,目前可选的技术主要是两种:VS自带的CodedUI Test和AppiumWinAppDriver。但是&…

项目实战中如何使用抽象类和接口

引子:时常会有这么一个疑惑,抽象类和接口功能好像,真正用起来该如何抉择呢??好问题。。来看看书上怎么说的(C#7.0本质论)虽然方法可在基类中声明为抽象成员,但是!&#x…

番茄日志发布1.0.3版本-增加Kafka支持

番茄日志(TomatoLog)能做什么可能你是第一次听说TomatoLog,没关系,我可以从头告诉你,通过了解番茄日志,希望能帮助有需要的朋友,番茄日志处理将大大降低你采集、分析、处理日志的过程。介绍Toma…

ArangoDB 3.5发布:流事务API、蒙面数据、搜索性能大幅提升、最短路径功能

ArangoDB 3.5 发布了。ArangoDB 是一个分布式原生的多模型数据库,具有灵活的文档、图形和键值数据模型。使用方便的 SQL 查询语言或 JavaScript 扩展构建高性能应用程序。此版本亮点包括:期待已久的 Streaming Transactions API,可以直接使用…