【把玩Azure DevOps】Day2 Azure DevOps介绍

DevOps是近几年很热门的关键字和技术,微软在这个部份自然也不会缺席,只是过往的产品名称并不是叫「Azure DevOps」,以前的产品名称叫「Team Foundation Server」,简称「TFS」,是微软ALM(Application Life Management)应用程序生命周期管理的其中一员。
现在把这个原本在地端的产品云端化,过程中曾经有个过渡期的名称叫「Visual Studio Team Services」,只是可能容易让人产生一些误会,毕竟Visual Studio在开发人员心中就是个IDE,那… 「Visual Studio Team Services」 是啥鬼?能吃吗?XD

Azure DevOps再区分更细一点就是分成云端版的Azure DevOps Services和地端版本的Azure DevOps Server,也就是订阅制和买断制的差别。

Azure DevOps的功能大项目主要分成下列五大项(各项简述取自官方介绍):

  1. Azure Boards:敏捷式规划工具
  2. Azure Repos:无限制的免费个人存放库
  3. Azure Pipelines:适用於任何平台的 CI/CD
  4. Azure TestPlans:手动与探勘测试
  5. Azure Artifacts:通用套件存放库

https://ithelp.ithome.com.tw/upload/images/20210914/20033961qF3GKX4KWh.png

使用微软的Azure DevOps是一个很好入门DevOps的工具,尤其对於使用微软开发工具和Azure云端服务的部份更是整合的很方便。

基本上只要一个微软的帐号(Microsoft Account)就可以使用了,如果是5人以下的小团队也都不需要额外收费,并且如果有微软的MSDN/Visual Studio订阅还能不计算在5个人的免费数量内(不扣5人额度),不管是小团队使用或是要作为初期评估都是一个不错的选择。

当然,以上指的是云端版的Azure DevOps Services,而且所谓的5个人免费并不是全部的项目都是无限制使用,概念上就是5个account license免费的意思。

下面就来看一下稍微详细一点的额度介绍:

https://ithelp.ithome.com.tw/upload/images/20210914/20033961fldkpHAtbq.png

在上图右边的「基本方案」中可以看到前5个使用者免费,之後每增加一个使用者每个月的月费是台币180元左右(这应该是美金计价换算後的结果),平均每天3块钱,大概跟一度电的电费差不多,实在是很便宜。(好东西,不买吗?)

在免费方案当中,除了Boards和Repos的数量/容量没有特别限制之外,作为CI/CD的Pipelines部份也提供了微软云端Agent每月1800分钟的执行时间,也就是透过Pipeline执行Build, Release(Deploy)所用的时间,用的是微软云端的机器。
当然,如果想要在自己的机器(机房)执行Agent也可以,免费方案中可以有1个自己host的Agent,对於要将Build完的成品发布到内网的机器是比较方便的选择。

这里有个稍微容易搞混的东西是Azure Artifacts,因为Pipelines执行完产生的档案也叫Artifacts,但是Azure Artifacts服务指的是Private的Nuget这里的套件库,提供2GB免费的空间,但是这并不会受到Pipelines执行完所放置的Artifacts大小影响,也就是说两者并没有直接相关,不会占用Azure Artifacts的空间额度。

当然,这个2GB和Repos版控空间也没有任何关系,不会因为版控太多档案就爆掉。

至於加上Test Plans服务的使用者月费就比较贵了,每个月需要1563台币左右,不过并不是加上Test Plans的功能就代表全部的使用者都需要被计算为每个月1563元,可以只针对需要Test Plans功能的使用者设定他的Access level为Basic+Test Plans即可,也就是负责测试的人才需要以比较高的费用计算。

看到这里,不熟悉的人可能又有些疑问了…执行个测试也要付比较高的月费?难不成我的Code要执行Unit Test就必须要多花钱吗?

事实上并不是这个样子的,执行Unit Test并不需要Test Plans的功能,不过这部份并不在预定的内容中,未来有机会再分享(其实从上图就可以稍微了解了喔)。

好啦,说再多倒不如之後的实际使用,所以这里只需要大概知道有哪些项目以及免费额度与计费金额大概是多少就够了,剩下的就让我们在之後的篇幅再相见吧!


<<:  [Day2]-基本的输出入

>>:  AE袅袅升起的烟(香菸)-Day13

DAY 29『 从相簿选取照片( 有裁剪照片功能 ) 』ImagePicker - Part1

昨天介绍完使用相机拍照,今天会分享如何从相簿选取照片 成品: 拉一个 Button 、 ImageV...

Day 26 - Divide and Conquer & Dynamic Programming

大家好,我是长风青云。今天是铁人赛的26天。其实有点讶异。 不过我觉得我的演算法篇,应该大家会听不懂...

Extra01 - glob - 配置目标档案与目录

此为番外,此篇选入番外的原因是 glob 并不是个工具,但是是个会常被各种工具采用的一种配置方式。...

day9: CSS style 规划 - CSS in JS(emotion 使用 - 3)

使用 styled 方式 这个方式其实是 emotion 参考 styled-component,...

[Day8] 注册API – migrate

昨天我们说明了关於Field,今天我们要来说明的是migrate,这个部分是在每次我们在设定mode...