[转贴]infoQ VSTS被拆成5个部分,以Azure DevOps服务形式推出
VSTS被拆成5个部分,以Azure DevOps服务形式推出
http://www.infoq.com/cn/news/2018/09/vsts-divide5parts-azuredevops?utm_source=news_about_Devops&utm_medium=link&utm_campaign=Devops
9月10日,微软官方博客宣布推出Azure DevOps服务。Azure DevOps是对微软的应用程序生命周期管理系统Visual Studio Team Services(VSTS)进行的重大改组和品牌重塑,此后VSTS将不再是单一的Visual Studio品牌服务,而是被分成五个独立的Azure服务,包含在Azure DevOps服务之中。这五个单独的服务分别是:
- Azure Pipelines:用于持续构建、测试和部署到任何云平台。
- Azure Boards:可进行工作管理。
- Azure Artifacts:适用于Maven、npm和NuGet。
- Azure Repos:提供无限制的云托管私有Git存储库。
- Azure Test Plans:用于计划和探索性测试。
在Azure的文档、网站和产品中,用户将会看到全新的Azure DevOps图标和名称,以及Azure DevOps提供的每项服务。
随着Azure Pipelines的推出,微软向GitHub Marketplace推出了一个新应用程序,为开源项目提供无限制的CI/CD时间和10个并行作业。
点击链接(https://docs.microsoft.com/en-au/azure/devops/release-notes/2018/sep-10-azure-devops-launch#features)查看更多的特性。
新特性一览
以下功能将在接下来几天推出。
Azure Pipelines
从GitHub Marketplace添加Azure Pipelines
GitHub Marketplace中提供的最新Azure Pipelines应用程序扩展了与GitHub存储库的集成,并简化了并行作业的购买。
以前,用户可以通过OAuth认证启用与GitHub存储库的持续集成。在使用OAuth时,Azure Pipelines通过个人的GitHub标识来获取代码并更新GitHub上的构建状态。但是,由于团队成员可能会发生人员变动,使用个人的GitHub身份和权限并不是一个很好的办法。通过安装Azure Pipelines应用程序,用户可以授权它来执行操作。
另外,如果使用了这个应用程序,就可以在GitHub的Checks页面看到构建结果,其中包含构建、测试和代码覆盖率的详细信息。
要使用这个功能,需要从GitHub Marketplace中安装这个应用程序。用户可以使用现有的GitHub支付帐户而不是Azure帐户来购买其他并行作业,价格是一样的。
使用Azure Pipelines免费构建开源项目
Azure Pipelines提供了Linux、macOS和Windows的云托管管道,开源项目可以享受无时间限制和10个免费的并行作业。
使用YAML配置构建
基于YAML的构建管道现在普遍可用,用户可以使用与其他代码存放在一起的YAML文件来自动执行持续集成管道。单个作业的构建变得相当容易。随着需求的增长,可以使用multiple
jobs、external templates和matrix execution来扩展到更多作业。
使用新向导创建YAML构建管道
新的向导简化了使用GitHub和Azure Repos创建基于YAML的构建管道的过程。在选择了要构建的存储库后,如果其中包含了YAML文件,就会自动创建管道。否则,Azure Pipelines将分析存储库,并推荐一个YAML模板用来构建项目。用户只需单击“保存并运行”即可为建议的YAML创建拉取请求,并进行第一个构建。持续集成和拉取请求触发器将自动被启用。
使用新的Builds页面管理构建管道
微软正在做一些改进,并推出新版本的Builds页面。新版本将所有构建管道目录和当前构建列表结合在一起,用户可以快速浏览项目构建以查看它们的状态。它还提供了管道的测试分析预览信息。
重新启动GitHub拉取请求构建
当用户向GitHub存储库提交拉取请求时,拉取请求构建可能会因间歇性故障(例如包注册表不可用或其他测试所导致)而失败。在这些情况下,用户可能希望再次运行构建。之前,用户需要推送另一个拉取请求更新,而现在,在新的Builds页面,只需选择失败的构建,并向构建队列中添加一个新的构建请求。
这种方式仅适用于拉开请求构建,微软正在考虑为所有失败的构建提供类似的功能。
新的构建状态badge URL
嵌入在存储库主页的构建badge是显示存储库健康状态的常用方法。微软添加了新的URL来帮助用户创建badge。新URL允许用户发布分支状态,并可以让用户浏览所选分支的最新版本。用户可以通过新Builds页面上的Status badge菜单来获取新的状态URL的Markdown代码。为了向后兼容,将继续支持旧的URL。
在微软托管的Linux代理上可以使用更多工具
在新版本中,微软托管的Linux代理添加了多个构建、测试和部署工具(具体如下),用户无需在构建或发布期间自行安装它们。
- Erlang/OTP
- Firefox
- Haskell
- Heroku CLI
- ImageMagick
- Mercurial
- Microsoft SQL Server Client Tools
- MySQL Server
- PhantomJS
- Pollinate
- PyPy2 and PyPy3
- rebar
- rsync
- ShellCheck
- Sphinx
- Terraform
- Xvfb
跟踪GitHub的代码提交和相关问题
现在,用户可以获取与某个发布版本相关的代码提交清单和问题。
使用改进的格式更好地管理构建和部署电子邮件通知
更新过的构建和部署电子邮件通知可以通过电子邮件规则进行过滤。现在,邮件主题中包含更多相关信息,正文也包含更多细节和最新的风格。
新格式的元素:
[Build result] [pipeline name] - [repository:branch] - [project name] - [commit]
[Deployment result] [pipeline name] > [release name] : [stage name]
一些例子:
[Build succeeded] IdentityService.CI - MyRepo:master - MyProject - d3b90b80
[Deployment succeeded] New release pipeline > NotificationSpecialRelease-1 : Stage 1
遵循统一的Azure Pipelines术语
因为历史原因,在构建和发布过程中,相似的概念可能会使用不同的术语。在其他某些情况下,有些术语的含义模棱两可。例如,agent pool(代理池)和agent queue(代理队列)之间的区别就难说清楚。
术语在Azure Pipelines中得到了统一,以便更清晰地阐明相关概念。
更多信息,请参阅Concepts文档(https://docs.microsoft.com/en-us/azure/devops/pipelines/?view=vsts#concepts)。
Marketplace
新的扩展类别
Marketplace中的扩展类别已经过调整,以便与重命名的Azure DevOps服务保持一致。虽然之前的类别已自动映射到新类别,用户最好还是更新一下自己的manifest,以便切换到新类别。更多信息请参阅Manifest文档(https://docs.microsoft.com/en-us/azure/devops/extend/develop/manifest?view=vsts#required-attributes)。
Administration
现有组织可以使用新域名URL
新的域名是dev.azure.com,不过用户仍然可以像往常一样继续使用visualstudio.com。如果想要将URL更改为dev.azure.com,可以让组织管理员(Project Collection Administrator)在组织设置页面做出更改。虽然采用新域名并不会重定向每个请求,但任何发给root URL的请求以及电子邮件中的链接和Web链接都将发生变化。
微软将根据客户反馈逐步迁移到新URL。先是将它作为可选项,后续会将它作为组织的默认选项。不过让组织弃用visualstudio.com的具体时间表还没有确定。
添加利益相关者用户,以节省Azure Pipelines许可成本
如果只使用Azure Pipelines服务,在基本许可之外无需为其他用户付费。所有用户都可以免费使用Azure Pipelines的所有功能。在向项目中添加更多用户时,可以将他们视为利益相关者,他们可以创建、查看、更新和批准构建管道,只要给他们分配适当的权限。以下是有关该许可变更的一些附加说明:
- 用户只需为Azure Pipelines的其他并行作业付费。用户数没有限制。
- 所有对Azure Pipelines功能的访问仍受安全和权限模型的监管。
- 如果用户要使用其他Azure DevOps服务,必须在免费限制之后为这些服务支付许可费用。
- 在现有组织中,利益相关者默认情况下不会获得免费的Azure Pipelines权限。组织管理员必须启用这个预览版功能,这样利益相关者就可以执行相关操作。目前,他们无法管理构建或发布。但是,一旦启用了这个预览版功能,Azure Pipelines的基本用户和利益相关者之间就没有权限差别。所以,是否允许利益相关者成为免费的Azure Pipelines用户是由组织管理员决定的。
反馈
用户可以使用反馈菜单报告问题或提供建议。
VSTS已经以这种方式被分拆,以进一步促进微软的雄心壮志,使其开发者工具对任何开发流程中都可用,不管开发者使用何种语言或平台。将VSTS划分为单个组件能使开发人员更容易采用Azure DevOps平台的一部分,而不需要全部的VSTS。每个组件的范围缩小意味着它比VSTS定价便宜,使得逐步采用更合适。例如,Pipelines流程可以从GitHub存储库构建和测试Node.js服务,然后部署到Amazon AWS云上的容器,而无需使用任何其他Azure DevOps组件。
查看英文原文:
[转贴]infoQ VSTS被拆成5个部分,以Azure DevOps服务形式推出的更多相关文章
- 微软改名部又出动啦!微软宣布VSTS改名为Azure DevOps
本篇为翻译,原文地址:https://azure.microsoft.com/en-us/blog/introducing-azure-devops/ 作者:Jamie Cool,Azure DevO ...
- VSTS 更名为 Azure DevOps
微软正式对外宣布Azure DevOps,其实就是原来的VSTS,我们来看一下Azure DevOps的介绍: 今天我们宣布Azure DevOps.与世界各地的客户和开发人员合作,很明显,DevOp ...
- lintcode 453 将二叉树拆成链表
将二叉树拆成链表 描述 笔记 数据 评测 将一棵二叉树按照前序遍历拆解成为一个假链表.所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针. 注意事项 不要忘记将左儿子标 ...
- java实现将包含多个<REC>的文件拆成若干只包含一个<REC>的文件
遍历文件夹里的文件,将包含多个<REC>的文件拆成若干只包含一个<REC>的文件 package com.prepub; import java.io.BufferedRead ...
- ACM-ICPC 2018 南京赛区网络预赛 J sum (找一个数拆成两个无平方因子的组合数)
题目大意:就是找一个数拆成两个无平方因子的组合数,然后求个前缀和 ; 分析:运用筛法的思想 , 因为有序对是由两个合法的数字组成的,所以只要保证第一个数合法,第二个数也合法就行,找出合法的第二个数 ...
- Sql将逗号分隔的字符串分拆成表格的方法
--拆分的方法有很多,临时表.SUBSTRING ...但都不如XML来得清凉爽快 ) set @tempstr='54,57,55,56,59' declare @Xmlstr xml set @X ...
- sqlserver中利用Tran_sql把逗号分隔的字符串拆成临时表
在与数据库交互的过程中,我们经常需要把一串ID组成的字符串当作参数传给存储过程获取数据.很多时候我们希望把这个字符串转成集合以方便用于in操作. 有两种方式可以方便地把这个以某种符号分隔的ID字符串转 ...
- lintcode:将二叉树拆成链表
题目 将一棵二叉树按照前序遍历拆解成为一个假链表.所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针. 注意事项 不要忘记将左儿子标记为 null,否则你可能会得到空间溢出 ...
- 一个正整数N,拆成任意个正整数之和,怎样使这些数的乘积最大
网上看到了如标题所示的题目,就开始想如果用程序来算的话,那么它的算法是怎样的. 自己想了半天,第一感觉要用递归, 如先算出 当 n=1 max=1 当 n=2 max=1 当 n=3 max=2 .. ...
随机推荐
- 【转载】用纯粹的C++编写COM组件
原文:http://blog.csdn.net/ghj1976/article/details/3441 下载本文代码 本文提供一个完全用C++实现的进程内(DLL)COM服务器,不要ATL或MFC提 ...
- CodeForces 593D Happy Tree Party [LCA+并查集]
题意:给一棵树,每条边有一个权值,给两种操作,第一种是询问y向下整除从a到b的最短路径中每条边的权值后y的值,第二种是改变某条边的权值. 思路:y的最大值为1e18,最多除大于等于2的数不超过60次即 ...
- Restful和WeBAPI学习笔记
1.restful是基于无状态的,所谓无状态就是说客户端和服务端的每次通话都是独立的,不存在session和cookie之类的保存状态的机制,基于该协议可实现简单的curd操作, 其操作分为get\p ...
- Async方法死锁的问题 Don't Block on Async Code(转)
今天调试requet.GetRequestStreamAsync异步方法出现不返回的问题,可能是死锁了.看到老外一篇文章解释了异步方法死锁的问题,懒的翻译,直接搬过来了. http://blog.st ...
- JavaScript——历史与简介
上一篇博文距离现在已经四个月了,一直想写些什么无奈工作比较忙碌.我的恩师老王在毕业聚餐那天带着一声酒气告诉我一定要把博客坚持写下去,所以今天下决心要开始这个新的篇章. 之所以想要从头写一个关于Java ...
- Jmeter接口测试(七)用例数据分离
之前我们的用例数据都是配置在 Jmeter Http 请求中,每次需要增加,修改用例都需要打开 jmeter 重新编辑,当用例越来越多的时候,用例维护起来就越来越麻烦,有没有好的方法来解决这种情况呢? ...
- shentou mianshiti
给你一个网站你是如何来渗透测试的? 在获取书面授权的前提下.1)信息收集,1,获取域名的whois信息,获取注册者邮箱姓名电话等.2,查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有 ...
- 《Redis设计与实现》阅读笔记(一)--Redis学习
Redis学习资料与过程记录 在实习中经常会用到很多Redis,对Redis有了一些模糊的了解,总觉得隔靴搔痒的不痛快,所以决定开始深入的了解Redis,也作为我实习期间的目标. 这篇只是为了占个位置 ...
- PLSQL函数,存储过程
--创建一个函数,用来根据部门编号返回调薪幅度 create or replace function get_ratio_by_dept(deptno varchar2) return number ...
- Vue+webpack项目中,运行报错Cannot find module 'chalk'的处理
刚开始用vue + webpack新建项目,在github上下载了一个示例,输入npm init >>>npm run dev 后报错 Cannot find module 'cha ...