在Premesis或PaaS上使用XPages的DevOps(例如Bluemix) [英] DevOps with XPages on Premesis or PaaS like Bluemix

查看:81
本文介绍了在Premesis或PaaS上使用XPages的DevOps(例如Bluemix)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

What is the best way to achieve DevOps with XPages.


在本地服务器上以团队方式工作的多个开发人员[Dev,QA ,
产品]我们可以复制到Bluemix吗?源代码控制自动测试UI
/应用程序,使用测试框架对业务逻辑进行单元测试,自动部署

Multiple Developers working as a team, On Premises Servers [Dev, QA, Prod] can we replicate to Bluemix? Source Control Automated Testing UI / Application, Unit testing business logic with testing framework, Automated Deployment

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

IDE/Tools Domino Designer; are there other ways?

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

Note: Use of Views when the data is in a NSF, otherwise data is in the cloud, or SQL. No Forms or other classic Notes design elements.

您的处理方法是什么?

推荐答案

这是尝试描述您所需要的主题的高级概述。我轻描淡写了过去的许多细节,因此请仔细搜索;就其他支持文档和博客文章等而言,我尝试引用了我目前所了解的内容。如果有人有什么好要补充的,我很乐意将其添加。

This is a high level overview of the topics required to attempt what you're describing. I'm breezing past lots of details, so please search them out; I've tried to reference what I'm currently aware of as far as supporting documentation and blog posts, etc. of others. If anyone has anything good to add, I'm happy to add it in.

您要描述的内容涉及多个组件,通常为:

There are several components involved with what you're describing, generally amounting to:


  1. scm工作流程

  2. 构建应用程序(NSF)

  3. 将构建的应用程序部署到Domino服务器上

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

Everything else, such as release workflow through a QA/QC environment, is secondary to the primary steps above. I'll outline what I'm currently doing with, attempting to highlight where I'm working on improving the process.

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

This can be incredibly opinionated and will depend a lot on how your team does/wants to use source control with your deployment / release process. Below I'll touch on performing tests, conceptually, during/around the build step.

我已经从相当通用的scm服务器实现切换为 GitLab 实例。凭借其 CI运行器功能,即使运行CE实例也非常出色。以前,我有一个 Jenkins CI 实例执行大约相同的任务,但必须将更多的工作流程烘焙到Jenkins任务中,而现在大多数逻辑都在一个统一脚本中,该脚本是从配置文件( .gitlab-ci.yml )引用的。这与Travis CI或其他类似CI配置文件的工作方式类似。

I've switched from a fairly generic scm server implementation to a GitLab instance. Even running a CE instance is pretty fantastic with their CI runner capabilities. Previously, I had a Jenkins CI instance performing about the same tasks, but had to bake more "workflow" into the Jenkins task, whereas now most of that logic is in a unified script, referenced from a config file (.gitlab-ci.yml). This is similar to how a Travis CI or other similar CI config file works.

此配置需要一些其他帮助程序工作,但最终会围绕 Egor Margineanu的PowerShell脚本调用了无头DDE构建任务

This config calls some additional helper work, but ultimately revolves around an adapted version of Egor Margineanu's PowerShell script which invokes the headless DDE build task.

我已经用我以前的Jenkins CI实现写了关于一般构建过程的博客。我遵循了博客Cameron Gregor的博客马丁·普拉尼这个。最终,您需要:

I've blogged about my general build process, with my previous Jenkins CI implementation. I followed the blogging of Cameron Gregor and Martin Pradny for this. Ultimately, you need to:


  1. 使用Domino Designer配置Windows环境

  2. 设置Domino Designer要从ODP导入(禁用导出),请确保启用了自动生成

  3. notes.ini 将需要 DESIGNER_AUTO_ENABLED = true

  4. Jenkins CI或GitLab CI运行程序(或其他)将需要以登录用户而不是Windows服务运行;这允许它正确地调用 headless dde命令,因为它在后台运行,而不是 true headless调用

  5. 确保Domino Designer可以启动而不提示用户输入密码

  1. configure a Windows environment with Domino Designer
  2. set up Domino Designer to import from ODP (disable export), ensuring Build Automatically is enabled
  3. the notes.ini will need a flag of DESIGNER_AUTO_ENABLED=true
  4. the Jenkins CI or GitLab CI runner (or other) will need to run as the logged in user, not a Windows service; this allows it to invoke the "headless dde" command correctly, since it runs in the background as opposed to a true headless invocation
  5. ensure that Domino Designer can start without prompting for a user's password

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

My blog post covers additional topics such as flagging the build as success or failure, by scanning the output logs for being marked as a failed build. It also touches on how to submit the code to a SonarQube instance.

引用:无头设计师上的IBM Notes / Domino App Dev Wiki页面

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

Any additional testing or other workflow considerations (e.g.- QA/QC approval) should go around the build phase, depending on how you set up your SCM workflow. A lot of the implementation will revolve around the specifics of your setup. A general idea is to allow/prevent deployment based on the outcome of the build + test phase.

IBM Bluemix (运行IBM XPages应用程序的唯一PaaS)将需要一些附加功能考虑因素,例如:

IBM Bluemix, the only PaaS that runs IBM XPages applications, will require some additional consideration, such as:


  • 其Git部署过程将仅接受预先构建的NSF

  • NSF必须由帐户所有者的Bluemix ID签名

参考:
- Bluemix上的IBM XPages
- Bluemix文档:为Bluemix Runtime构建XPages应用

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

If you're looking to deploy an XPages app to run on Bluemix, you would want to either ensure your headless build runs with the Bluemix ID, or is at least signed with it, and then deploy it for a production push either via a git connection or the cf/bluemix command line utility. Bluemix's receive hooks handle all the rest of the deployment concerns, such as starting/stopping the server instance, etc.

具有适当级别凭据的用户ID需要执行以下工作:执行设计替换/刷新或停止开发/测试/登台服务器,执行的文件副本.nsf ,然后将其备份。我听说Cameron Gregor使用Domino Designer的插件来执行OSGi插件开发所需的操作的传闻,这听起来很有用。由于我大部分的Domino应用程序开发几乎都是基于NSF的,因此我将重点更多地放在部署到暂存/开发/测试服务器上的方法上,然后我可以执行设计任务来执行所需的刷新/替换;

A user ID with appropriate level credentials needs to perform the work of either performing a design replace/refresh or stopping a dev/test/staging server, performing the file copy of the .nsf, then starting it back up. I've heard rumors of Cameron Gregor making use of a plugin to Domino Designer to perform the operations needed for OSGi plugin development, which sounds pretty useful. As most of my Domino application development is almost purely NSF based, I'm focusing more on an approach of deploying to a staging/dev/test server, which I can then perform a design task on to do the needed refresh/replace; closer to the "normal" Domino way of doing things.

同样,还有很多移动涉及的部分,其中一些很快就得到了认可。例如,我目前正在虚拟构建机器,因此我可以假脱机几个虚拟机,一次允许多个构建。如果在此过程中存在重大空白,请告诉我,我会尽力解决。

Again, there are a lot of moving pieces involved here, some of which gets rather opinionated rather quickly. For example, I'm currently virtualizing my build machine, so I can spool up a couple virtual machines of it, allowing for more than one build at a time. If there are major gaps in the process, let me know and I'll fill it what I can.

这篇关于在Premesis或PaaS上使用XPages的DevOps(例如Bluemix)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆