DevOps是个很复杂的话题,它不仅仅是一项技术,而是一系列的流程,工具,方法,组织架构等相互配合来达成敏捷开发和高效运维的手段的集合。所以本质上讲没有拿来就可以用的DevOps服务。写这篇文章的目的是给大家介绍一下IBMPaaS 平台BlueMix里提供的云应用开发运维工具。BlueMix介绍请参见上一篇文章。
BlueMix的应用开发,部署和运维可以完全在门户里完成。这个门户称为应用组合环境,以体现通过动态组合来快速创建应用的理念。 当然BlueMix还有其他的开发环境如Eclipse插件,以及运维工具如CF命令行工具,在随后的文章里会介绍。 笔者虽然没有直接参与该DevOps服务的开发工作,但是也在过去的一年里也参与了许多架构和用户体验的讨论。
如果你有IBMID并申请成为BlueMix用户,就可以通过登陆门户 http://bluemix.net来创建自己的应用了。 本文以创建一个node.js应用为例。
首先你可以通过BlueMix的门户来创建一个应用,如下图所示的TestAppJS。这是一个缺省的示例应用。
现在点击”Add Git Integration”按钮, BlueMix 会为你创建一个和应用同名的项目以及相应的Git repository, 该repository托管在IBM的平台上。通过登陆IBM Devops服务你也可以选择使用JazzSCM Repository 或者连接到一个托管在其他平台上的Git repository, 如github.com。
然后点击”code”按钮,就会带你到位于hub.jazz.net的IBM DevOps服务平台,这样就可以开始使用其提供的Web IDE 来编写代码。
在该示例中,我们来用node.js写一个简单的web应用。对于所有的请求返回”Hello World”. 注意你需要使用manifest.yml清单文件来描述部署应用时的配置。有关manifest.yml的格式,可以参照CloudFoundry 的相关文档http://docs.cloudfoundry.org/devguide/deploy-apps/manifest.htm
当程序完成后,我们就可以提交代码修改,并推送到远端代码库。
IBM DevOps 同样提供了项目管理,跟踪与计划功能,熟悉Jazz或者IBM RTC的开发者们一眼就能看出来这其实就是RTC/Jazz的既有功能。 有关细节就不再细说了, 直接参照Jazz/RTC相关资料就好了。 让我们回到Cloud的正题上。
下一步就是云端的部署了,IBMDevOps 服务可以允许在任何时候将本地代码库的应用推送到 云端,开发者也可以通过配置来自动完成应用的部署。 通过设置远端代码库的分支,以及部署应用所在的组织与空间(Org/Space),任何推送到该远端分支的代码更改都会被自动构建并部署到BlueMix中。
你也可以从DevOps Service页面直接跳转到BlueMix门户来管理你的应用,如下图所示。
上面是IBM DevOps 服务的基本功能介绍。跟以前JazzHub社区相比,在过去的一年多时间里,为配合IBMBlueMix, JazzHub做了以下主要几件事:
1) 对Git Repository 的支持
2) 应用从JazzHub到BlueMix 云平台的部署
3) 用户界面上和BlueMix门户的集成
如文章开头所言, DevOps不仅仅是简单的应用开发,构建,项目管理和应用部署工具。而是一个全面的方法和流程。即使从工具的角度讲,IBM的DevOps服务仍然是一个开始,还有很多的工作要做。 首先测试作为重要的一环在整个服务中是缺失的,应用是否运行正常需要推送到云端去验证,而没有办法在本地进行测试,这会大大降低开发的效率。 另外虽然整个DevOps服务和门户做了集成,这种集成明显能看出来是两个系统通过IBM ID进行了关联,两个系统有着不同的界面风格,不同的设计目标。这个是特别需要解决的问题,也需要时间。