Hi!咱们是DevSecOps研发平安经营解决方案提供商、Atlassian寰球白金合作伙伴——龙智。在过来的十多年间,传统软件研发模式发生巨变,从瀑布式开发到麻利再到DevOps,开发和运维之间已经明确的界线正在缓缓变得含糊。
DevOps因为可能促成开发、运维、测试等不同部门的沟通、合作与整合,正在悄悄成为软件研发经营支流趋势。倒退至今,DevOps也联合了新的流程,比方继续集成和继续部署来疾速交付价值。
如果您对DevOps还知之甚少,或是想要更深刻地理解DevOps工具链,请不要错过本系列文章。龙智将从DevOps的概念、DevOps工具链、CI及工具比照、DevOps监控、DevSecOps五个方面动手,让您从起源开始,逐渐深刻理解DevOps这个已风行数十年的方法论。
撑持CI的根底
CI(Continuous integration继续集成,下⽂均简称为CI)建⽴在麻利和DevOps软件开发最佳实际之上,其通过Pipeline实现⾃动化测试、版本控制、⾃动化构建和⾃动化部署。撑持CI的每⼀个根底都有着⾃⼰的⼯具和理念⽣态零碎。软件开发⼯具提供商曾经开始提供残缺的CI即服务(CI-as-a-service)产品,这些产品将撑持CI的根底都捆绑到⼀个整体的包中。为了让您更好地了解捆绑产品,让咱们回顾⼀下CI的根底。
源代码管制版本治理
CI最重要的根底是Pipeline,它从获取源代码到实现部署,连贯并治理着版本控制系统,测试管理系统,编译构建零碎等诸多不同⽬的的⼯具,⽤于沟通和解决在同⼀代码库中⼯作的多个开发⼈员之间的编辑抵触。各种各样的⼯具都提供了源代码版本与配置管理性能,其中,最风行的有Perforce Helix Core、Git和Subversion。CI即服务产品是以版本控制系统为核心的。
Subversion作为第⼆代版本控制管理系统,其采⽤的尽管是集中式的版本治理,且仅具备根本合并性能,但其通过元数据管理版本的⽅式相当易于了解和治理,作为⼀名⽼将,⾄今仍沉闷在泛滥较为小型的开发项⽬当中。
Git是典型的第三代分布式版本控制管理系统,它具备所有DVCS的长处,让您能够随时随地提交您的构想与实际。其灵活多样的分⽀策略是泛滥不同规模开发团队采⽤它的重要起因,但当许多开发人员同时应用Git时,性能和生产效率会降落。
Perforce Helix Core是⼀款⾼效灵便的版本控制软件,它具备集中式或分布式等多种部署样态,可治理大型且简单的二进制文件。其强⼤的压缩传输与⽂件级别的超细颗粒度权限治理,能给企业带来平安,疾速的使⽤体验。
自动化测试
大多数软件我的项目都蕴含一个额定的代码库,此代码库并不明确地负责业务产品和性能。这个主要的代码库是一个测试套件,充当一组断言,确保次要代码库在没有谬误的状况下正确工作。在开发过程中,这些测试由开发人员运行,用来验证新代码没有对现有性能造成任何回归。
这些测试用例也能够通过无关的工具来运行,以自动化这个验证过程。CI服务产品将针对用户指定的事件,主动运行我的项目的测试用例。通常,当开发人员应用版本控制系统推送代码时,一个事件将会触发整个测试套件主动运行。
Bitbucket Pipeline是Atlassian为Bitbucket Cloud产品增加的⼀个重要性能,为了构建强⼤的⾃动化⼯作流程。借助Bitbucket Pipeline,可⾃动执⾏测试。Bitbucket Pipeline使⽤配置即代码来治理和配置基础架构,并与Jira严密集成。
如果您使⽤的是Bitbucket本地部署的Server版或Data Center版,那么能够通过Bamboo来进⾏⾃动化测试。它⽆缝集成Jira和Bitbucket服务器,带有内置的Git分⽀和⼯作流,能够帮忙你依据分⽀名称⾃动检测、构建、测试分⽀并合并到(筹备或⽣产)服务器。
不仅是Bitbucket和Bamboo,Jira还集成了许多测试用例管理工具,能够帮忙您进行自动化测试,例如Xray、Zephyr、TestRail等。
Xray反对多种自动化测试框架,利用自动化脚本的触发性能,真正实现自动化测试,将DevOps的能力进步一个档次。
Zephyr反对将测试增加到打算、开发、缺点跟踪和报告过程中,全副在Jira内治理。
TestRail是基于Web的测试管理工具,可用于治理、跟踪和组织软件测试工作。它遵循集中的测试治理概念,有助于轻松沟通,并可能跨QA团队进行疾速开发工作。
自动化构建
“构建”是为软件我的项目的以后公布版本创立快照的制品。构建通过各种网络分发给最终用户。我的项目通常会采取一组脚本化的步骤来创立构建制品。CI工具通过应用来自版本控制系统的主动触发器,来帮忙简化此构建过程。一个示例触发器是当新代码合并到代码库的生产分支时,将构建文件上传到近程服务器以供用户下载。
您能够使⽤Bitbucket Pipeline来进⾏⾃动化构建。它将在一个bitbucket-pipelines.yml文件中存储和治理您的构建配置,只需7行代码即可开始应用。
同样的,如果您应用Bitbucket的Server版或DC版,Bamboo反对创立多阶段构建打算、设置触发器以在提交时开始构建,并将代理调配给要害的构建和部署。
自动化部署
当构建筹备好散发时,它们要通过一个部署过程。依据我的项目部署的不同,可能会有多种后果。例如,web我的项目被部署到公开可拜访的web服务器上。在此部署期间,在构建阶段生成的制品将复制到web服务器上。挪动端和桌面端的部署过程各不相同,可能须要上传至“利用商店”,以便用户下载应用程序。
在Bitbucket Pipeline中治理部署很轻松,它使部署具备可⻅性,并能跟踪和预览部署状况。
本地部署能够应用Bamboo,单调乏味的部署我的项目将会主动公布到每个环境中,同时让您可能应用按环境授予的权限来管制流程。
CI工具比拟
Bitbucket Pipeline
简介:Bitbucket Pipeline是由Atlassian提供的云版本控制系统,它是⼀款间接集成到Bitbucket中的CI/CD⼯具。如果你的项⽬曾经提交到Bitbucket上了,那么Bitbucket Pipeline将是开启CI的⼀个简略步骤。Bitbucket Pipeline脚本作为配置既代码的实际,您能够很容易地执⾏以后版本中的Pipeline脚本来开始构建。此外,Bitbucket Pipeline还提供CD(继续交付),这意味着使⽤Bitbucket Pipeline构建的项⽬也能够通过脚本来部署到软件开发⽣命周期环节中的各种环境中去。理解更多...
特点:
- 简略的配置
- 对立的Bitbucket体验
- 云托管,缩小运维开销
Jenkins
简介:Jenkins是⼀个被⼴泛使⽤的⽼牌CI/CD⼯具。它是开源的,由社区更新驱动。Jenkins是本地部署的。当您的企业须要本地⽀持来解决HIPAA合规性数据等敏感客户时,Jenkins是⼀个很好的抉择。理解更多...
特点:
- 本地部署
- 开源
- 弱小的插件生态系统
Atlassian Bamboo
简介:Atlassian的另⼀款CI/CD 产品。Bitbucket Pipeline纯正是云托管选项,⽽Bamboo提供了⼀个⾃托管的代替⽅案。理解更多...
特点:
- 与Atlassian产品套件的最佳集成
- 一个扩大的附加组件和插件市场
- Docker代理的容器反对触发
- IFTTT 性能的 API
CloudBees CI
简介:CloudBees CI相当于Jenkins企业版,同时也是 Jenkins的重要贡献者,其团队奉献了Jenkins中80%以上的代码。CloudBees为企业提供灵便、可管控、可扩大的CI,让开发者领有灵活性的同时,实现大规模、可视化的集中管理。理解更多...
特点:
- 建设在Jenkins上
- 大规模的集中管理Jenkins实例
- 开发者领有灵活性
- 跟踪管制插件
- 基于角色的权限管制治理
什么样的才是适宜公司的CI工具?
在为团队抉择CI工具时,有几个重要的决策因素须要思考。
版本控制系统反对
CI/CD零碎的外围支柱是底层版本控制系统(VCS)的反对和集成。最受欢迎的版本控制是Perforce Helix Core、Git、Subversion和Mercurial。云CI工具能够为这些VCS中的局部或全副提供反对。抉择一个为您的我的项目VCS提供反对的CI工具是至关重要的。
本地部署vs.云端部署
后面提到的一些CI工具,如Bamboo、Bitbucket、CloudBees、Jenkins,都能够部署在本地。这意味着您的团队负责在您本人的基础设施上配置和治理CI零碎,并且本地部署可供二次开发的水平高,不便且不受限,还可提供深刻的配置选项。
如果本地部署不是您外围业务需要,而是一个额定工作,那么您还有云这个选项。云将CI工具的治理外包给第三方供应商,由云托管公司解决失常运行工夫、反对和CI工具的扩大,让您的团队专一于外围业务需要。这对于估算缓和的团队或须要积极关注产品市场匹配指标的小公司来说,云端部署是一个不错的抉择。
对利用容器化的反对
容器化是古代软件倒退的趋势。容器化反对散发应用程序不可变、可反复、隔离的正本。Docker和Kubernetes等工具反对容器化。古代CI工具反对将容器集成到CI/CD过程中。
容器解决了“在我的电脑上工作”这个问题,并确保利用程序代码打包在零碎级依赖项的解冻快照中。这保障了当您的团队的代码在CI工具上执行时,它是本地环境的复制品。容器解决了在没有容器的状况下呈现的整个环境奇偶性故障排除问题。
插件和第三方集成
当与其余其余技术堆栈集成在一起时,CI工具将变得更加有用。对于工程师团队效率和绩效的剖析,能够从CI工具中收集。Sprint打算应用程序能够绑定到CI工具,以便在代码交付后自动更新Sprint状态。这些集成能够用于领导工程团队的KPI和路线图。
开始应用CI
古代的CI工具是实现高性能工程团队的要害需要。工程师团队能够通过应用CI工具来优化他们的沟通和交付速度。市场上有许多风行的CI工具,在抉择CI工具时,须要思考的次要概念是版本控制系统反对、本地部署与云托管、部署管道和内部应用程序集成。
无论您喜爱应用什么CI工具,都能够集成到Atlassian Open DevOps中。Cloudbees、Jenkins、Xray...Atlassian让您能够自由选择相熟的、青睐的工具,最大限度晋升团队效率。
龙智连续Atlassian open DevOps 凋谢的理念,引入更多寰球当先工具,包含Helix Core, Whitesource, Sonarqube等,为企业量身定制DevSecOps解决方案。
并且,龙智作为Atlassian寰球白金合作伙伴,为帮忙开释及拓展Atlassian工具的力量,也自主开发了多款Atlassian插件,更适宜外乡企业应用。包含Jira工时治理插件(TimeWise for Jira)、Confluence水印插件(Watermark for Confuence)、Jira工作流扩大和并行审批插件(WorkflowWise for Jira)等,欢送征询试用。
文章起源:本文编译摘录自Atlassian文章《Continuous integration tools》,作者为MAX REHKOPF,有删改。
想理解更多Atlassian DevOps解决方案、工具及客户案例?欢迎您立刻征询Atlassian寰球白金合作伙伴—龙智:电话:400-775-5506邮箱:marketing@shdsd.com