转载

如何使用 IBM Bluemix 开发下一代云应用

建议初次接触 Bluemix 的您首先阅读笔者的另一篇文章 《初探 IBM Bluemix 带您领略平台云》 ,该篇文章详细介绍了有关 Bluemix 的基本概念和理论,读完更有利于理解本文以下的内容。

环境准备及相关账号申请

  1. 申请 GitHub 账号

    本文用到的应用程序的源码是托管的 GitHub 上的,请自行申请 GitHub 账号,申请地址: https://github.com/

  2. 注册 Bluemix 公有云账号

    申请地址: http://www.bluemix.net 在页面右上角点击 SIGN UP,填写相关信息提交申请,Bluemix 会发一封确认邮件到注册邮箱,需要手工进入注册邮箱点击确认,才能成功注册。

  3. 安装 Eclipse

    建议安装 4.3.1 及以后版本

  4. 安装 CloudFoundry 命令行工具

    通过此工具,可以使用命令行与 Bluemix 云环境进行交互,参考 http://docs.cloudfoundry.org/devguide/installcf/install-go-cli.html

  5. 安装 IBM Eclipse Tools for Bluemix

    这是一个 Eclipse 插件,使用这个插件可以在 Eclipse 里开发应用程序,并将应用程序通过此插件部署到远程的云环境 Bluemix 上,安装方法是:打开 Eclipse,点击 Help > Eclipse Marketplace, 在搜索框里搜索“Bluemix”就可以检索到此插件,然后根据提示安装,安装完成后需要重启 Eclipse。如下图:

    图 1. 安装 IBM Eclipse Tools for Bluemix

    如何使用 IBM Bluemix 开发下一代云应用
  6. 安装 EGit for Eclipse 插件

    通过 EGit 插件,可以从 Eclipse 中连接 Git 仓库,进行代码的托管和团队开发管理。安装方法如下:打开 Eclipse,击 Help > Eclipse Marketplace, 在搜索框里搜索“EGit”就可以检索到此插件,根据提示完成安装即可。

  7. 克隆应用程序源码

本文会用到一个名叫“BlueTrader”的 J2EE 应用,它是一个模拟股票交易的软件,主要使用 JSP 和 Servlet 实现,后台需要 DB2 数据库(您不需要安装,一切都由 Bluemix 提供),在本文演示过程中,会涉及到多个 Bluemix 提供的运行时和服务,包括 Websphere Liberty 运行时、数据库服务 SQLDB(DB2)、弹性伸缩服务 Auto-Scaling、日志监控和分析服务 Monitoring and Analytics 以及用来修改 Trace 和生成 Dump 文件的 Runtime Management Utility 功能等等。除此之外,本文还将演示如何通过 Bluemix 控制台、Eclipse Tools for Bluemix、IBM DevOps Services 和 CloudFoundry 命令行工具与 Bluemix 进行交互,这些工具或者服务相互补充,共同为开发者提供了完整并且友好的开发、部署和管理云应用的功能。在实际的开发过程中,您也许不会同时全部使用这些功能,本文将它们集合在一个实例中,力争向您介绍一个完整的端到端的 Bluemix 开发体验。下图是本文实例框架图:

图 2. 演示实例架构图

如何使用 IBM Bluemix 开发下一代云应用

请您使用第一步申请的 GitHub 账号访问并登陆 BlueTrader 所在的仓库,地址是 https://github.com/acostry/BlueTrader-E2E-Bluemix,点击右上角的“Fork”将 BlueTrader 克隆到自己工作空间里。如下图:

图 3. 克隆 BlueTrader 源码

如何使用 IBM Bluemix 开发下一代云应用

克隆完成后,返回到自己的 GitHub 工作空间,并点击 Download ZIP,下载 BlueTrader-E2E-Bluemix 工程到本地,在本文中我们需要的 BlueTrader 应用位于如下路径:BlueTrader-E2E-Bluemix/importedFile/BlueTrader.zip,保存 BlueTrader.zip 到任一目录,为本地开发调试做准备。如果您不清楚如何下载 GitHub 内容到本地,请自行阅读 GitHub 文档学习,本文将不再一一介绍。

回页首

初探 Bluemix

在正式开始实例之前,先带大家从总体上了解一下 Bluemix,这里主要通过 Bluemix 控制台来介绍,Bluemix 是一个公有 PaaS 云平台,用户只需要注册一个账号以及一个可以联网的浏览器就能使用到 Bluemix 提供的各种云服务,用户只需要关心和应用相关的内容,而不需要去关心整个 IT 设施的底层架构,编写少量代码,并使用 Bluemix 提供的运行时和云服务就可以来组装并运行属于自己的云应用。

登录 Bluemix

在浏览器中访问 Bluemix 全球站点 http://www.bluemix.net, 点击右上角的“LOG IN”,输入已经注册成功的 Bluemix 账号和密码就能登录到 Bluemix 的控制台,第一次登录成功后的页面时这样的:

图 4. 首次登录 Bluemix 控制台

如何使用 IBM Bluemix 开发下一代云应用

对于免费用户,Bluemix 提供了 30 天的试用,有 2 GB 内存可以用来运行应用程序,通常一个 J2EE 应用默认需要 512M 内容,Ruby/Go/PHP 等需要的会比较少,您可以根据自己应用的实际情况来分配内存,这些都是可以动态调整的。

Bluemix 控制台介绍

Bluemix 控制台的主页主要包含了以下内容:

ORG 和 Space:在 Bluemix 里以 ORG 和 Space 来隔离不同的用户使用空间以及进行权限控制。

DASHBOARD:用户对应用程序和服务的操作都在这个页面完成

CATALOG:详细列出了 Bluemix 提供的运行时和服务

PRICING:定义收费相关的信息

DOCS: Bluemix 使用文档

COMMUNITY:Bluemix 社区,可以提问并且可以 Bluemix 开发人员交流

REGION:支持在多区域以及多个数据中心使用 Bluemix

除了以上内容,剩下的是对应用和服务的管理以及具体展示。

快速创建模板应用

Bluemix 的一个特点就是可以快速的创建应用并将应用运行在云的环境里,用户不需要自己搭建任何运行时环境,应用所需的运行时以及类似数据库的各种服务都由 Bluemix 来提供,用户只需要操作几次鼠标就能将一个模板应用运行在 Bluemix 上,剩下的就是对模板应用进行修改,添加业务逻辑,然后借助 Bluemix 提供的各种工具,快速的将包含业务逻辑的应用部署到云上,大大加快了应用程序的上线时间。在 Bluemix 上创建一个应用步骤是:

  1. 登录 Bluemix 控制台
  2. 在 DASHBOARD 页面点击图 4 中的创建应用程序(CREATE AN APP),并选择创建应用程序类型为 WEB,页面会跳转至 CATALOG 页面,我们在这里创建一个运行在 Liberty 上的 J2EE 应用,单击选择 Liberty 运行时,如下图:

图 5. 选择 Liberty 运行时

如何使用 IBM Bluemix 开发下一代云应用

3. 在详细配置页面,需要为应用设置一个名字以及访问地址(Host),如下图红框所示,需要主要的是,需要保证应用程序的访问地址是唯一的,以防和其他应用的用户产生冲突。点击完成

图 6. 配置应用信息

如何使用 IBM Bluemix 开发下一代云应用
  1. 当点击完成后,Bluemix 就开始自动创建应用并将应用自动部署在 Liberty 运行时上,应用运行所需的一切资源(运行时、JDK、服务)都会被自动的创建和配置,等待数秒,创建的应用就运行在 Bluemix 上了,点击下图的红框处的 URL 就能访问刚刚创建成功的应用了。

图 7. 应用详细信息

如何使用 IBM Bluemix 开发下一代云应用

通过以上几步的操作,用户需要关心任何底层架构以及服务器,运行时等的搭建和配置,只需要关注在应用程序的配置上,就能很快的将一个 J2EE 的应用创建并部署在 Bluemix 上,当然,此时的应用仅仅是一个没有任何业务逻辑的模板,只是为了让您很快的了解到 Bluemix 带来的一些变化和便利,我们需要对应用程序进行进一步的开发,添加逻辑,然后再将应用部署在云上,才能完成应用程序的开发过程。具体的方法是在上图中点击“下载起动器代码”下载模板应用的压缩包到本地。在 Eclipse 中选择 File > Import > General > Existing Projects into Workspace, 然后选择下载到本地应用程序压缩包,导入程序到 Eclipse 里进行本地业务逻辑开发。

图 8. 导入模板应用到 Eclipse

如何使用 IBM Bluemix 开发下一代云应用

工程结构是:

图 9. 模板应用工程结构

如何使用 IBM Bluemix 开发下一代云应用

回页首

从 Eclipse 开发/部署应用到 Bluemix 上

除了上面介绍的在模板应用的基础上开发应用外,大部分的开发人员都是从 Eclipse 里创建或者导入已有工程开始进行编程的。在本节中将您介绍如何在本地 Eclipse 中开发和部署应用,并从 Eclipse 部署应用到云端,这其中需要用到本文之前提到的 IBM Eclipse Tools for Bluemix 以及存放在 GitHub 上的 BlueTrader.zip 文件。BlueTrader 是一个已经开发完成的应用,您可以直接部署该应用到 Bluemix 上。

导入工程到 Eclipse

打开安装完成的 Eclipse,选择 File > Import >General>Existing Projects into Workspace>Select archive file, 选择下载到本地的 BlueTrader.zip 文件。如果出现编译错误,请将 Eclipse 的编译级别改成 1.6 或以上(建议 1.7)。

图 10. BlueTrader 工程结构

如何使用 IBM Bluemix 开发下一代云应用

创建 Bluemix 服务器定义

要想从 Eclipse 部署 BlueTrader 到 Bluemix,需要利用之前安装的 Bluemix 插件来创建一个 Bluemix 服务器定义

选择 Window> Show View > Servers 打开 Servers 视图

图 11. 打开 Servers 视图

如何使用 IBM Bluemix 开发下一代云应用

在 Servers 空白部分,点击右键,选择 New > Server,并在 Servers 列表里选中 IBM Bluemix

图 12. 选择 IBM Bluemix 类型

如何使用 IBM Bluemix 开发下一代云应用

点击 Next 进入 IBM Bluemix Account 配置页面,输入之前申请的 Bluemix 账号信息,如下图:

图 13. 配置 IBM Bluemix 账户

如何使用 IBM Bluemix 开发下一代云应用

点击 Next,接下来的配置保持默认,完成 Bluemix Server 的定义。在 Servers 视图里会新增一条 Bluemix 的定义。

图 14. IBM Bluemix 定义

如何使用 IBM Bluemix 开发下一代云应用

关于 BlueTrader 使用数据库服务的一些说明

在文章开头介绍 BlueTrader 的时候提到过,BlueTrader 运行是需要后台数据库支持的,该数据库类型是 DB2,由 Bluemix 来提供,要使用这个数据库服务,我们需要在编写代码的时候做一点点工作,其中之一就是确定应用使用数据库服务的方式。在 Bluemix 里支持两种数据库的使用方式:

创建数据源的方式

这种方式,是用户在代码里定义好使用的数据源,比如 BlueTrader 定义了一个名为“TradeDataSource”的数据源,当在 Bluemix 中为 BlueTrader 绑定数据库服务的时候,需要创建一个同样名字的数据库实例,Bluemix 会根据名字将 BlueTrader 和后台的数据库实例建立关联,这一步很重要,如果名字不同,那么 BlueTrader 就会找不到合适的数据库来使用。

JDBC 连接串的方式

当在 Bluemix 中为应用程序绑定数据库服务的时候,会同时将数据库的连接信息(hostname, dbname, usernamd, password 等)写在一个名为“VCAP_SERVICES”的环境变量里,这就要求用户在程序里使用 System.getenv("VCAP_SREVICES") 去读取这些连接信息,然后将这些信息解析出来,拼一个数据库 JDBC 连接串连接数据库。下面是一个环境变量的例子:

{    "sqldb": [       {          "name": "TradeDataSource",          "label": "sqldb",          "plan": "sqldb_free",          "credentials": {             "port": 50000,             "db": "SQLDB",             "username": "user00969",             "host": "75.126.155.153",             "hostname": "75.126.155.153",             "jdbcurl": "jdbc:db2://75.126.155.153:50000/SQLDB",             "uri": "db2://user00969:PLsxUPGyIgAR@75.126.155.153:50000/SQLDB",             "password": "PLsxUPGyIgAR"          }       }    ] }

BlueTrader 使用的是数据源的方式,对于第二种方式,如果您有兴趣可以参考 Bluemix 的文档了解更详细的信息。

部署 BlueTrader 到 Bluemix

部署应用到 Bluemix 一共有两种方式,第一种是直接拖拽应用名称到 Servers 视图里的 IBM Bluemix 图标;第二种是在 Servers 视图里右击 IBM Bluemix,选择“Add and Remove”,在弹出窗口的左侧选中需要部署的应用,点击“Add”添加到右侧的配置框里。

图 15. 部署应用到 Bluemix

如何使用 IBM Bluemix 开发下一代云应用

单击“Finish”,会弹出应用的详细配置窗口,首先设置应用的名字,建议用户自行修改,并保证该名字在云上的唯一性,可以避免和其他用户的程序产生冲突。如下图:

图 16. 设置应用名称

如何使用 IBM Bluemix 开发下一代云应用

点击“Next”,配置应用部署的信息,基本保持默认就可以,需要注意的是要保证 Subdomain 在云上是唯一的,请您自行修改此处的配置。

图 17. 配置应用部署信息

如何使用 IBM Bluemix 开发下一代云应用

点击“Next”进入服务配置页面,点击下图红框处可以实时的将服务和应用绑定在一起,比如 BlueTrader 所需的数据库服务,由于后面我们会演示如何通过 Bluemix 控制台绑定服务,所以此处留空。

图 18. 绑定云服务

如何使用 IBM Bluemix 开发下一代云应用

点击“Finish”就会触发部署过程,在 Eclipse 的 Console 视图可以看到实时的日志输出,由于目前 Bluemix 的数据中心在国外,因为网络原因,所以部署过程会慢一点,大概需要 1 分钟左右(依赖于网速本身)。部署成功以后,会在 Servers 视图里看到应用的状态:

图 19. 成功部署 BlueTrader

如何使用 IBM Bluemix 开发下一代云应用

通过 Bluemix 控制台创建服务并绑定到应用

登录 Bluemix 控制台,在“DASHBORAD”页面,会看到我们刚刚部署成功的 BlueTrader。

图 20. Bluemix 应用列表

如何使用 IBM Bluemix 开发下一代云应用

点击上图红框的位置,进入应用的详细信息页面,点击左侧的“Overview”,在右侧的页面中可以看到“ADD A SERVICE”和“BIND A SERVICE”,如果之前创建过服务实例,则选择“BIND A SERVICE”去绑定一个已经存在服务,如果没有,则选择“ADD A SERVICE”创建并绑定一个新的服务实例。

图 21. 应用总览

如何使用 IBM Bluemix 开发下一代云应用

点击“ADD A SERVICE”进入服务选择列表,选择 DB2 数据库服务(SQL Database)

图 22. 选择 SQL Database 服务

如何使用 IBM Bluemix 开发下一代云应用

在数据库服务的配置页面,设置服务名称为“TradeDataSource”

图 23. 设置服务名称

如何使用 IBM Bluemix 开发下一代云应用

点击 “使用”(CREATE),Bluemix 会自动创建一个数据库实例,并绑定到应用程序上,如果出现“重新编译打包应用程序”的提示,点击 OK,激活数据库服务。

图 24. Restage 应用程序

如何使用 IBM Bluemix 开发下一代云应用

访问并浏览 BlueTrader

等待“Restage”过程结束,点击页面左侧的“Liberty for Java”可以看到数据库服务的连接信息,点击 Overview > ROUTES 来访问 BlueTrader 应用。(或者直接在浏览器输入:http://bluetraderdw.mybluemix.net/)

图 24. BlueTrader 主页

如何使用 IBM Bluemix 开发下一代云应用

要使用 BlueTrader 模拟股票交易,首先需要初始化数据库,创建数据库表并向表里插入一些用来模拟的用户以及股票信息,在 BlueTrader 主页点击 Trading&Portfolio > Populate DB first!

图 25. 初始化数据库

如何使用 IBM Bluemix 开发下一代云应用

等待初始化数据库完成以后,回到“Trading&Portfolio”页面,点击“Log In”登录 BlueTrader,用户名是:“uid:0, uid:1, uid:2.....” 密码统一是:“xxx”,登录后进入用户主页面:

图 26. 用户主页面

如何使用 IBM Bluemix 开发下一代云应用

接下来用户就可以模拟股票交易的操作了,在这里就不详细介绍了,有兴趣的您可以自行操作。

到此,BlueTrader 就已经完全运行在 Bluemix 上了。

修改 Trace 以及生产 Dump 文件

在进行问题诊断的时候,Trace 和 Dump 文件会对问题的解决有很大帮助,Bluemix 提供了图形化的支持来帮助用户修改应用程序的 Trace 和生成多种 Dump 文件,具体的使用方法是:

回到 Bluemix 控制台,进入到 BlueTrader 应用的 Overview 页面:

图 27. BlueTrader 运行时信息展示

如何使用 IBM Bluemix 开发下一代云应用

在 Instance Details 列表里选中要操作的 instance,并点击“转储”按钮,来生成 DUMP:

图 28. 选择需要生成 DUMP 的实例

如何使用 IBM Bluemix 开发下一代云应用

选择要生成的 DUMP 的类型,点击“GENERATE DUMP”按钮生成相应的 DUMP 文件,该 DUMP 文件可以下载到本地,借助专门的工具进行分析和问题诊断。

图 29. 生成 DUMP 文件

如何使用 IBM Bluemix 开发下一代云应用

修改 Trace 的方法和生成 DUMP 的操作是一致的,您可以自行修改。

使用弹性伸缩服务

弹性伸缩服务(Auto-Scaling)可以根据用户自定义的策略来自动的增加和减少运行时实例的数量。当用户访问量增加,现有运行时资源处理不了的时候,自动的增加实例的数量来增加处理能力,当用户访问量减少,自动的减去不必要的实例数量,节省资源的利用。

在自定义策略时,Auto-Scaling 服务支持的度量指标是:

表 1. Auto-Scaling 支持的度量单位
度量指标 描述 支持的运行时
JVM 堆 JVM 堆使用的百分比 Java(Liberty for Java)
内存 内存使用百分比 Java(Liberty for Java)
Node.js
Ruby
Bring your own runtime
吞吐量 应用程序的平均吞吐量 Java(Liberty for Java)
响应时间 应用程序的平均响应时间 Java(Liberty for Java)

要使用 Auto-Scaling 服务,首先需要将这个服务绑定到应用上,绑定方法请参照上文介绍的绑定数据库服务的例子,在应用程序 Overview 页面,点击“Add a Service”,在服务列表中选择“Auto-Scaling”服务:

图 30. 绑定 Auto-Scaling 服务

如何使用 IBM Bluemix 开发下一代云应用

绑定成功后,Auto-Scaling 服务的图标会出现在应用程序的 Overview 页面:

图 31. Auto-Scaling 服务

如何使用 IBM Bluemix 开发下一代云应用

点击上图 Auto-Scaling 图标进入服务的详细配置页面,在这里用户需要自定义弹性伸缩的策略,当策略的某一个条件被符合的时候,Auto-Scaling 服务就会自动的增加或者减少一个或多个运行时实例来满足不同的访问需求。

图 32. 设置 Auto-Scaling 策略

如何使用 IBM Bluemix 开发下一代云应用

如上图所示,我们选择了内存作为度量指标,并设置策略为:当内存使用率超出 80%时,增加一个应用实例,当内存使用率低于 30%时,减少一个应用实例。除此,Auto-Scaling 服务还支持按照时间来进行计划安排,如下图所示:

图 33. 计划安排

如何使用 IBM Bluemix 开发下一代云应用

企业或者个人可以根据应用程序在不同时间段的负载在定制计划安排,最大效率的利用云资源。

使用监控和日志分析服务

在 Bluemix 控制台上可以简单查看关于应用的一些日志,如下图所示:

图 34. 查看日志

如何使用 IBM Bluemix 开发下一代云应用

但是这些日志显示的内容有限,而且这些日志并不是持久化的,当重启应用的时候,这些日志会被删除,如果我们想更好的去查看分析日志,并且将日志持久化下来,那么就需要绑定 Bluemix 提供的监控和日志分析服务(Monitoring and Analytics)。参照上文,在应用程序 Overview 页面点击“Add a Service”绑定 Monitoring and Analytics 服务到 BlueTrader.

同样,在 BlueTrader 的 Overview 页面,点击 Monitoring and Analytics 图标,进入到监控和日子分析服务的详细页面,在这里页面里可以查看应用程序的一些状态信息,并且可以对应用进行性能监控和日志分析。

图 35. 应用程序可用性监控

如何使用 IBM Bluemix 开发下一代云应用

Monitoring and Analytics 服务会实时的显示过去 24 小时,应用程序的可用性和响应时间。

图 36. 应用程序性能监控

如何使用 IBM Bluemix 开发下一代云应用

同样,性能监控也是监控过去 24 小时应用程序的性能状况,这些性能参数包括:JVM CPU 使用率、平均线程池使用率、Java 堆使用率以及垃圾回收计数和持续时间。

图 37. 应用程序日志分析

如何使用 IBM Bluemix 开发下一代云应用

日志分析功能可以永久保存和应用程序相关的日志文件,并提供丰富的过滤和查找日志的功能,具体的使用方法可以参考服务的相关文档。

图 38. 事件通知功能

如何使用 IBM Bluemix 开发下一代云应用

通过事件策略配置,当应用程序出现某种意外事件时,系统会自动发邮件通知相关人员。目前支持的事件类型包括:可用性事件和性能事件。

图 39. 配置事件通知

如何使用 IBM Bluemix 开发下一代云应用

回页首

使用 CloudFoundry 命令行工具管理云应用

假设用户已经提前安装好了最新的 CloudFoundry 的命令行工具,本节来演示如何通过命令行工具与 Bluemix 进行交互,在 Bluemix 控制台上做的所有事情,都可以通过命令行来代替。

连接到 Bluemix

打开 windows 命令行窗口 cmd,运行如下命令连接到 Bluemix 上:

C:/Users/IBM_ADMIN>cf api https://api.ng.bluemix.net

Setting api endpoint to https://api.ng.bluemix.net...

OK

登录 Bluemix

运行 cf login 命令,输入之前注册的 Bluemix 账号登录:

C:/Users/IBM_ADMIN>cf login API endpoint: https://api.ng.bluemix.net  Email> bluemix_dev@163.com  Password> Authenticating... OK  Targeted org bluemix_dev@163.com  Targeted space dev  API endpoint:   https://api.ng.bluemix.net (API version: 2.14.0) User:           bluemix_dev@163.com Org:            bluemix_dev@163.com Space:          dev

登录成功后,您可以运行 cf -h 来获取帮助信息,下文简单介绍几个和应用相关的命令。

列出 Bluemix 上运行的应用

使用 cf apps 列出 Bluemix 上已经部署的应用:

C:/Users/IBM_ADMIN>cf apps Getting apps in org bluemix_dev@163.com / space dev as bluemix_dev@163.com... OK  name           requested state   instances   memory   disk   urls BlueTraderDW   started           1/1         512M     1G     BlueTraderDW.myblue mix.net j2ee-dw        started           1/1         512M     1G     j2ee-dw.mybluemix.n et

前文已经在 Bluemix 上部署了两个应用,如上所示。

部署应用到 Bluemix

使用 cf push 命令,可以从命令行部署应用到 Bluemix,这里还以 BlueTrader 为例,由于上文中已经部署过 BlueTrader,所以如果我们相同的应用名称再次部署的话,Bluemix 会用新的 war 去更新已经存在的部署。所以,更新应用和部署应用其实是一条相同的命令。为了看出这种差别,我们对 BlueTrader 进行一些修改:

打开 Eclipse,编辑 BlueTrader > WebContent > topBanner.html 对该文件做如下修改:

修改“BlueTrader”为“BlueTraderCMD”

图 40. 修改 BlueTrader

如何使用 IBM Bluemix 开发下一代云应用

保存修改,并将修改好的 BlueTrader 应用导出成 BlueTraderCMD.war 到本地。

使用如下命令去部署并更新我们之前已经部署好的 BlueTrader 应用。(注意应用的名字要上文用到的保持一致)

C:/Users/IBM_ADMIN>cf push BlueTraderDW -p C:/A_Workspace/BlueTraderCMD.war Updating app BlueTraderDW in org bluemix_dev@163.com / space dev as bluemix_dev@ 163.com... OK  Uploading BlueTraderDW... Uploading app files from: C:/A_Workspace/BlueTraderCMD.war Uploading 1.2M, 203 files Done uploading OK  Stopping app BlueTraderDW in org bluemix_dev@163.com / space dev as bluemix_dev@ 163.com... OK  Starting app BlueTraderDW in org bluemix_dev@163.com / space dev as bluemix_dev@ 163.com... -----> Downloaded app package (11M) -----> Downloaded app buildpack cache (4.0K)   -----> Liberty Buildpack Version: v1.21-20150811-1342 -----> Retrieving IBM 1.7.1_sr3fp10-20150708 JRE (ibm-java-jre-7.1-3.10-pxa6470_ 27sr3fp10-20150708_01-cloud.tgz) ... (0.0s)          Expanding JRE to .java ... (1.0s) -----> Retrieving App Management 1.7.0_20150729-1104 (app-mgmt_v1.7-20150729-110 4.zip) ... (0.0s)          Expanding App Management to .app-management (1.0s) -----> Downloading Auto-Scaling Agent 2015.01.14_0000 from output/serviceClient/ com.ibm.ws.cloudoe.autoscaling.agent.zip (0.0s)        Expanding Auto-Scaling Agent to .Auto-Scaling (0.0s) -----> Retrieving com.ibm.ws.liberty-2015.8.0.0-201508111342.tar.gz ... (0.0s)          Installing archive ... (0.9s) -----> Retrieving com.ibm.ws.liberty.ext-2015.8.0.0-201508111342.tar.gz ... (0.0 s)          Installing archive ... (0.8s) -----> Retrieving gdc-apd.tar.gz ... (0.0s)          Installing archive ... (0.2s) -----> Retrieving and installing client jar(s) from com.ibm.ws.icap.clientJars.d b2.zip (0.0s) -----> Warning: Liberty feature set is not specified. Using the default feature set: ["jsf-2.0", "jsp-2.2", "servlet-3.0", "ejbLite-3.1", "cdi-1.0", "jpa-2.0", "jdbc-4.0", "jndi-1.0", "managedBeans-1.0", "jaxrs-1.1"]. For the best results, explicitly set the features via the JBP_CONFIG_LIBERTY environment variable or d eploy the application as a server directory or packaged server with a custom ser ver.xml file. -----> Auto-configuration is creating config for service instance 'TradeDataSour ce' of type 'SQLDB' -----> Auto-configuration is creating config for service instance 'unknown' of t ype 'Auto-Scaling' -----> Auto-configuration is creating config for service instance 'Monitoring an d Analytics-uq' of type 'MonitoringAndAnalytics' -----> Liberty buildpack is done creating the droplet    -----> Uploading droplet (207M)  0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 1 of 1 instances running  App started   OK  App BlueTraderDW was started using this command `.liberty/initial_startup.rb`  Showing health and status for app BlueTraderDW in org bluemix_dev@163.com / spac e dev as bluemix_dev@163.com... OK  requested state: started instances: 1/1 usage: 512M x 1 instances urls: BlueTraderDW.mybluemix.net last uploaded: Fri Aug 21 10:13:36 UTC 2015 stack: lucid64       state     since                    cpu    memory           disk           d etails #0   running   2015-08-21 06:15:39 PM   3.6%   271.8M of 512M   311.5M of 1G

在浏览器中访问 BlueTrader,或者刷新之前打开的 BlueTrader 主页,可以再主页的最上方看到对 BlueTrader 的修改已经生效。

图 41. 更新后的 BlueTrader

如何使用 IBM Bluemix 开发下一代云应用

如果用户想了解更多的 cf 命令的使用,可以参考 cf 命令行的相关文档进行学习。

回页首

使用 DevOps 服务来简化运维和加速应用程序的开发

DevOps 服务是 Bluemix 平台提供的服务之一,主要用来简化应用程序的运维,代码托管,以及通过一些工具来加速应用程序的上线和更新。使用方法是:第一,可以通过在 Bluemix 控制台绑定服务的方式来使用;第二,访问 DevOps 站点,创建应用程序的仓库并上传应用代码到应用仓库,并且做一些配置和 Bluemix 进行关联。第二种方法更符合开发人员的使用习惯,所以在这里重点介绍第二种方法。

登录 DevOps 服务

使用前文 Bluemix 的账户可以直接登录 DevOps 服务,网址是: https://hub.jazz.net/

点击 SIGN IN > Sign in with your IBM id 使用 Bluemix 账号和密码登录,第一次登录会提示创建一个新的 Jazz ID, 任意输入唯一用户名,点击“Create”

图 42. 创建 Jazz ID

如何使用 IBM Bluemix 开发下一代云应用

创建新工程

在 DevOps 服务主页“MY PROJECT”选项卡下,点击“CREATE PROJECT”创建一个新的工程(仓库):

在新工程配置页面,做如下配置:

工程名称:BlueTrader

Code site: Create a Git repository

选中“Private”“Add features for Scrum development”以及“Deploy to Bluemix”,点击“CERATE”,如下图所示:

图 43. 配置 DevOps 工程一

如何使用 IBM Bluemix 开发下一代云应用

图 44. 配置 DevOps 工程二

如何使用 IBM Bluemix 开发下一代云应用

创建成功以后,Bluemix 账号的注册邮箱里会收到一封信,内容是关于新创建工程的,因为我们创建的是一个 Git 仓库,请您自行根据信里关于 Git 的描述,利用 EGit 插件或者 Git 命令行工具,将我们在 Eclipse 里开发的 BlueTrader 的代码上传到创建的 DevOps 工程里。如果不了解 Git 的使用方法,可以参考学习: https://hub.jazz.net/docs/reference/gitclient/

当成功上传代码到 DevOps 服务以后,打开新创建的 BlueTrader 工程的主页面,可以看到上传成功的代码:

图 45. 提交 BlueTrader 源码到 DevOps 服务

如何使用 IBM Bluemix 开发下一代云应用

您也可以直接访问 https://hub.jazz.net/project/bluemixdev/BlueTrader/overview 点击页面右上角的 “FORK PROJECT” 将 BlueTrader 直接

配置 BUILD & DEPLOY

要想从 DevOps 部署 BlueTrader 到 Bluemix,需要做一些配置,点击上图中的 BUILD&DEPLOY,进入配置页面

图 46. 配置 BUILD & DEPLOY

如何使用 IBM Bluemix 开发下一代云应用

点击“ADD STAGE”为 BlueTrader 应用设置一个构建程序,在这里我们选用 Ant 做为构建工具,根据我们的工程名称,参照下图配置,DevOps 会自动生成用户构建应用使用的 build.xml 文件。

图 47. 添加 STAGE

如何使用 IBM Bluemix 开发下一代云应用

接下来,需要添加一个 stage,用来配置一些应用程序在部署时的属性,点击“ADD STAGE”进入配置页面,在这个页面里,除了要配置 Bluemix 的信息外,还要指定和部署应用相关的信息,我们不准备部署一个新的 BlueTrader,因为在上文已经部署过一个,所以在这里我们把“Application Name”设置为上文部署的应用的名称,并对“Script”做了一点修改。如果您还想对部署应用有更多的设置,比如还想为应用程序分配内存,或者部署的时候部署多个实例,可以修改“Script”或者在应用程序根目录添加一个 manifest.yml 文件来指定,具体的细节请参照相关链接学习。

图 48. 添加 Stage

如何使用 IBM Bluemix 开发下一代云应用

点击“SAVE”完成配置工作,回到“BUILD&DEPLOY”主页面,如下图,可以看到我们刚刚做的配置, 并且 DevOps 服务自动检测到我们之前部署的同名的 BlueTrader 应用,并将其状态展示在 stage 列表里。这时可以点击红框“RUN STAGE”对应用程序进行自动构建,当构建好应用安装包后,DevOps 服务会根据 stage 配置,自动将新的安装包更新部署到 Bluemix 上。

图 49. RUN STAGE and DEPLOY

如何使用 IBM Bluemix 开发下一代云应用

打包加部署过程大概需要 1-2 分钟,部署成功后,可以访问 BlueTrader 进行验证。

在浏览器中调试代码并将更改实时更新到 Bluemix

DevOps 服务还提供了一个基于浏览器的 IDE,支持用户在浏览器里调试代码,加上我们上文配置的自动部署功能,用户对代码的修改可以实时的更新到 Bluemix,这一切工作都可以通过浏览器来完成,也就是说,用户不必随身携带笨重的电脑,是需要一个可以支持浏览器的移动设备(手机或者平板电脑灯)就可以完成代码的修改和应用程序的部署了。

点击 BlueTrader 代码仓库页面右上角的“DEIT CODE”进去基于浏览器的 IDE,在这里演示如何修改一个 HTML 页面,并且展示这个修改如何实时的自动的更新到 Bluemix 上。还记得我们上文修改过的 topBanner.html 文件吧,在这里我们同样修改这个文件,修改如下:

图 50. 在浏览器中修改 BlueTrader

如何使用 IBM Bluemix 开发下一代云应用

当修改完成后,DevOps 会自动保存修改,此时的修改并没有完成提交,点击左侧的“Git”按钮,进入代码修改提交页面,在这个页面,可以看到代码修改的详细信息。

图 51. 提交修改页面

如何使用 IBM Bluemix 开发下一代云应用

要想完成代码提交,需要完成两步操作:第一,在工作目录更改窗口,输入落实信息,并选择要落实的文件,点击右上角的“落实”;第二,点击“落实”后,新的提交会显示在左侧“传出”窗口,点击“推送”完成提交。

图 52. 完成代码提交一

如何使用 IBM Bluemix 开发下一代云应用

图 53. 完成代码提交二

如何使用 IBM Bluemix 开发下一代云应用

推送完成后,立即点击右上角的“BUILD&DEPLOY”按钮,可以看到 DevOps 服务检查到了我们的提交,并立刻执行构建程序,生成新的安装包,然后自动触发部署程序将新的安装包部署更新的 Bluemix 上(这个自动的过程是可以取消的,在配置 Builder 和 Stage 页面设置),如下图红框所示:

图 54. DevOps 服务自动构建并部署应用

如何使用 IBM Bluemix 开发下一代云应用

等待部署完成后,点击应用程序 BlueTrader 的访问链接,得到最新的修改版本,如下图:

图 55. 再次更新后的 BlueTrader

如何使用 IBM Bluemix 开发下一代云应用

从上图可以验证,通过浏览器 IDE 的修改已经生效并运行在 Bluemix 云平台上了。

回页首

总结

通过上文的介绍,相信您对 Bluemix 端到端的开发和使用有了一个比较详细的了解,由于篇幅有限,很多的细节都没能一一介绍,您可以通过留言或者邮件的方式寻求帮助,也可以自行查看 Bluemix 相关的文档学习。

通过这篇文章的介绍,可以看出 Bluemix 确实对传统的软件开发、部署以及运维进行了一些创新性的改变,特别是给程序员开发应用带来了很多便利,程序员可以把更多的精力放在应用逻辑代码的开发上,而不用分心诸如运行时环境搭建,后台服务配置等等这些琐碎的事情上,但是同时也要看到,Bluemix 在平台云这条道路上才刚刚起步,有很多不够完善的地方,还有很多的工作需要完成。希望本文可以做为一个引子,帮助大家去了解平台云给软件开发带来的变化,共同去推进云计算,特别是公有平台云健康发展。

最后,对 Bluemix 的特点做一个总结:

  • 快速灵活

加速应用上线,从零到生产只需要一条命令;IBM、第三方和开源 API 服务,帮助开发人员在几分钟内就能组合出一个应用程序,使其将所有的精力和时间放在 code 的编写和调优上,而不用去担心繁杂的平台基础架构和设施

  • 高效集成

构建混合云环境,连接到内部部署资产以及其他共有和私有云,实现新型应用程序与传统应用的无缝集成

  • 持续交付

开发与运营(DevOps),可以使用 Bluemix 提供的开发、监控、部署和日志工具,实现应用程序持续交付

  • 轻松上手

平台使用的语言,运行时,框架都是你已经熟知的,不需要新的学习成本

欢迎扫描下图二维码关注笔者的微信订阅号:LearningBluemix,该订阅号会定期发布学习 IBM 下一代云计算平台 Bluemix 的心得、收获、体会以及对相关云平台或者云计算技术的理解。

图 56. Learning Bluemix

如何使用 IBM Bluemix 开发下一代云应用
正文到此结束
Loading...