详解IBM Bluemix端到端开发体验


概述

2013 年 6 月底, IBM  发布了公有 PaaS  云平台—— Bluemix 。 IBM Bluemix 是一个供开发人员在云中快速开发、创建、部署和管理应用程序,而不用关心底层基础架构的地方。在实际的使用中,只需要简单的几条命令或者控制台界面的几次点击操作就能轻松的完成整个应用程序生命周期的管理。 IBM Bluemix 为开发人员和企业用户提供了一整套的应用程序服务,通过与合作伙伴以及开源社区的合作, Bluemix 提供了一系列高质量的云计算服务。 Bluemix 现在几乎可以提供应图用程序整个生名周期所需要的一切服务,这些服务都是所见即所得,只需要简单的几个操作和很少的工作量就可以快速的加入到应用程序中,帮助并加快应用程序开发和上线,简化运维。

本文将从一个开发人员的角度,重点介绍 Bluemix 端到端的开发体验,全文会通过一个实际的例子,将 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

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.  演示实例架构图

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

图  3 .  克隆 BlueTrader 源码

初探 Bluemix

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

登录 Bluemix

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

图  4 .  首次登录 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 页面点击 CREATE AN APP ,页面会跳转至 CATALOG 页面,我们在这里创建一个运行在 Liberty 上的 J2EE 应用,单击选择 Liberty 运行时,如下图:

图  5 .  选择 Liberty 运行时

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

图  6 .  配置应用信息

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

图  7 .  应用详细信息

通过以上几步的操作,用户需要关心任何底层架构以及服务器,运行时等的搭建和配置,只需要关注在应用程序的配置上,就能很快的将一个 J2EE 的应用创建并部署在 Bluemix 上,当然,此时的应用仅仅是一个没有任何业务逻辑的模板,只是为了让读者很快的了解到 Bluemix 带来的一些变化和便利,我们需要对应用程序进行进一步的开发,添加逻辑,然后再将应用部署在云上,才能完成应用程序的开发过程。具体的方法是在上图中点击“ VIEW QUICK START ”会弹出一个帮助窗口,如下图:

图  8 .  QUICK START

点击“ Download the starter application package ”下载模板引用的压缩包到本地,然后再倒入到 Eclipse 里进行本地业务逻辑开发,工程结构是:

图 9. 模板应用工程结构

从 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 工程结构

创建 Bluemix 服务器定义

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

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

图 11. 打开 Servers 视图

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

图 12. 选择 IBM Bluemix 类型

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

图 13. 配置 IBM Bluemix 账户

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

图 14. 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

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

图 16. 设置应用名称

点击“ Next ”,配置应用部署的信息,基本保持默认就可以

图 17. 配置应用部署信息

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

图 18. 绑定云服务

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

图 19. 成功部署 BlueTrader

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

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

图 20. Bluemix 应用列表

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

图 21. 应用总览

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

图 22. 选择 SQL Database 服务

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

图 23. 设置服务名称

点击“ CREATE ”, Bluemix 会自动创建一个数据库实例,并绑定到应用程序上,如果出现“ Restage Application ”的提示,点击 OK ,激活数据库服务。

图 24. Restage 应用程序

访问并浏览 BlueTrader

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

图 24. BlueTrader 主页

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

图  25 .  初始化数据库

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

图  26 .  用户主页面

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

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

修改 Trace 以及生产 Dump 文件

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

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

图  27 .  BlueTrader 运行时信息展示

在 Instance Details 列表里选中要操作的 instance ,并点击“ ACTIONS ”按钮,选择相应的操作,比如 DUMP:

图  28 .  选择生成 DUMP

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

图  29 .  生成 DUMP 文件

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

使用弹性伸缩服务

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

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

图  30 .  绑定 Auto-Scaling 服务

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

图  31 .  Auto-Scaling 服务

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

图  32 .  设置 Auto-Scaling 策略

关于Auto-Scaling 的配置又是一个比较复杂的命题,本文的关注点在端到端的开发体验,这部分的内容就不再详细介绍,在后续的文章里会覆盖这方面的内容,在 Bluemix 的文档里可以找到详细的描述。

使用监控和日志分析服务

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

图  33 .  查看日志

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

图  34 .  绑定监控和日志分析服务

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

图  35 .  使用监控和日志分析服务

使用 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

BlueTrader20141218   started           1/1         512M     1G     BlueTrader201

41218.mybluemix.net

j2ee-csdn            started           1/1         512M     1G     j2ee-csdn.myb

luemix.net

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

部署应用到 Bluemix

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

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

修改“ BlueTrader ”为“ BlueTraderCMD ”

图  36 .  修改 BlueTrader

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

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

C:/Users/IBM_ADMIN>cf push BlueTrader20141218 -p C:/A_Workspace/BlueTraderCMD.war

Updating app BlueTrader20141218 in org bluemix_dev@163.com / space dev as bluemi

x_dev@163.com…

OK

Uploading BlueTrader20141218…

Uploading app files from: C:/A_Workspace/BlueTraderCMD.war

Uploading 1.2M, 203 files

Done uploading

OK

Stopping app BlueTrader20141218 in org bluemix_dev@163.com / space dev as bluemi

x_dev@163.com…

OK

Starting app BlueTrader20141218 in org bluemix_dev@163.com / space dev as bluemi

x_dev@163.com…

—–> Liberty Buildpack Version: v1.9-20141202-0947

—–> Retrieving IBM 1.7.1 JRE (ibm-java-jre-7.1-1.0-pxa6470_27sr2ifx-20141115_

01-sfj.tgz) … (0.0s)

—–> Retrieving App Management Agent 1.0.0_master (com.ibm.ws.cloudoe.app-mgmt

-liberty.zip) … (0.0s)

—–> Retrieving com.ibm.ws.liberty-2014.11.0.0-201412020947.tar.gz … (0.0s)

—–> Retrieving and installing client jar(s) from com.ibm.ws.icap.clientJars.d

b2.zip (0.0s)

—–> Auto-configuration is creating config for service instance ‘TradeDataSour

ce’ of type ‘SQLDB’

—–> Liberty buildpack is done creating the droplet

—–> Uploading droplet (122M)

0 of 1 instances running, 1 starting

1 of 1 instances running

App started

OK

App BlueTrader20141218 was started using this command .liberty/initial_startup.</p><p>rb

Showing health and status for app BlueTrader20141218 in org bluemix_dev@163.com

/ space dev as bluemix_dev@163.com…

OK

requested state: started

instances: 1/1

usage: 512M x 1 instances

urls: BlueTrader20141218.mybluemix.net

last uploaded: Fri Dec 19 05:15:19 +0000 2014

state     since                    cpu    memory           disk

#0   running   2014-12-19 01:16:17 PM   0.5%   102.9M of 512M   166.8M of 1G

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

图  37 .  更新后的 BlueTrader

如果用户想了解更多的 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 ”

图  38 .  创建 Jazz ID

创建新工程

在 DevOps 服务主页点击“ Start coding ”创建一个新的工程(仓库):

图  39 .  创建新工程

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

工程名称: BlueTrader

Code site: Create a Git repository

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

图  40 .  配置 DevOps 工程一

图  41 .  配置 DevOps 工程二

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

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

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

配置 BUILD & DEPLOY

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

图  43 .  配置 BUILD & DEPLOY

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

图  44 .  添加 Builder

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

图  45 .  添加 Stage

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

图  46 .  REQUEST BUILD and DEPLOY

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

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

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

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

图  47.  在浏览器中修改 BlueTrader

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

图  48.  提交修改页面

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

图  49.  完成代码提交一

图  50.  完成代码提交二

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

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

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

图  52.  再次更新后的 BlueTrader

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

总结

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

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

目前,公有云平台的厂商越来越多,竞争也越来越激烈,国内有阿里云,国外有亚马逊、微软、谷歌等,这些厂商提供的公有云平台各有利弊,笔者做为 IBM Bluemix 从业人员,不要探讨这些产品利弊,在这里只想谈谈 Bluemix 的优势,一家之言,仅供参考,欢迎大家讨论赐教,指出不足。 Bluemix 的优点可以总结为 :

  • 依赖与 IBM 广泛的软件产品, Bluemix 将这些产品(例如: Watson )以服务的形式整合在云平台上,用户可以很方便的使用,这些服务所见即所得,可以很好的支撑用户的业务发展。
  • Bluemix底层是 Softlayer ,提供企业级的安全保障
  • Bluemix近期推出了除了公有云版本之外的“企业专有版”( Dedicated Bluemix ),适用于那些对安全问题要求比较高的用户
  • 支持多种开发工具(桌面 IDE 以及浏览器开发等)

相关文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值