持续集成和持续交付是一些人努力的目标。它让一切事物变得更简单。市面上有许多 CI/CD 工具,但是随着 Kubernetes 的日渐盛行,所有这些工具都需要做相应的调整。比如说Jenkins,这款非常成熟的 CI/CD 工具在全球范围内被广泛使用,但是这款工具缺乏创新并且感觉有点笨重。同样的话也适用于 Spinnaker。一款出色的企业解决方案拥有让工作深入开展下去的资源,但是让 CI/CD 工具以一种快速、整洁的方式升级不是一个理想的选择。还有其他的一些工具可以为更简单的工作流提供更多的支持。其中一个就是我们本文中将要介绍的 Argo。
开发和运维的集成翻开了软件开发的全新篇章。如果你还是DevOps的新手,或者正在寻求改进已有流程的方法,那么第一道关卡就是调研哪些工具最适合你的团队。
DevOps 正在改变全球软件开发的状态,DevOps 正以某种形式有效地提高提高全球软件公司的上市速度、可销售性、创新和产品质量。
Operator 是 Kubernetes 的重要扩展机制,本文从 Operator 概念开始,解释并实践了 Operator 的创建,希望可以帮助大家进一步了解其概念和作用。
本文翻译自国外的科技网站hackernoon,作者是云软件工程师Amrit Singh。如需查看英文原文,可在文章底部点击“阅读原文”。
Ansible 是一个令人惊讶的自动化的配置管理工具。其主要应用在服务器和云部署上,但在工作站上的应用(无论是台式机还是笔记本)却鲜少得到关注,这就是本系列所要关注的。
选择一个号的软件部署工具是一个很棘手的问题,因为对一个开发团队来说,对于他们适合的工具可能无法满足另外一个团队的需求,本文收集了25个最好的软件部署工具,用以帮助多个开发团队简化他们的工作流程,优化效
2019年2月13日更新*:本文的最初版本引起了很大的反响,大多数是正面的,有些则不是。争论的焦点在于我们在包含手动组件的环境中使用了“持续交付”这个术语。如果你所在的团队每天需要部署数百个版本,那么我们的框架可能不适合你。但是,如果你身一个像我们这样的受到严格监管的行业,例如财务行业,在这里版本控制更加严格,并且你希望充分利用功能分支、自动化集成、自动化部署和版本控制,那么这个解决方案可能对你同样有效。*
CI/CD是一种 DevOps 方法,它结合了持续集成和持续交付的概念,允许企业通过在软件开发生命周期中集成自动化来始终如一地向客户交付应用程序。
软件行业正迅速看到使用容器作为一种为应用程序开发人员促进开发,部署和环境编排的方法的价值。这是因为容器可有效管理环境差异,提高可伸缩性并提供可预测性,以支持新功能的持续交付(CD)。除了技术优势外,容器还被证明可以大大降低复杂环境的成本模型。
版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar
在面对不同环境(例如虚拟机、容器、集群)时,选择适合的 CI/CD 工作流程是至关重要的。以下是针对不同环境的一些常见的 CI/CD 工作流程选择:
为了应用这些roles并对其进行自定义,我们将使用yaml格式的playbook文本文件,其中包含要应用于服务器或目标服务器组的角色列表。这些playbook可能包含有价值的参数,以使我们的安装更具针对性。显然,通过源代码管理器对Playbook进行版本控制是首选的。
让我们从多分支管道基础知识开始。具体来说,在本节中,我将介绍什么是多分支管道,以及为什么对所有Jenkins CI / CD管道使用它必不可少。我还将向您展示多分支管道如何与详细的工作流图一起工作。
持续集成和持续交付是在软件开发生命周期中获得交付一致性的方法。作为一个流程,它帮助你自动化开发管道,同时确保所有事情都可跟踪。其中有趣的部分是在开发阶段中引入自动化。当我们谈到集成和交付时,另一个与之匹配的过程是“持续测试”,或者有时我们称之为 DevOps 测试。虽然持续集成(CI)和持续交付(CD)已经成为 DevOps 的重要组成部分,但在选择最佳工具时,DevOps 团队常常会陷入困境。如果没有 CI/CD 工具是无法想象的。
为了帮助管理员监控 CI/CD 平台并对其进行故障排除,并帮助开发人员提高 CI/CD 管道的速度和可靠性,Elastic Observability 提供了持续集成和持续交付 (CI/CD) 流程的可见性。
Enterprise Holdings. 的IT团队超过2000人,在2018年的演讲中介绍了Enterprise Holdings的DevOps是如何转型的。我们通过打造一个不只包涵了pipeline的CI/CD平台,将其称之为SDLC。在最开始的200+个应用中,我们挑选出5个来作为试点。当时的情况证明这次DevOps转型计划是成功的,我们的团队有4+位工程师和两位架构师,从2年半前就开始了整个平台的开发工作,根据业务需求确保平台可以适配各种云服务、也要适配已有的中间件,我们也在不断对CI/CD平台进行改进,以适应所有业务场景。其的目标是让开发人员更专注于具体的项目开发,让工具去解决一些通用性的问题。为了达到目前的效果,我们做了很多关于平台的需求收集及问题反馈相关的运营工作,所以在过去的一年里,我们已经将此套平台服务于70%的应用中,并且这个数字还在持续的增加。
Quay 是一个registry,存储,构建和部署容器的镜像仓库。它分析您镜像中的安全漏洞,可帮助您减轻潜在的安全风险问题。此外,它提供地理复制和BitTorrent分发,以提高分布式开发站点之间的性能,并提高灾难恢复的弹性和冗余性。
在做 Jenkins 与 Bitbucket 的集成时,需要安装插件:Bitbucket Branch Source,可以通过该插件在 Jenkins 里进行 webhook 的配置。这种方式对于没有 Bitbucket 仓库的管理权限,CI/CD 暂且处于变更比较频繁的阶段,不想麻烦的去申请添加 webhook 的同学来说是非常友好的。即可以不用通过管理员在 Bitbucket 设置里添加 webhook 也可以实现创建 PR 后触发 Jenkins 构建。
本篇讨论如何通过 Jenkins generic webhook trigger 插件来获取 Git 仓库事件(Events)。比如获取仓库的 Pull Request ID 等。
创建一家成功的软件公司需要什么?交付有价值的软件并快速交付的能力。我们如何保证这种高速服务?持续交付 (CD) 流程,由完善的持续集成 (CI) 机制支持,以提供完美交付,尤其是当平台组件的数量和依赖性增加时。
由于大部分互联网公司服务器环境复杂,线上线下环境、测试正式环境、分区环境、客户项目环境等造成每个应用都要重新部署,而且服务器数量少则几十台,多则千台,若手工一台台部署效率低下,且容易出错,不利后期运维,因此需要Ansible或者Saltstack来解决此问题。
接上回继续学习jenkins,这次主要来看一些疑难杂症: 一、yum install安装方式 除了直接java -jar jenkins.war方式,还可以用yum安装,这种方式下提供了更多的可配置选项,更适合生产环境控制jenkins的行为。 sudo yum update -y (可选) sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo sudo rpm --import ht
最近我写了一篇关于 CI 和 CD 之间核心区别的文章,我觉得是时候把这些理论运用到实际当中了。
自动化是伟大的 IT 和 DevOps 理想,但根据我的经验,可能根本不存在什么不方便的东西。有很多次,我为某些任务想出了一个很好的解决方案,我甚至会编写脚本,但我没有让它真正实现自动化,因为在我工作的机器上不存在易于自动化的基础设施。 我最喜欢的简易自动化工具曾经是 cron 系统,它古老、可靠、面向用户,而且简单(除了一个我永远无法记住的调度语法之外)。然而,cron 的问题是,它假定一台电脑每天 24 小时都在工作。在错过了太多预定的备份之后,我发现了 anacron,一个基于时间戳而非预定时间的 cron 系统。如果你的电脑在通常情况下运行时处于关闭状态,anacron 会确保它在电脑重新开启时运行。创建一个作业只需要简单地把一个 shell 脚本放到三个目录中:cron.day、cron.weekly 或者 cron.monthly (如果你想的话,你可以定义更多)。有了 anacron,我发现自己把脚本和 Ansible 剧本用在了各种琐碎的任务中,包括弹出到期和事件提醒。 这是一个现代问题的简单而明显的解决方案,但如果 anacron 没有安装在电脑上,那它对我就没有用。
作者简介 裴双才,Geekwolf,现MAKA运维负责人,博客: http://www.simlinux.com 《FastDFS分布式存储实战》作者,《Ansible中文手册》译者。 RHCA/RHCVA,混迹各种开源社区,专注高效运维、DevOps、性能优化、Docker、MySQL等方向,热衷技术分享,欢迎一起讨论技术,互相学习,共同进步。
「 傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波」
编者按:很多行业身处强力监管领域,因而格外强调合规性。反映在IT上就是开发、部署和运维等规范(比如开发团队不能碰生产日志)的不可或缺。本文中提到的一些方法(如自动化测试、自动化合规性及安全检查)和步骤将帮助团队获得合规性与DevOps的融合之益。 作者:Sarah Goff-Dupont 译者:半部春秋 “哎呀。真要命……”玛丽亚关闭了另一个浏览器选项卡(上面有她不打算申请的另外一份公开招聘启事),歇斯底里地吼道。她恼怒地一头撞在桌子上,她之前压根没想到会像现在这般痛苦。天哪,究竟是怎么回事? 她曾经热爱的
最近我们团队需要将一些示例和例子从内部的 Bitbucket 同步到 GitHub。我了解 GitHub 可以创建公共的或是私人的仓库,但我们需要保持以下两点
整理了20多款持续集成工具,这是作为软件测试人员需要了解的,也是在构建持续质量改进时,需要进行选型的基础设施工具。
在软件开发领域,DevOps已经成为越来越重要的概念。它强调了开发、测试、运维等各个环节之间的协作和自动化,以提高软件交付的速度和质量。随着时间的推移,DevOps所涉及的工具也不断更新和演进。本文将介绍一个预计在 2023 年最全面的 DevOps 工具列表。
版权声明:欢迎交流,菲宇运维!
前端框架:Angular 2,Vue.js,Bootstrap,LESS / SASS。 Web Web平台最近取得了两个重大进展——Web Assembly 和 Service Workers,他们打开快速和高效的Web应用程序的门,弥合与本地编译应用程序的差距。Service Workers尤其是渐进式Web应用程序(上文中提到的PWA)的启用技术,并为Web平台的通知提供支持,将来还会有更多的API。 Angular.js 2 Angular.js 2今年发布。该框架由Google支持,非常受企业和
import-local 是一个 NodeJS 端的工具,用于检测本地是否安装了某个包。如果你在开发一个 node 的 cli 应用,并且想要提高性能使用用户本地安装好的包,它就很适合你。
在DevOps之前,从业人员使用瀑布模型或敏捷开发模型进行软件项目开发:瀑布模型或顺序模型是软件开发生命周期(SDLC)中的一种开创性方法,在这个模型中,软件开发成为一个线性过程,不同的阶段和任务被依次定位;而敏捷开发涉及各种方法的使用和SDLC中多个团队的协作。瀑布模型的线性和敏捷开发的跨功能性无法确保快速、连续地交付无缺陷的软件应用程序。
在本文中,我想讨论一种在云环境中为 Kubernetes 工作负载实现自动化端到端 CI/CD 的方法。 这里可能有其它解决方案,而像 AWS、Microsoft Azure 和 GCP 这样的云提供商也提供了自己的一套框架,以实现与 Kubernetes 相同的目标。
CI/CD 同 DevOps、Agile、Scrum、Kanban、自动化以及其他术语一样,是一个一起被经常提及的专用术语。有时候,它被当做工作流的一部分,但是并没有搞清楚这是什么或者为什么它会被采用。对于年轻的 DevOps 工程师来说,使用 CI/CD 理所当然已经成为了常态,可能他们并没有看到“传统”的软件发布流程而因此不欣赏 CI/CD。
企业正在朝着DevOps方法论和敏捷文化迈进,以加快交付速度并确保产品质量。在DevOps中,连续和自动化的交付周期是使快速可靠的交付成为可能的基础。
作者 | M. Altun 译者 | Flora 策划 | 田晓旭 本文作者使用简单明了的语言介绍了当今使用的一些 DevOps 技术和工具。阅读本文后,您将对这些 DevOps 工具,工作方式、以及如何在软件过程中使用有一个整体的了解。 最近一段时间,我们见证了 DevOps 技术的飞速发展。当今流行且功能强大的工具可能会成为下一年度的过时工具,甚至可能很快被另一种工具取代。如前所述,作者的目的不是通过这篇文章来评判哪些工具最受欢迎或功能最全,而是让读者全面了解 DevOps 工具的工作方式以及如何在软件
Ansible 是一个工具,它可以帮助你更轻松、更快速地完成日常任务,这样你就可以更有效地利用时间,比如学习重要的新技术。对于系统管理员来说,它是一个很好的工具,因为它可以帮助你实现标准化,并在日常活动中进行协作,包括:
在本教程中,我们将介绍如何设置SSH密钥以支持代码部署/发布工具,配置系统防火墙,配置和配置数据库(包括密码!),以及设置任务调度程序(crons)和队列守护进程。本教程结束时的目标是让您拥有一个具有上述高级配置的完全可用的PHP应用程序服务器。
这篇文章将介绍我在 Jenkins 上遇到的一些常见问题,以及如何通过开发通用 Webhook 触发插件来解决这些问题。
在可维护性,可靠性,效率和安全性方面,DevOps 为私有云在改进操作流程方面发挥着重要的作用。私有云是一个由许多硬件和软件组件组成的复杂系统。 对于任何支持的企业组织,操作流程的自动化和文档记录,规划变更和跟踪应用的更新都是强制性的要求。 同样的方法也适用于云计算的工作负载量。此外DevOps的实践也成为开发者和 QA 团队事实上的标准,特别是当使用私有云作为开发或目标平台时。当然,并不是所有的云操作方面都可以用 DevOps 来实践。 例如,许多硬件相关的操作不匹配--你不能用一个软件工具,去物理
在考试期间,除了您就坐位置的台式机之外,还将使用多个虚拟系统。您不具有台式机系统的 root 访问权,但具有对虚拟系统的完整 root 访问权。
创建一家成功的软件公司需要什么?交付有价值的软件并快速交付的能力。我们如何保证这种高速服务?持续交付 (CD) 流程,由完善的持续集成 (CI) 机制支持,以提供完美交付,尤其是当平台组件的数量和依赖性增加时。 这张图片完美地总结了良性 CI/CD 循环,任何 DevOps 都应该将其贴在办公桌上: 在本文中,我们将关注循环的左侧,即产品从代码到测试的过程。 使用源代码时,git 是唯一的选择。事实上,在 BOOM,我们使用来管理代码生命周期(但 git 选项还包括 Gitea 或 Bitbucket)。
我们的运维工作基本都分布在以上4个层次,因此如何高效、高质量的交付就成为了我们主要面对的问题。
使用 Ansible 时,绝大部分时间将花费在编写playbook上。playbook 英文直译是剧本的意思,是一个Ansible术语,它指的是用于配置管理的脚本。
DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
领取专属 10元无门槛券
手把手带您无忧上云