首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用 Node.js 为 Bluemix 和 SoftLayer 构建一个敏捷 SaaS 框架(1)

使用 Node.js 为 Bluemix 和 SoftLayer 构建一个敏捷 SaaS 框架(1)

软件即服务 (SaaS) 项目常常以 3 个主要组件开头:
  • 一个呈现给最终用户的基于浏览器的仪表板
  • 一个解释用户命令的控制服务器
  • 运行工作负载的云机器
“使用 Bluemix,只需几小时,就可以建立一个服务并试验代码。我可以向客户和团队提供一个有效的仪表板来执行快速评估。在                    SoftLayer 上,我可以配备强大的工作负载机器来执行主要的工作,轻松地将它们添加到我的 SaaS 应用程序中。”


在我们团队构建 SaaS 原型时,我发现此模式反复在出现。
IBM Bluemix™ 非常适合托管 Web 或移动仪表板,而 SoftLayer 擅长管理许多多用途的计算资源。惟一缺少的就是将它们连接在一起的粘连代码                (glue code)。
本教程将分享这种粘连代码,该代码可方便地提取到一个使用 SoftLayer、Bluemix 和 Web 或移动客户端的高度灵活的 SaaS                消息框架中。无论您是在折叠蛋白质(folding protein,是蛋白质获得其功能性结构和构象的过程)这类生物方面的应用还是在构建银行方面的应用,都可以扩展该框架来集成 Bluemix、SaaS 和 SoftLayer                服务,形成任何可想到的形式。Node.js 和 Socket.io                可用于实现无缝、可扩展的消息。所有部分都使用同一种语言编写:JavaScript。而且该框架是全功能的、可原封不动的使用,只需几分钟就可以正常运行。
完成您的应用程序的前提条件
  • 基本熟悉   或拥有学习的意愿。本教程包含掌握 Node                    的逐步操作说明。
  • 基本熟悉 JavaScript,或者至少对难懂的语言拥有一定的了解。
  • 一个   帐户(免费试用版就足够了)。
  • 一个 SoftLayer 帐户。(  实例就足够了。)
  • Cloud Foundry  。
第 1 步. 获取代码并在                Bluemix 上运行应用程序我们将立即行动,首先从最有趣的部分入手,然后很容易返回来并根据示例进行自定义。
  • 向上滚动并单击获取代码按钮,转到我的 DevOps Services                    项目。要获取代码副本并将其放在您的开发工作站上,可以单击概述页面上的 EDIT CODE,输入您的 DevOps                    Services 凭据,在左侧选择 jeffhoy | saastemplate,然后选择 File >                        Export Zip
  • 登录到  。
  • 在 Bluemix 仪表板上,单击 CREATE AN APP(一个较大的加号)并选择 SDK for                        Node.js
  • 为您的应用程序提供一个名称并挑选一个计划。
  • 打开下载的源代码中的 manifest.yml 文件,更新主机和名称字段,使之与您的新 Bluemix 应用程序的名称相匹配。
  • 现在您的项目已准备好上传到 Bluemix。在项目文件夹中打开一个 shell,使用  cf login 登录到                    Bluemix。
  • 运行 cf push projectname 将代码发送到 Bluemix,使用您在保留 Node.js                    实例时输入的项目名称。  >cf push saastemplate
    Using manifest file                        C:\framework\manifest.yml

    Updating app saastemplate in org jeffhoy                        / space dev as jeffhoy...
    OK

    Using route                        saastemplate.mybluemix.net
    Uploading saastemplate...
可以使用路由 URL 访问正在运行的应用程序,以便查看您的 SaaS 仪表板。该仪表板应类似于单击运行应用程序按钮(在本教程末尾的                    “ ” 一节中)时看到的仪表板。
当然,该仪表板没有连接任何代理 (agent),所以需要访问 SoftLayer 来连接另一半。
第 2 步. 在 SoftLayer                上运行代理这一步中的操作说明已针对 CentOS/RHEL 进行了调整,但它们很容易针对其他 Linux 或非 Linux® 操作系统而更新。

找到   并登录到管理门户。选择 Account                    > Place an Order 来订购一个新的虚拟服务器。如果仅测试一个演示应用程序,那么该服务器可以是一个 1 个核心/1GB                镜像的最低配置,您甚至可以使用已有的服务器(在 SoftLayer 或其他某个地方)。对于在演示应用程序中运行的服务器,我选择了 2 核/1GB 每月 CentOS 6                64 位的最低配置。
注册使用  
以 Internet 级别在一个全球云基础架构上进行构建。立即注册获得免费一个月的试用期。

作为一个虚拟服务器,该镜像只需几分钟即可配置好。配备完成后,可以在 SoftLayer 控制台的 Devices > Device                    List 上获取 SSH 访问细节。
您现在的目标是从 SoftLayer 服务器上的 source 根文件夹运行 agent.js。可以从项目源代码中的 /agent 子目录上传                agent.js。但为了简便起见,可从在 Bluemix 上运行的 Web 控制台获取 agent.js 和一个设置脚本。
最简单的方式是获取并运行 agentSetup.sh 脚本。使用以下代码获取脚本:
# wget https://saastemplate.mybluemix.net/agentSetup.sh
然后运行该脚本(将 projectname 替换为您的 Bluemix 项目的名称):
# sh agentSetup.sh projectname.mybluemix.net
该脚本安装了 Node.js 和所需的 Node 模块,并且加载了该代理来连接到 Bluemix 上的指定服务器。在命令输出的末尾处,该代理打印了一条                    Client connected 日志消息:
has-binary-data@0.1.1 (isarray@0.0.1) parseuri@0.0.2 (better-assert@1.0.1)                    socket.io-parser@2.2.0 (isarray@0.0.1, emitter@1.0.1, json3@3.2.6)                    engine.io-client@1.3.1 (component-inherit@0.0.3, xmlhttprequest...) Agent                    running with connection to https://saastemplate.mybluemix.net Client connected,                    registering server: frameworkagent.softlayer.com
您可能注意到,在 Bluemix 上运行时,该代理使用了 https:// 来建立连接,而不是开发环境中使用的                http://。另请注意,如果将此应用程序部署到生产环境中,您可能希望以系统服务或屏幕 shell 的形式运行该代理,以便预防 SSH 挂起结束该代理。
现在返回到 https://projectname.mybluemix.net 上正在运行的应用程序,您将看到代理表中列出了新服务器。
您的 SaaS 框架现在已能够完全正常地运行。
返回列表