带你领略 IBM Bluemix平台云

正是基于这样的趋势,IBM 发布了自己的公有云产品,产品名称是 IBM Bluemix,目前正处在公开测试阶段。Bluemix 建立在 Apache 开源项目 Cloud Foundry 之上,并提供了 IBM 及其合作伙伴开发的高质量的服务(Services)供 IT 从业人员使用。本文以 Bluemix 平台的核心组件 - Bluemix Java 运行时为主线,来向读者介绍 IBM 公有云产品 Bluemix,和读者一起去领略平台云给 IT 带来的变化。

这是一个耳熟能详的传说:传说中,凤凰是人世间幸福的使者,每五百年,它就要背负着积累于人世间的所有不快和仇恨恩怨,投身于熊熊烈火中自焚,以生命和美丽的终结换取人世的祥和和幸福。在肉体经受了巨大的痛苦和轮回后它们才能获得更美好的躯体得以重生。佛教徒把这个故事称为“涅槃”。

的确,一切苦难和磨砺的尽头也是新的希望开始的地方。作为 IT 从业人员,特别是程序员的你,是否也想过或者期望经历这样的涅槃呢?如果你曾经或者现在正在经历如下的痛苦,那么 Bluemix 就是为你而准备的。

不停的安装各种运行时,容器以及繁杂的第三方依赖包 安装并配置一切必须的服务(数据库,移动服务等) 将所需的服务与应用进行关联,配置端口/IP/防火墙等 建立动态路由以及负载均衡机制 保证从底层到应用层各个层次的高可用性 确保日志的完整收集和高效分析 日常要做好应用的性能监控 保证应用可以根据负载的大小进行灵活的伸缩 最后,不断的重复着 开发》测试》上线 的轮回

Bluemix 带来了什么

Bluemix 致力于解决上述在软件开发过程中遇到的问题,旨在帮助程序员更快速的开发,测试,部署和运维云平台应用。

什么是 Bluemix?

简单的讲,Bluemix 就是一个开放的公有云平台,允许程序员在上面运行几乎所有类型的应用,而不用为硬件,软件,网络等其他因素分心。如上文提到,Bluemix 处于云世界的中间层,也就是 PaaS 层。如下图所示:

图 1. Bluemix 扮演的角色

通常来讲,所谓 PaaS 指的是运行在 Iaas 层上的一系列软件服务,并把服务器平台或开发环境作为一种服务提供给用户,也就是“平台即服务”。Bluemix 运行在 IBM 的 IaaS 层产品 Softlayer 之上。Softlayer 在 2013 年被 IBM 收购,其主要为用户提供企业级的 IT 基础设施的建设和解决方案,无论是在性能还是在安全性上都有很高的质量保证,有兴趣的读者可以参考文章最后的资源链接进一步学习。用户的应用程序通过很简单的操作(大部分场景只需要一条简单的命令即可)就能部署应用到 Bluemix 环境里,程序员不需要去关心底层的操作系统,运行时,网络等等一切和 code 本身无关的东西,而可以把全部的精力放到程序的设计和优化上。

选择 Bluemix 的理由

Bluemix 作为 PaaS 层产品给程序员带来了很多的优势:第一,节省时间和精力,程序员可以把所有的心思都放在应用程序的编写和调优上,而不用去担心繁杂的平台基础架构和设施,更有利于发掘程序员的创造力,开发出更高质量,高性能的应用;第二,加速应用程序上线,在实际的操作中,只需要简单的几条命令或者 UI 界面的几次点击操作就能轻松的完成各种应用程序的部署,而完全不用去担心硬件采购,软件安装等等这些先期准备工作;第三,很容易的满足应用程序对各种新功能和新服务的需求,IBM 及其合作伙伴负责提供优质的服务,程序员只需要简单的“绑定”操作就能将服务加入到应用程序中;第四,Bluemix 支持的语言,运行时,框架等都是程序员已经熟知的,采用 Bluemix 平台几乎不需要增加新的学习成本;最后一点是,Bluemix 底层采用 IaaS 是可以提供企业级需求的 Softlayer,可以有效的保证平台的高性能和高安全性。

目前,Bluemix 正处于公开测试阶段,程序员只需要简单的注册就能轻松的使用 Bluemix 提供的平台云服务。在测试阶段,每个注册账号可以获得 8G 的内存空间用来部署和运行足够多的应用,其中还包括多达 20 个云服务的使用权,注册网址是:www.bluemix.net

Bluemix 运行时和 Buildpacks

在 Bluemix 中程序运行时是以 Buildpacks 的形式提供给用户的,通过下面这张图,可以了解运行时和 Buildpack 的关系。

图 2. 图解 Buildpack

在 Bluemix 中自带四种 Bludpacks,分别是 Liberty for Java,Node.js,Ruby on Rails,Ruby Sinatra。如果部署的应用是上面四种语言之一,那么在部署应用的时候就不需要指定相应的 Buildpack,平台自身会根据部署的应用类型选择对应的 Buildpack。在本文开始的部分,我们提到 Bluemix 支持几乎所有类型的应用,那么除了上面四种应用,其他类型的应用又是通过什么方法进行部署呢?答案就是在部署应用的时候,明确的指定应用所需的 Buildpack 类型,这些 Buildpack 有的来自社区,有的来自程序员自己的开发,因为 Bluemix 是一个开放的云平台架构,允许第三方根据其标准去做一些客制化的拓展。下图所列的就是目前 Bluemi 支持的运行时类型。

图 3. 运行时(Runtimes)

Bluemix 提供的服务(Services)和功能插件(Add-Ons)

应用程序往往不是单独存在的,它需要额外的附加一些新的价值才能使其丰富起来,在 Bluemix 中这些应用程序的附加值是通过服务(Services)和功能插件(Add-Ons)来实现的。在 Bluemix 中,为程序员提供了分门别类的多种服务,这些服务主要包括:Web 和应用服务,移动开发服务,数据管理服务,大数据,DevOps 服务等等。Bluemix 可以做到以最小的代价将相应的服务添加到应用程序中,以此来丰富应用程序,这些操作既可以通过命令行,也可以通过基于浏览器的 UI 来完成。在使用过程中,用户可以创建多个服务的实例,同样多个应用也可以同时使用同一个服务实例。

功能插件(Add-Ons)可以理解成一种特殊的服务,这些功能插件是为运行时来提供更高层次的附加功能。用户可以根据自己的需求,选择应用是否连接到一个或者多个功能插件上,以此来丰富运行的应用程序。功能插件与服务的不同之处在于,同一个 Space 里,只能有一个功能插件实例,多个应用去连同一种功能插件的时候,实际上连的是同一个插件实例,共享同一份服务资源。

对于服务和功能插件来说,当某一个服务绑定到应用中,或者当应用连接到某一个功能插件上时,关于这个服务和功能插件的相关服务信息就会被写进一个成为“VCAP_SERVICES”的系统环境变量中,用户可以在代码里通过调用 System.getenv(“VCAP_SERVICES”) 来获取具体的信息,这些信息是遵循一定的格式的 JSON 字符串,例如对于某一个数据库的服务,读到的环境变量里主要就是数据库的连接信息,用户可以在应用程序里获取并建立与数据库的连接。

如何使用 Bluemix Java 运行时

BlueMix 为程序员提供了多种方法开发,测试应用并最终运行在 Bluemix 运行时中,本文主要关注 Bluemix Java 运行时,并向读者介绍最常用的几种方法,其他运行时的使用方法和本文介绍的类似,读者可以自行使用。

使用命令行工具部署和管理应用

命令行工具一直受大多数程序员欢迎,高效并且高性能,你想在 Bluemix 上做的任何事情,都可以通过命令行工具来完成。比如下面所列,是我们和应用打交道时用到的最频繁的操作。

应用的部署,启动,停止,重启以及删除、 服务的创建,绑定,以及解除绑定等操作 查看和监控应用程序的日志

命令行工具的安装也很简便,请首先阅读文章末尾的参考资源安装命令行工具。使用 Bluemix 之前,需要首先注册 Bluemix 账号,访问 www.bluemix.net 注册 Bluemix 账号,当这些都完成以后,让我们开始你的平台云之旅吧!

当使用命令行部署 Java EE 的应用到 Bluemix 的时候,Bluemix 支持三种格式应用的部署,分别是:WAR,EAR 以及直接上载一个 Liberty server 到 Bluemix。除了支持这三种格式的打包文件外,还支持将打包文件解压成目录结构,通过命令行将整个目录结构上传并部署到 Bluemix 环境。我们这里将以一个 WAR 应用为例子来详细讲解每一步的操作,关于其他两种格式的应用的部署与 WAR 应用的部署几乎是一样的,详细介绍请阅读参考资源——部署 Liberty 应用到 Bluemix。

登录 Bluemix

使用之前注册的用户名和密码登录到 Bluemix,为部署应用做准备:

首先,使用“cf api”建立于 Bluemix 的连接,连接地址是 https://api.ng.bluemix.net

清单 1. 连接 Bluemix

USAGE: cf api [URL]C:\Users\IBM_ADMIN>cf api https://api.ng.bluemix.netSetting api endpoint to https://api.ng.bluemix.net...OKAPI endpoint: https://api.ng.bluemix.net (API version: 2.2.0)Not logged in. Use 'cf login' to log in.

其次,运行“cf login”登录到 Bluemix 并选择所要工作的组织和空间

清单 2. 登录 Bluemix

USAGE: cf login [-a API_URL] [-u USERNAME] [-p PASSWORD] [-o ORG] [-s SPACE]C:\Users\IBM_ADMIN>cf loginAPI endpoint: https://api.ng.bluemix.netUsername> xiuleizh@cn.ibm.comPassword>Authenticating...OKSelect an org (or press enter to skip):1. xiuleizh@cn.ibm.com2. OE_Runtimes_SVTOrg> 1Targeted org xiuleizh@cn.ibm.comTargeted space devAPI endpoint: https://api.ng.bluemix.net (API version: 2.2.0)User: xiuleizh@cn.ibm.comOrg: xiuleizh@cn.ibm.comSpace: dev

部署应用到 Bluemix

本文提供一个例子应用供大家下载部署使用,这个应用是 HelloWithMongo.war,里面包含了一个简单的 servlet 以及一些对 Non-SQL 数据库 Mongo 的基本操作,在 Bluemix 提供的数据库服务里包含了 Mongo 数据库,我们直接拿来使用。

运行“cf push”命令来部署应用到 Bluemix:

清单 3. 部署应用到 Bluemix

USAGE: Push a single app (with or without a manifest): cf push APP [-b BUILDPACK_NAME] [-c COMMAND] [-d DOMAIN] [-f MANIFEST_PATH] [-i NUM_INSTANCES] [-m MEMORY] [-n HOST] [-p PATH] [-s STACK] [-t TIMEOUT] [--no-hostname] [--no-manifest] [--no-route] [--no-start]C:\Users\IBM_ADMIN>cf push HelloMongoDW -p C:\A_Workspace\apps\HelloWithMongo.warCreating app HelloMongoDW in org xiuleizh@cn.ibm.com / space dev as xiuleizh@cn.ibm.com...OKUsing route hellomongodw.ng.bluemix.netBinding hellomongodw.ng.bluemix.net to HelloMongoDW...OKUploading HelloMongoDW...Uploading from: C:\A_Workspace\apps\HelloWithMongo.war53.4K, 14 filesOKStarting app HelloMongoDW in org xiuleizh@cn.ibm.com / space dev as xiuleizh@cn.ibm.com...-----> Downloaded app package (484K)OKBuildpack Version: 20140527-0132-----> Downloading IBM 1.7.0 JRE from http://file.icap.cdl.ibm.com/icapShared/jre/ibm-java-jre-7.0-6.0-linux-x86_64-small-footprint-uncompressed-jar-20140116.tar.gz (0.0s) Expanding JRE to .java (1.2s)Downloading from output/wlp/com.ibm.ws.liberty-2014.4.0.0-201405270132.tar.gz ... (0.0s).Installing archive ... (0.6s).-----> Uploading droplet (93M)0 of 1 instances running, 1 starting1 of 1 instances runningApp startedShowing health and status for app HelloMongoDW in org xiuleizh@cn.ibm.com / space dev as xiuleizh@cn.ibm.com...OKrequested state: startedinstances: 1/1usage: 1G x 1 instancesurls: hellomongodw.ng.bluemix.net state since cpu memory disk#0 running 2014-05-30 06:45:02 PM 0.6% 329.8M of 1G 179.1M of 1G

部署成功以后可以运行“cf apps”查看应用的运行状态。在这里有几点需要说明:第一,<app_name>最好要做到唯一,不和部署在 Bluemix 上的其他应用重复,因为默认情况下这个<app_name>会和 domain 组成应用的访问连接,即:<app_name>.ng.bluemix.net,每一个应用的访问连接应该是唯一的,如果不是唯一,部署的过程中会报错提醒,我们只要换一个不一样的名字即可;第二,cf push 命令默认会将当前目录下的所有内容 push 到云端,除非我们显示的使用 –p 参数显示的指定要部署的内容;第三,从上面的输出中可以看到,应用的访问路径是“urls: hellomongodw.ng.bluemix.net”,即“http:// hellomongodw.ng.bluemix.net”,这也是默认的 Bluemix 中应用的访问路径的统一格式“appname.domain”。

时间: 2024-09-02 02:54:37

带你领略 IBM Bluemix平台云的相关文章

IBM Bluemix专属版企业级云平台今日在华正式投入使用

7月21日,IBM宣布Bluemix专属版在华正式投入使用,为中国用户提供物联网及认知计算服务. 据悉,专属版以基于OpenStack的私有云技术Bluebox为底层架构,为中国企业打造物理硬件独立的专属云环境,提供IBM云平台上的开发.部署.管理应用程序的各种资源,带来将专属云连接到公有云和本地云的混合体验. 同时,IBM中国研究院特别为中国用户开发出包含语音.自然语言处理.图像等在内的 中文认知计算服务,以及移动.数据与分析在内的相关服务.   IBM大中华区云计算总经理胡世忠表示,IBM云

利用SmartCloud Orchestrator构建IBM的通用云平台

使用 IBM SmartCloud Orchestrator,客户可以在基础设施和平台层面进行端到端的服务部署,可以自定义工作流用于过程自动化和 IT 管理.资源监控.成本管理等.SmartCloud Orchestrator 构建在 IBM 的通用云平台 Common Cloud Stack(CCS)之上,利用 CCS 的核心技术实现全面而高效的云系统管理. 由于篇幅限制,本文所介绍的功能不会覆盖 SmartCloud Orchestrator 的所有方面.但是通过本文,用户可以清楚的了解 I

“精灵学院”正式开课!老司机带你领略容器编排的魅力

"BuildShip & Run anywhere",是Docker技术的口号.这个问世没有多久却有革新整个IT行业之势的技术如今被越来越多的企业和个人所重视. 但是如何成为一个善用Docker的高手成为一个又快又稳的老司机呢 最直接的方法就是由另一个老司机来带带你 谢斌精灵云布道师致力于虚拟化和云平台研究已十余年不折不扣的Docker老司机.如今我们特意邀请他跟广大技术爱好者们好好聊聊Docker实践和容器编排并分享精灵云在容器.DevOps和微服务等领域多年的实践经验&qu

使用 IBM Bluemix 构建,部署和管理自定义应用程序

Bluemix 是由 IBM 实现的基于开放标准的云平台.它具有开放的架构,其允许组织能够在云上创建.开发和管理其应用程序.它基于 Cloud Foundry ,因此可以被视为平台即服务(PaaS).使用 Bluemix,开发人员不必关心云端配置,可以专注于他们的应用程序. 云端配置将由 Bluemix 自动完成. Bluemix 还提供了一个仪表板,通过它,开发人员可以创建,管理和查看服务和应用程序,同时还可以监控资源使用情况. 它支持以下编程语言: Java Python Ruby on R

IDC:IBM Bluemix 落地 中国PaaS市场竞争进入新阶段

IBM 于2015 年10月宣布与世纪互联合作,促使Bluemix正式在中国落地,并且在12月1日发布了Bluemix本地版本.IBM Bluemix的三个版本包括公有版.专有版和本地版,根据行业特性和客户需求为客户提供相应版本的云服务产品.公有版和专有版是真正意义上的公有云,而本地版则实际是为客户搭建自己的私有云.从这一策略上可以看出,IBM将以混合云模式来参与中国PaaS市场的竞争.其中金融.医疗等对网络安全.合规性要求较高的行业是其重点面向的客户. 随着IBM Bluemix.Oracle

IBM的开放云架构

简介 云计算正在改变我们看待技术的方式,它不会只是昙花一现.用户正在使用云存储音乐.创业公司正依靠云来起步和运行,摆脱巨额投资的需求.大型企业和政府正依靠云来使更多数据更容易访问.云计算正在改变企业和社会的运行方式,开启了丰富的创新途径.我们正在审视开发人员现在如何将记录系统与参与性系统相结合,我们看到了一种新的基于云的应用程序风格正在出现.这些应用程序就是交互系统. 这些应用程序要可持续发展,云计算需要构建于开源和标准之上.开源软件和开放标准的广泛采用应是每个人的目标.它意味着客户无需害怕供应

多米音乐完全攻略手册 带你领略不一样的视听盛宴

多米音乐(DuoMi)聚合互联网上数百万高品质的音乐资源,致力于带给亿万网民以最高质量的音乐享受.让高保真的音质与优美的画面与您爱音乐的心灵共舞.那今天就让我们走进个性化音乐服务平台多米音乐带你领略不一样的视听盛宴. 一.随时分享好音乐 如果你在使用多米音乐的时候听到了好听的歌曲,想要马上和朋友分享,只要在播放列表中右键单击鼠标"推荐给好友"选项,会弹出一个提示框,点击 "确定"按钮即可复制该首歌的在线链接.将该链接通过QQ/MSN等工具发给好友们,好友点击链接即可

利用IBM Bluemix快速且轻松地扩展您的应用程序能力

使用 Bluemix 和它满是服务的目录,所有这些操作只需单击一个按钮即可完成.IBM Bluemix 是 一款 beta 级产品,随着我们不断让其功能更加完善和更易于使用,它也将不断改进.我们会竭尽全力保持本文最新,但并不总是完全跟得上现状.感谢大家的理解! 使用 Bluemix 运行您的应用程序的最有吸引力的原因之一是,它快速且轻松地扩展您的应用程序的能力.使用传统的基础设施即服务 (IaaS) 产品,伸缩您的应用程序需要购买额外的虚拟映像,配置这些映像,在映像上部署您的应用程序,以及配置某

平台云基石-CoreOS之离线安装篇(无需互联网)

CoreOS是目前流行的平台云(PaaS)的基石(CoreOS+Docker),docker容器运行在CoreOS系统上.   CoreOS官方对自己的定义是-用于大规模服务器部署的Linux,关于CoreOS的好处请自行谷歌或百度.   CoreOS安装是比较麻烦的: a.cloud-config.yaml的配置 b.安装时coreos的镜像无法下载.就算可以下载我们在没有外网的情况下安装也存在难度   1.下载并刻录CoreOS光盘 下载地址 刻录建议用UltroISO,方便快速.   2.