在本系列教程中,笔者但愿将必要的知识点围绕理论、流程(工做流程)、方法、实践来进行讲解,而不是单纯的为讲解知识点而进行讲解。也就是说,笔者但愿可以让你们将理论、知识、思想和指导应用到工做的实际场景和实践之中,而不是拿着字典写文章,抱着宝典写代码。至于不少具体的语法、技术细节,除了经常使用的知识点,笔者更但愿你们阅读官方文档——毕竟看官网比看书靠谱多了,官网会一直更新和改进,而书和教程自出版或发布以后,基本上就“死“了。html
本系列教程预计所有完成还须要2到3个月的时间。在这个过程当中,您能够加入咱们一块儿讨论、交流和分享这一块的技术。咱们也但愿获得你们的支持,请多多点赞,大家的支持是咱们前进的最大动力!git
Azure DevOps,之前叫VSTS,如今被微软更名部正式改名为Azure DevOps,说明微软云为先之心仍然蠢蠢欲动。不过和VSTS同样,微软都提供了免费的使用额度,对于小团队和我的开发者来讲,彻底是足够了。docker
DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协做与整合。它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合做的文化、运动或惯例。透过自动化“软件交付”和“架构变动”的流程,来使得构建、测试、发布软件可以更加地快捷、频繁和可靠。它的出现是因为软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工做必须紧密合做。安全
DevOps的引入能对产品交付、测试、功能开发和维护(包括──曾经罕见但现在已家常便饭的──“热补丁”)起到意义深远的影响。在缺少DevOps能力的组织中,开发与运营之间存在着信息“鸿沟”──例如运营人员要求更好的可靠性和安全性,开发人员则但愿基础设施响应更快,而业务用户的需求则是更快地将更多的特性发布给最终用户使用。这种信息鸿沟就是最常出问题的地方。网络
DevOps常常被描述为“开发团队与运营团队之间更具协做性、更高效的关系”。因为团队间协做关系的改善,整个组织的效率所以获得提高,伴随频繁变化而来的生产环境的风险也能获得下降。架构
总之,经过DevOps,各专业团队之间的协调和协做获得改善,缩短了将更改提交到系统与将更改投入到生产之间的时间。它还可确保此过程符合安全性和可靠性标准。结果:产品质量改善、交付速度加快、客户满意度提高。框架
在不少企业中,应用程序发布是一项涉及多个团队、压力很大、风险很高的活动。然而在具有DevOps能力的组织中,应用程序发布的风险很低,缘由以下:运维
与传统的瀑布式开发模型相比,采用敏捷或迭代式开发意味着更频繁的发布、每次发布包含的变化更少。因为部署常常进行,所以每次部署不会对生产系统形成巨大影响,应用程序会以平滑的速率逐渐生长。工具
靠强有力的发布协调人来弥合开发与运营之间的技能鸿沟和沟通鸿沟;采用电子数据表、电话会议、即时消息、企业门户(wiki、sharepoint)等协做工具来确保全部相关人员理解变动的内容并全力合做。post
强大的部署自动化手段确保部署任务的可重复性、减小部署出错的可能性。
与传统开发方法那种大规模的、不频繁的发布(一般以“季度”或“年”为单位)相比,敏捷方法大大提高了发布频率(一般以“天”或“周”为单位)。减小变动范围与传统的瀑布式开发模型相比,采用敏捷或迭代式开发意味着更频繁的发布、每次发布包含的变化更少。因为部署常常进行,所以每次部署不会对生产系统形成巨大影响,应用程序会以平滑的速率逐渐生长。增强发布协调靠强有力的发布协调人来弥合开发与运营之间的技能鸿沟和沟通鸿沟;采用电子数据表、电话会议、即时消息、企业门户(wiki、sharepoint)等协做工具来确保全部相关人员理解变动的内容并全力合做。强大的自动化部署手段可以确保部署任务的可重复性、减小部署出错的可能性。
使用容器,可轻松地持续生成和部署应用程序。
Azure DevOps 能够经过设置持续版本以生成容器映像和业务流程,让咱们能更快、更可靠地进行部署。如下是一个适用于容器和Azure的CI/CD 流程:
步骤说明:
Azure DevOps服务涵盖了整个开发生命周期,可帮助开发人员更快地高质量地交付软件,其提供了Azure Pipelines、Azure Boards、Azure Artifacts、Azure Repos和Azure Test Plans。关于Azure DevOps咱们就介绍到这里,毕竟是免费介绍。
如今,咱们须要侧重介绍的是Pipelines,也就是代码流水线。看,多形象,因此之前自夸为码农是错误的,咱们应该是码工,广大流水线工人的一环,无产阶级之一,共产主义接班人。很差意思,又偏题了,咱们继续:
首先,咱们须要定义一个流水线,为了便于演示,我这里就定义一些针对Docker的简单步骤,你们能够按需添加步骤,好比单元测试步骤等等。
如图所示,步骤很简单,首先设置代码源,这里咱们直接对接Magicodes.Admin框架的git库地址。Git库地址你们能够在这里找到:https://gitee.com/xl_wenqiang/Magicodes.Admin.Core。
由于代码是托管再码云,因此咱们选择如上图所示的最后一种方式,而且选择对应的分支。
接下来,咱们须要添加job和task。job添加一个默认的便可,无需设置什么条件和参数。接下来咱们添加task,实际上就是步骤。
第一步,构建镜像。
咱们须要添加一个docker task:
而后设置command命令为build,也就是构建:
构建配置咱们能够根据本身的需求来设置,好比根据分支设置镜像版本等等。
第二步,登陆腾讯云镜像仓库而且推送。
这一步,就有点门槛了,原生的docker命令并很差使,由于task之间的上下文是断开的,也就是login了你也无法push。这时候,仍是命令行靠谱,简单粗暴。因此咱们须要添加一个Command line task:
而后编写命令脚本:
简单粗暴的两个步骤就搞定了,你们能够根据本身的持续集成流程来定制,毕竟微软在开发者服务这块淫荡多年,仍是至关给力的。咱们能够初步看看支持的task:
很是之多,足够咱们随便玩了。并且玩坏了还不用赔钱。
接下来,跑起来:
点开还能看到详细的过程:
激不激动,简单不简单?就这么几下就搞定了。产品很强大,就是拉取代码有点慢,看起来是托管在国外。顺手一查,额,美国:
所以,咱们不是很推荐使用Azure DevOps来完成CI,网络的延迟足够拖垮咱们焦虑的神经。可是若是咱们的代码托管在Github,那么使用Azure DevOps是不错的选择。在接下来的教程中,咱们会讲解如何打造本身的Github开源库的CI流程——不只彻底自动化,并且还支持在readme页面添加各类动态图标。