标签: continuous-delivery

如何在大型项目上尽早并逐步交付生产

许多软件公司都夸耀他们在生产中快速增加了新功能.在大型公司X的后端项目中,我们有大型版本(一季度发布一次).我们使用Scrum进行为期2周的冲刺和系统集成测试,这些测试在相邻团队和客户之间作为最后阶段完成,然后发布到Production(他们有自己的测试包).我们的团队仅使用夜间回归测试与我们的后端服务(分别是我们的测试包)进行连续集成.我们还使用现代敏捷工具,如Jira,git,nexus,stash进行代码审查,spock,junit和teamcity.

由于这些团队很忙,我们无法承担团队之间频繁的集成测试.我们的QA-devs编写的回归测试需要大约10个小时(对于具有数据量数据的数据库,检查了许多功能).我们所有的后端服务对于拥有数百名消费者和24/6工作的业务而言至关重要.为了投入生产,我们所有的消费者也必须运行他们的集成测试.这需要大量的协调和时间.我们总是在非工作时间的周末发布.

因此,快速发布非常危险且耗时.我想听听成功案例以及如何实现快速发布?这真的可行吗?

testing agile scrum release continuous-delivery

2
推荐指数
1
解决办法
136
查看次数

Composer - 是否可以使用一个命令在"require-dev"中全局安装软件包?

快速提问,如果对我的想法有任何愚蠢/如果有更好的方法,请告诉我:

为了创建Continuous Delivery管道,我想在Composer中使用"require-dev"声明各种类型测试所需的一些包.但是,我想知道是否有可能以一种方式运行install命令,它将使用一个命令全局安装"require-dev"下列出的所有软件包?

这将是很好的,因为它可以让我轻松地保持测试环境的最新状态,并允许全局访问我需要的所有PHP测试解决方案.我知道这不是很多工作,如果我只是手动完成所有工作,我已经完成了它,但我很想知道是否有一种很好的方法可以做到这一点,因为我认为手动下载和一切,赋予它执行权限然后将其移动到bin /目录以进行全局访问是一种繁琐的解决方案.

php continuous-integration jenkins continuous-delivery composer-php

2
推荐指数
1
解决办法
4560
查看次数

持续集成工具

我正在进行有关持续集成工具的研究,并从中受益。对于我的研究,我正在研究以下工具:

  1. 亚搏体育app CI
  2. 詹金斯
  3. 光盘
  4. 团队城市

现在,我不会为您带来所有要求和好处。但是到目前为止,除以下这些以外,我在这些工具之间没有发现太多差异:

  1. 扇入扇出支持GoCD
  2. 社区规模,Jenkins和GitLab似乎贡献最大
  3. 费用
  4. 是否开源
  5. 可用插件数量

我想知道是否有些必须选择持续集成工具的人也可以分享那里的经验,为什么他们选择该工具,以及在选择我没有介绍的内容之前是否存在一些值得考虑的差异。

现在,由于有扇入扇出支持和连续交付管道的可视化,我倾向于GoCD的人对这个工具的支持有经验吗?

谢谢,

continuous-integration continuous-deployment continuous-delivery go-cd gitlab-ci

2
推荐指数
1
解决办法
963
查看次数

Bluemix构建管道集节点和npm版本

我想在bluemix上部署一个有角度的2应用程序.代码位于github,我想在推送东西时部署我的应用程序.所以我创建了一个管道.首先是构建管道:构建角度应用我需要angularCLI,所以我想安装它.不幸的是,默认节点版本是4.2,但cli至少需要6.9.这是我的build-shell命令:

#!/bin/bash
# The default Node.js version is 0.10.40
# To use Node.js 0.12.7, uncomment the following line:
#export PATH=/opt/IBM/node-v0.12/bin:$PATH
# To use Node.js 4.2.2, uncomment the following line:
export PATH=/opt/IBM/node-v6.9/bin:$PATH
npm install -g @angular/cli
npm run build
Run Code Online (Sandbox Code Playgroud)

我试图用6.9替换4.2,但它不起作用,它使用默认节点版本0.10.40.有谁知道如何设置节点版本?npm版本也已过时......我该如何解决这个问题?

continuous-delivery ibm-cloud-tools devops-services angular ibm-cloud

2
推荐指数
2
解决办法
1018
查看次数

Jenkins管道手动步骤许可

在我们现有的CD管道中,有一个手动步骤可以从测试推向生产。此外,只有某些人可以授权。我们通过Jenkins自由样式作业在某些用户有权访问不同视图的视图中对此进行控制。

现在我们正在考虑使用Jenkins 管道。用户有一个输入步骤,可以手动批准进入下一阶段。

有没有办法控制谁可以执行手动输入?或者,是否有用于改进管道的API,在这种情况下,我们可以构建工具以让相关用户获得许可。

研究

  • 这篇SO 帖子表明无法进行API调用。
  • 这个詹金斯问题告诉我,无法恢复由于失败而停止的管道

到目前为止,对于手动授权和通过API进行授权的响应似乎是“否”。任何其他想法表示赞赏。

authorization jenkins continuous-delivery jenkins-pipeline

2
推荐指数
1
解决办法
6438
查看次数

我的一个IBM Cloud Continuous Delivery管道作业停止工作.管道中有什么变化吗?

我的一个测试工作有一个类似于这一行...

export APP_URL=http://$(cf app ${CF_APP} | grep urls: | awk '{print $2}')
Run Code Online (Sandbox Code Playgroud)

...是从其中一个工具链示例模板中复制的.最近,这已停止工作.管道作业运行的环境有什么变化吗?

continuous-delivery ibm-cloud

2
推荐指数
1
解决办法
47
查看次数

生产部署的回滚

我即将自动部署到测试服务器和生产.

我有一个ci-server(build,compile,junit)和一个工件库管理器(将构建存储到部署/发布).

目前我可以使用脚本部署到测试服务器(使用ci-server执行).目前没有回滚,db-backups或db-updates.所有服务器都有Suse(linux).

我想知道是否有更好的部署方式,具有回滚功能?也许是其他免费软件工具?否则即使只是一些注释将有助于弄清楚我必须做什么才能够回滚并且不要搞砸了生产.

linux deployment continuous-deployment continuous-delivery

1
推荐指数
1
解决办法
814
查看次数

多节点SOA应用程序的配置管理

所以这似乎是当今软件中的常见问题.许多公司似乎使用AWS,Azure或Heroku等云平台解决了这个问题.但是,对于需要私有云的数据安全性,这些选项似乎不太发达.

详细说明,我的特殊需求是管理独立于节点(物理/虚拟服务器)的应用程序.目前我们使用Chef,这似乎不太适合这项任务.在Chef中,我需要在环境中的每个单独节点上都有一个运行列表.当我有一个依赖于许多不同服务的SOA应用程序时,由于显而易见的原因我不希望在同一节点上安装这些服务,所以Chef不能给我这个.我必须手动完成.我必须在内部记录所有依赖项,并且有人必须在为每个节点创建运行列表时做出决定.没有多节点类型配置选项(在环境变量之外)或自动方式跨多个节点安装我的服务.

这似乎是一个普遍的问题,我不得不相信我只是缺少一些东西.必须有一个工具,让我比私有云更容易管理私有云上的SOA应用程序.

有谁知道这样的工具?对我来说,厨师如此受欢迎并且没有这个功能似乎很疯狂.我想假设Puppet或其他工具,但与Chef不同,我想在我深入尝试使用它之前先了解.

要在Chef条款中压缩我想要的东西:

我想要映射到封装应用程序的环境的角色.我想在环境中运行安装,而不是单个节点.在内部,配置管理软件将对哪个节点实际安装服务做出某种明智的决定,并相应地更新服务依赖性(例如,通过环境变量).

换句话说,我希望CD成为托管在私有云上的SOA应用程序的CD; 不是我与Chef一起进行的半手动,大部分不连续交付的黑客行为.

如果有人从opscode那里(或其他厨师粉丝),我很乐意承认我可能没有使用所有厨师必须提供的,在这种情况下,我想知道当前使用它的人是如何处理我的具体问题.

此外,如果重要的话,我的所有服务器都是Windows 2008 R2或Windows 2012.

puppet chef-infra continuous-deployment continuous-delivery

1
推荐指数
1
解决办法
859
查看次数

DevOps是什么意思

您可能最近听说过"DevOps"一词被抛出.我读过维基并没有完全理解这个术语的含义:"发布频繁的公司可能需要DevOps意识或方向."

你能给出一个真实的例子来理解它是什么样的吗?

continuous-integration release-management continuous-delivery

1
推荐指数
1
解决办法
979
查看次数

为什么使用人工而不是共享文件夹?

在这种情况下,当我们放置应用程序的安装程序时,公司中有一个共享文件夹(两个.sh文件用于bin,另一个用于conf),这是手动操作。

我们正在尝试让詹金斯自动执行此操作。

我必须提供一些论据:如果我们使用人工方法通过带有http请求的jenkis发送数据来存储数据,那加号是什么?我们可以自动执行将数据放入共享文件夹的操作(如果您可以告诉我更多有关执行此最后一个操作的可能性的信息,那将会很棒)

有任何想法吗?

shared-directory artifactory continuous-delivery

1
推荐指数
1
解决办法
1772
查看次数

带有 Fastlane 和 GitHub Actions 的 Android CI/CD:在 master 分支上找不到“fastlane”命令

我正在尝试使用 Github Actions 和 Fastlane 为我的 Android 项目实现 CI/CD 工作流程。我创建了一个工作流程来构建 APK 文件并将其上传到 Firebase App Distribution。当我推送到我的开发分支并按预期将 APK 文件上传到 Firebase App Distribution 时,我的工作流程被触发并成功。

在此输入图像描述

但是相同的工作流程在 master 分支上失败(没有任何代码更改),并出现错误:“bundler:找不到命令:fastlane”

在此输入图像描述

当我在本地设备上调用相同的 fastlane 操作时,它会起作用并将 APK 上传到 Firebase App Distribution。

这是我的车道:

    lane :beta do |options|

        version = options[:versionChange]
        runUnitTests = options[:runUnitTests]
        gitUserMail = options[:gitUserMail]
        gitUserName = options[:gitUserName]

        # 1- Make version code and name incrementation

        if version.nil? || version == 'patch'
            gradle(task: "doPatchVersionIncrement")
        end

        if version == 'major'
            gradle(task: "doMajorVersionIncrement")
        end

        if version == 'minor'
            gradle(task: "doMinorVersionIncrement")
        end …
Run Code Online (Sandbox Code Playgroud)

continuous-integration android continuous-delivery fastlane github-actions

0
推荐指数
1
解决办法
2480
查看次数