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

时间:2017-01-26 15:31:19

标签: version-control xpages ibm-cloud continuous-deployment devops

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

  

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

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

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

你对此有何看法?

1 个答案:

答案 0 :(得分:4)

这是对您所描述的内容所需主题的高级概述。我正在轻松地浏览过很多细节,所以请搜索出来;我试图引用我目前所知的其他人的支持文档和博客文章等。如果有人有任何好处可以添加,我很乐意添加它。

您所描述的内容涉及多个组成部分,通常相当于:

  1. scm workflow
  2. 构建应用程序(NSF)
  3. 将构建的应用程序部署到Domino服务器
  4. 其他所有内容(例如通过QA / QC环境发布工作流程)都是上述主要步骤的辅助步骤。我将概述我目前正在做的事情,试图强调我正在努力改进这个过程。

    1。 SCM工作流程

    这可能令人难以置信,并且很大程度上取决于您的团队如何/部署/部署/发布流程中使用源代码管理。下面我将介绍在构建步骤中/周围进行测试的概念。

    我已从一个相当通用的scm服务器实现切换到GitLab实例。甚至运行CE实例也非常棒CI runner capabilities。以前,我有一个Jenkins CI实例执行相同的任务,但不得不在Jenkins任务中加入更多的“工作流”,而现在大部分逻辑都在一个统一的脚本中,从配置文件引用({{ 1}})。这类似于Travis CI或其他类似CI配置文件的工作方式。

    此配置调用了一些额外的帮助工作,但最终围绕着Egor Margineanu's PowerShell script which invokes the headless DDE build task的改编版本。

    2。从Source

    构建NSF

    我在博客中介绍了我的一般构建过程,以及之前的Jenkins CI实现。为此,我按照blogging of Cameron GregorMartin Pradny进行了操作。最终,你需要:

    1. 使用Domino Designer配置Windows环境
    2. 设置Domino Designer以从ODP导入(禁用导出),确保启用“自动构建”
    3. .gitlab-ci.yml需要notes.ini
    4. 的标记
    5. Jenkins CI或GitLab CI运行器(或其他)需要以登录用户身份运行,而不是Windows服务;这允许它正确地调用“headless dde”命令,因为它在后台运行而不是 true 无头调用
    6. 确保Domino Designer可以在不提示用户密码的情况下启动
    7. 我的博客文章介绍了其他主题,例如将构建标记为成功或失败,方法是扫描输出日志以标记为失败的构建。它还涉及如何将代码提交给SonarQube实例。

      参考:IBM Notes/Domino App Dev Wiki page on headless designer

      测试

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

      Bluemix关注

      运行IBM XPages应用程序的唯一PaaS

      IBM Bluemix将需要一些额外的考虑因素,例如:

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

      价: - IBM XPages on Bluemix - Bluemix Docs: Building XPages apps for the Bluemix Runtime

      3。部署

      到Bluemix

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

      到内部部署服务器

      具有适当级别凭据的用户ID需要执行设计替换/刷新或停止dev / test / staging服务器,执行DESIGNER_AUTO_ENABLED=true的文件副本,然后重新启动它的工作。我听说Cameron Gregor利用Domino Designer的插件来执行OSGi插件开发所需的操作,这听起来非常有用。由于我的大多数Domino应用程序开发几乎都是基于NSF的,所以我更关注部署到staging / dev / test服务器的方法,然后我可以执行设计任务来执行所需的刷新/替换;更接近“正常”多米诺的做事方式。

      摘要

      同样,这里涉及很多动人的作品,其中一些相当快速地得到了相当的反对。例如,我目前正在虚拟化我的构建机器,因此我可以对其中的几个虚拟机进行假脱机,允许一次构建多个构建。如果这个过程存在重大差距,请告诉我,我会尽我所能。