使用Premesis上的XPage或像Bluemix这样的PaaS进行DevOps

xpa*_*ast 5 version-control continuous-deployment xpages devops ibm-cloud

使用XPage实现DevOps的最佳方法是什么?

作为团队工作的多个开发人员,On Premises Servers [Dev,QA,Prod]我们可以复制到Bluemix吗?源代码控制自动化测试UI /应用程序,单元测试业务逻辑与测试框架,自动部署

IDE/Tools Domino Designer; 还有其他方法吗?

注意:当数据在NSF中时使用视图,否则数据在云或SQL中.没有表单或其他经典Notes设计元素.

你对此有何看法?

Eri*_*ick 5

这是尝试您所描述的内容所需的主题的高级概述。我正在浏览很多细节,所以请搜索它们;我试图参考我目前所知道的其他人的支持文档和博客文章等。如果有人有什么好添加的,我很乐意添加。

您所描述的内容涉及多个组件,通常包括:

  1. 供应链管理工作流程
  2. 构建应用程序 (NSF)
  3. 将构建的应用程序部署到 Domino 服务器

其他一切,例如通过 QA/QC 环境的发布工作流程,都是上述主要步骤的次要步骤。我将概述我目前正在做的事情,试图突出我正在改进流程的地方。

1. 单片机工作流程

这可能是令人难以置信的自以为是,并且在很大程度上取决于您的团队如何/想要在您的部署/发布过程中使用源代码控制。下面我将从概念上讲,在构建步骤期间/前后执行测试。

我已经从相当通用的 scm 服务器实现切换到GitLab实例。甚至运行 CE 实例也非常出色,因为它们具有CI 运行器功能。以前,我有一个Jenkins CI实例执行大致相同的任务,但不得不将更多“工作流”烘焙到 Jenkins 任务中,而现在大部分逻辑都在一个统一的脚本中,从配置文件 ( .gitlab-ci.yml) 中引用。这类似于 Travis CI 或其他类似 CI 配置文件的工作方式。

该配置调用了一些额外的辅助工作,但最终围绕Egor Margineanu 的 PowerShell 脚本的改编版本展开,该脚本调用无头 DDE 构建任务

2. 从源代码构建 NSF

我已经在博客中介绍了我的一般构建过程,以及我之前的 Jenkins CI 实现。为此,我关注了Cameron GregorMartin Pradny博客。最终,您需要:

  1. 使用 Domino Designer 配置 Windows 环境
  2. 设置 Domino Designer 以从 ODP 导入(禁用导出),确保启用自动构建
  3. notes.ini需要的标志DESIGNER_AUTO_ENABLED=true
  4. Jenkins CI 或 GitLab CI runner(或其他)需要以登录用户的身份运行,而不是 Windows 服务;这允许它正确调用“headless dde”命令,因为它在后台运行而不是真正的无头调用
  5. 确保 Domino Designer 可以在不提示输入用户密码的情况下启动

我的博客文章涵盖了其他主题,例如通过扫描标记为失败构建的输出日志来将构建标记为成功或失败。它还涉及如何将代码提交到 SonarQube 实例。

参考:IBM Notes/Domino App Dev Wiki 页面上无头设计器

测试

任何额外的测试或其他工作流程注意事项(例如 QA/QC 批准)都应围绕构建阶段进行,具体取决于您如何设置 SCM 工作流程。许多实施将围绕您的设置的细节。一般的想法是根据构建 + 测试阶段的结果允许/阻止部署。

Bluemix 问题

IBM Bluemix是唯一运行IBM XPage应用程序的 PaaS,需要一些额外的考虑,例如:

  • 他们的 Git 部署过程只接受预先构建的 NSF
  • NSF 必须由帐户所有者的 Bluemix ID 签名

参考: - Bluemix 上的 IBM XPage - Bluemix Docs:为 Bluemix Runtime 构建 XPage 应用程序

3. 部署

到 Bluemix

如果您希望部署一个 XPage 应用程序以在 Bluemix 上运行,您可能希望确保您的无头构建使用 Bluemix ID 运行,或者至少使用它进行签名,然后通过 git 部署它以进行生产推送连接或 cf/bluemix 命令行实用程序。Bluemix 的接收钩子处理所有其余的部署问题,例如启动/停止服务器实例等。

到本地服务器

具有适当级别凭据的用户 ID 需要执行以下工作:执行设计替换/刷新或停止开发/测试/登台服务器,执行.nsf. 我听说 Cameron Gregor 使用 Domino Designer 的插件来执行 OSGi 插件开发所需的操作,这听起来非常有用。由于我的大部分 Domino 应用程序开发几乎完全基于 NSF,因此我更关注部署到登台/开发/测试服务器的方法,然后我可以在其上执行设计任务以执行所需的刷新/替换;更接近“正常”的 Domino 做事方式。

概括

同样,这里涉及到很多动人的部分,其中一些很快就变得非常自以为是。例如,我目前正在虚拟化我的构建机器,所以我可以将它的几个虚拟机集中起来,允许一次进行多个构建。如果过程中有重大差距,请告诉我,我会尽我所能填补。