红帽OpenShift是一个结合了流行源代码管理和自动化构建和测试工具优势的PaaS。虽然该平台旨在实现一些云开发者的工作,但是并非适用于每一个人。
如果你更喜欢使用Git管理你的代码,并且用Jenkins进行持续集成,OpenShift会让你感觉如同在家般舒适。如果你正在使用其他的源代码库,而且考虑转到红帽OpenShift上,关于平台即服务(PaaS)有几件事情需要了解,帮助你更好地简化应用开发工作。
理解红帽OpenShift的基础
OpenShift以红帽企业Linux为基础,运行在裸机、虚拟服务器或者云端。应用运行在平台即服务中的结点,通过同样运行在相同PaaS的中间件来管理。结点可以使用红帽称之为“齿轮”的Linux容器运行在多种环境中。容器通过控制群组隔离流程和功能,从而分配计算资源,提供类似虚拟机的服务,但是开支更少。
开发者可以在集成的开发环境中构建自己的代码,比如Eclipse,随后将其部署在齿轮中运行。作为这个流程的一部分,你需要选择将要使用的编程语言,以及其他的组件,比如数据库和Web服务器。本地的Git库管理应用代码;到部署的时候,你可以简单的push(Git命令)这个代码到合适的环境中(如测试、开发或者生产)。
用Jenkins在OpenShift中自动化测试
代码的本地单元测试很重要;然而,在任何重要的软件开发工作中,运行集成测试需要很多执行路径贯穿代码。这个过程耗时且冗长,而且如果你依赖于过多的人工步骤,就会受到错误的限制。自动化测试为Jenkins构建到红帽OpenShift中起到一定的帮助作用。
在你的红帽OpenShift开发中使用Jenkins时,你可以同往常一样将代码提交到Git库中。当Jenkins在库中检测到新的代码,就会构建应用,并且运行一套自定制测试。如果测试成功,代码部署。相反代码就会继续运行已经部署好的部分。这将有效阻止不注意将错误代码部署,而且可能要到用户运行你的应用时才会发现这个错误。
应用***实践到Git和Jenkins
由于Git和Jenkins都通红帽OpenShift紧密集成,使用它们的***实践适用于在这个服务中管理你的代码。
Git***实践始于一次提交,保存了你的代码状态,但是并没有部署。一次提交是创建一个检查点的途径,如果你代码实现了突破。可以回顾。通过多种提交,你可以有更好地机会在上一个工作版本和***个突破代码之间实现一小套变更集。
考虑如何在Git库中管理代码分支。一种流行的模型是用一个包含所有发布到生产以及替代分支的代码的主分支,比如开发和测试。在一些项目中,将会有一个主题分支:为一个单一的特性有一个短期的分支封装代码。当代码稳定时,就可以合并到其他的分支中。
为将代码推进到生产阶段创建规程。这些应该包括标记分支的命名规则,以及一旦发布后不再更新分支的规则。
在使用Jenkins时,建议从源代码完全构建应用。为了完全从源构建,其他的库和支持代码必须在源控制之下。
Jenkins的job应该用来构建和测试代码。测试集成代码可以发现在单元测试中没有发现的缺陷。使用独立的job来构建和测试不同的分支,允许你自定制测试,并且为每一个分支的具体类型实施动作。