当前位置: 新豪天地登录网址 > www.3559.com > 正文

TFS搭建基于容器的持续交付管道,Windows上卓越的

时间:2019-10-10 10:14来源:www.3559.com
PingWest品玩9月11日讯,根据Venture Beat报道,微软今天宣布推出AzureDevOps,它是Visual Studio TeamServices的继任者,以帮助开发人员更快地交付软件并提供更高质量的软件。AzureDevOps对于开源项

PingWest品玩9月11日讯,根据Venture Beat报道,微软今天宣布推出Azure DevOps,它是Visual Studio Team Services的继任者,以帮助开发人员更快地交付软件并提供更高质量的软件。Azure DevOps对于开源项目和小项目(最多五个用户)是免费的。对于大型团队,费用从每月30美元(10个用户)到每月6,150美元(1,000个用户)。

Windows上卓越的DevOps最新工具(一)

导读毫无疑问,没有自动化机制的配合,DevOps将无从谈起。虽然不同企业实现DevOps的实际流程大相径庭,但基本分歧点往往始于操作系统。各类DevOps工具在Windows与Linux上的表现区别明显,特别是在可用选项方面。

www.3559.com 1

因此,在今天的文章中,我们将着眼于Windows阵营下的核心DevOps工具,希望能够帮助大家立足这一主流平台快速拥抱DevOps。

一、代码IDE

DevOps自动化并非通过GUI管理环境实现;代码才是实现自动化的核心所在。开发者与DevOps工程师需要一套能够轻松编辑自动化脚本并支持所熟悉语言的开发环境,而这正是IDE的最大价值所在。

1.Visual Studio

Visual Studio是Windows平台上的编码王者,且它的影响力正逐步延伸至其他平台。Visual Studio原生支持C、C 、VB.Net、C#以及F#。其他更多语言则可通过对应语言服务得到支持。

Visual Studio价格昂贵,如果单独购买价格在500美元到1200美元之间。它提供广泛的服务集成点,包括Azure、AWS以及Hyper-V等等,这一切对DevOps工程师来说相当重要。不过,Visual Studio是一款非常复杂的产品,因此IDE只是它功能的一部分。对于很多专业DevOps人员而言,这种复杂性可能会带来干扰。

2.Visual Studio Code

Visual Studio Code是一款出色的IDE。它相较于Visual Studio拥有轻量化且简单等优势,同时支持数十种主流语言。Visual Studio Code适用于MacOS、Windows以及Linux等平台,提供大量Visual Studio既有功能,包括插件支持、剪切以及源控制集成等。

Visual Studio Code为免费开源方案,这意味着团队能够随时将其纳入产品开发流程。

由于Visual Studio Code是一款新型IDE方案,因此其中可能缺少某些大家习以为常的成熟IDE特性。不过该项目仍在快速发展,且更新速度极快。如果大家需要一款直奔主题的轻量化、跨平台IDE,那么Visual Studio Code绝对是个理想的选项。

3.Sapien的PowerShell Studio

在Windows与DevOps领域,我们永远无法回避一个关键词——PowerShell。PowerShell存在于任何一款新型Windows操作系统当中,且在Windows DevOps领域拥有不可替代的地位。因此,很多朋友希望能够拥有一款纯PowerShell型IDE。

Sapien推出的PowerShell Studio正是一款单纯面向Windows的成熟IDE。它可作为面向PowerShell开发者的Visual Studio。通过丰富的功能集与对PowerShell的高度关注,这套IDE方案显然吃透了PowerShell语言的特性以及相关开发者的实际需求。不过遗憾的是,它并不提供Visual Studio Code这样的免费产品。大家需要花上几百美元才能加以使用。

虽然成本不菲,但如果您所在的企业正在广泛利用PowerShell处理各类DevOps任务,同时需要一套成熟且经过时间检验的IDE,那么Sapien的PowerShell Studio绝对是最理想的选择——没有之一。

二、源码控制

在敏捷环境当中,代码的变更可谓相当频繁,且必须被快速交付至客户手中。这些变更必须由一套中央存储库或者源码控制机制进行捕捉,从而审查相关变更并在出现问题后及时进行代码回滚。随着您所在的企业逐步深入DevOps提出的基础设施即代码原则,源码控制将成为实现目标的关键所在。

1.微软Team Foundation Server (简称TFS)。

TFS是微软公司提供的DevOps解决方案,核心功能之一正是源码控制。TFS的源码控制机制能够与Visual Studio实现紧密结合。尽管在技术层面上并非必需,但仍然建议大家将TFS与Visual Studio配合使用。除了强大的专有源码管理库之外,TFS目前还支持使用Git存储库,这意味着技术团队也能够利用Git实现代码变更协作。

微软还将TFS发布在云端。它的云版本定名为Visual Studio Team Services(简称VSTS),这项云解决方案似乎已经成为微软公司的当前工作重心。VSTS目前仅提供云版本,但已经有计划稍后推出内部运行版本。VSTS可免费支持5名用户,如果需要支持更多用户则需要支付费用。

为了能够与其他现有微软产品及技术紧密集成,将管理Windows服务作为核心诉求的企业在推进DevOps工作时应当考虑选择TFS——这不仅是为了利用它的源码控制功能,更是为了实现工作项目追踪并发挥其构建与发布管理功能。

2.Git/GitHub

Git是目前最受欢迎的源码控制存储库选项之一。作为一套独立的存储库方案,GitHub对Git的服务进行了广泛扩展,允许用户立足于分布式环境实现彼此间的顺畅协作。

Git与GitHub提供Windows版本客户端,且各项服务都可在此平台上实现良好运作。大家甚至能够利用开源Posh-Git项目实现PowerShell对Git的支持。

www.3559.com,Git可供大家免费下载与使用。GitHub的公共库不收取费用,但大家可以根据实际需求使用专有库或者企业版等付费方案。

到这里,我们已经探讨了Windows阵营中DevOps领域的IDE与源码控制领域的相关工具选项。在本系列的下一篇文章中,我们将继续讨论,且主要着眼于构建与发布、配置管理以及测试框架三个方面。


原文来自:

本文地址:

导读 毫无疑问,没有自动化机制的配合,DevOps将无从谈起。虽然不同企业实现DevOps的实际流程大相径庭...

Visual Studio Team Services/Team Foundation Server

VSTS/TFS是微软Visual Studio产品组提供给广大开发者的全生命周期管理平台,Visual Studio Team Service (VSTS)是构建在微软公有云Azure平台上的Saas架构的开发平台,为中小团队和跨地域的大型团队提供软件开发过程的端到端管理能力,这个平台对于5名以下开发团队的小团队完全免费(同时可以有任意数量的管理人员参与,VSTS通过区分stakeholder和developer两种角色,为stakeholder这些只需要管理过程而无需修改代码的管理人员提供了完全免费的访问许可)。Team Foundation Server是VSTS的企业版,可以由企业独立部署于私有云或者数据中心中,并提供与VSTS一致的功能体验。

关于VSTS和TFS的功能介绍,请参考本博客或者公众号中的相关文章,链接如下:

基于容器的CI/CD

容器技术所解决的主要问题是环境的一致性和同一版本的应用在不同的环境中的迁移问题,虽然对单个开发人员也提供了更高效的开发模式,但容器的作用在团队开发中和管理开发/测试/预生产/生产环境中会体现得更有价值。从事软件开发的技术人员都知道,在开发过程中保持不同开发人员/测试人员使用统一的环境是一件非常困难的事情,很多过程中的问题都是环境不一致造成的。容器正是解决这一问题的有效方式。

为了能够构建基于容器的CI/CD,我们需要以下工具链:

www.3559.com 2

下图展示了以上工具链的关系和工作流程

www.3559.com 3

下图中可以看到,要构建完整的发布工具,我们需要一个多级技术栈,Docker的容器化工具降低了最底层环境和应用技术栈的复杂度,让我们的发布过程变得更简单。

www.3559.com 4

下面我们就来看一下如何配置这样一套基于容器的CI/CD环境

1. 创建容器化主机作为开发/测试/生产环境

关于如何在开发环境中创建容器化主机支持编码和调试,请参考

#1 前世今生 & 世界你好

关于如何在云环境中创建容器化主机支持测试和生产环境,请参考

#2 容器化主机

2. 在Linux服务器上配置TFS构建代理

关于如何配置Linux服务器上的构建代理,请参考

用VSTS/TFS搭建iOS持续集成环境

3. 将容器化主机连接到TFS

进入TFS后台,点击 服务 | 新建服务终结点 |Dcoker Host

www.3559.com 5

将 容器化主机的 url,和~/.docker/machine/machines/{machine-name} 目录下的pem的文件内容按照以下关系拷贝到配置页面中。

www.3559.com 6

重复以上过程,分别绑定用户测试和生产环境的容器化主机配置,创建以下docker host终结点

○ Dockerhost-test
○ Dockerhost-pro

4. 将docker hub账号连接到TFS

进入TFS后台,点击 服务 | 新建服务终结点 | Docker Registry

www.3559.com 7

填写你的docker hub用户名,密码和邮件地址;如果使用私有的registry,请更新Docker Regsitry地址。

www.3559.com 8

5. 配置CI定义

创建生成定义,并将默认代理队列指向对应在Linux服务器上构建代理队列

www.3559.com 9

在 生成 步骤中分别添加以下构建任务

www.3559.com 10

具体为
a. dotnet restore
b. dotnet build
c. dotnet publish
d. docker build
e. docker push

以下为docker build步骤的详细配置,注意这里我们使用$(Build.BuildNumber)这个环境变量作为容器镜像的tag,这样我们就可以使用统一的构建号来管理容器镜像的不同版本。

www.3559.com 11

以下是docker push的详细配置,此步骤将把构建好的容器上传到docker hub并使用$(Build.BuildNumber)作为版本号tag。

www.3559.com 12

6. 创建CD发布管道

创建以下发布管道配置,分别指定测试环境和生产创建的部署步骤

www.3559.com 13

在每一个环境中,我们都执行以下步骤
○ Stop running container
○ Remove container
○ Run container

测试环境和生产环境分别使用不同的容器化主机连接(在第1-2步中创建的连接)。

7. 配置测试环境到生产环境的升级策略

以下配置要求生产环境的部署只有在测试环境部署成功的情况下才能执行

www.3559.com 14

以下配置要求生产环境的部署必须由特定的用户进行审批通过后才能执行

www.3559.com 15

至此,我们就完成了基于容器的CI/CD发布管道配置。


 

请关注微信公众号 【devopshub】,获取更多关于DevOps研发运维一体化的信息

www.3559.com 16

据了解,Visual Studio Team Services是微软部署在Azure上的一个服务,简称VSTS。VSTS是一种微软提供的程序开发管理云服务,帮助我们快速规划、管理和跟踪整个团队的工作。返回搜狐,查看更多

在过去的几篇d4d系列中,我给大家介绍了如何使用docker来支持asp.net core的应用开发,打包的场景。Asp.net core的跨平台开发能力为.net开发人员提供了使用容器进行应用开发的能力,今天这篇文章将对如何使用微软的全生命周期管理平台VSTS/TFS来构建基于容器的CI/CD管道来支持团队开发的场景。

责任编辑:

#1 前世今生 & 世界你好
#2 容器化主机
#3 在macOS上使用Visual Studio Code和Docker开发asp.net core和mysql应用
#4 使用Azure云存储构建高速 Docker registry

原标题:微软推出应用开发管理云服务Azure DevOps

编辑:www.3559.com 本文来源:TFS搭建基于容器的持续交付管道,Windows上卓越的

关键词: www.3559.com