65.9K
CodeProject 正在变化。 阅读更多。
Home

让您的应用程序部署到 HP Cloud 变得非常简单

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2013 年 10 月 1 日

CPOL

6分钟阅读

viewsIcon

11758

轻松开发和部署您的应用程序到云

引言

本文介绍如何在 HP 公有云上部署您的应用程序。本文不侧重于如何开发应用程序,您最终只需要一个 WAR 文件上传到云端即可。

背景

本文不期望读者具备任何云计算方面的先验知识,但具备开发/部署 Java Web 服务的基础知识会有帮助,但并非强制要求。我已包含了一些用于安装软件包和配置应用程序的基本 Linux 命令。

开发您的 Java Web 服务/应用程序

您可以使用任何您喜欢的 Java Web 服务或应用程序开发方式,例如 Spring、Plain JSP/Servlet 等。在我们的案例中,我们使用了 Guice 和 Jersey 框架开发了一个轻量级的 RESTful Web 服务。应用程序开发完成后,您可以将 WAR 文件部署到 HP Cloud。

HP Cloud 控制台

步骤 1:从 HP Cloud 注册页面设置您的云账户(目前是 https://account.hpcloud.com/signup

  • 提供您的个人详细信息
  • 您会收到一封电子邮件,并使用电子邮件中的链接激活您的账户
  • 将您的账户与信用卡关联(别担心,他们不会收费,前 3 个月免费!!!)

步骤 2:登录云控制台(目前是 https://account.hpcloud.com/services,这可能会在将来发生变化)

步骤 3:创建安全组:HP 使用公钥加密,您需要创建一个安全组并将其分配给服务器

默认情况下,会激活区域:US West AZ 1,如果未激活,请点击“Activate”按钮;如果已激活,请点击“Manage”按钮。

需要配置的协议是 TCP、UDP 和 ICMP。点击“Security Groups”,点击“New Security Group”,提供名称(我倾向于使用后缀 sg 作为安全组,例如 sg__)和描述,然后点击该组的“Edit”按钮,选择协议“tcp”,将 From Port/ICMP Type 设置为 0,将 To Port/ICMP Code 设置为 65535,CIDR IPs 保留默认值:0.0.0.0/0,点击“Add”,同样方式为 UDP 添加,范围也是 0 到 65535。ICMP 用于 ping,ICMP 不使用端口,因此请输入 From Port: -1 和 To Port: -1

步骤 4:创建密钥对

输入密钥名称,我倾向于为密钥对添加后缀 kp。点击“Create Key”按钮,您的密钥对将被创建,并且会显示私钥的页面。下载私钥并将 pem 文件保存在本地计算机的安全位置,稍后我们将使用它通过 SSH 连接。

步骤 5:创建 Linux 实例

点击“Servers”选项卡,点击“Create a new server from an image”,提供服务器名称,例如 ws_dev01_sample,源镜像选择 Linux,Ubuntu Lucid 64 位,分配您在步骤 3 和 4 中创建的安全组和密钥对,并提供一个标签,例如“tag_dev_sample”,点击“Create”按钮,您的服务器将很快创建完成,并记下其公有 IP。

步骤 6:使用 SSH 连接到 Linux 实例

我推荐 Bitwise Tunnelier(http://www.bitvise.com/tunnelier),下载并安装 Tunnelier。从桌面打开“Bitwise SSH Client”,选择“Login”选项卡,将主机设置为您在步骤 4 中创建的 Linux 实例的公有 IP,端口保持 22。用户名输入“ubuntu”,点击“Use Key Pair Manager”按钮,点击“Import”按钮并选择您从步骤 4 获得的 pem 文件。在 Login TAB 中选择初始方法为“public Key Slot -1”并点击“Login”。Tunnelier 将加载您的私钥并打开一个 Linux 命令行界面和 FileZilla,用于在您的 Linux 实例和本地机器之间传输文件。

步骤 7:部署您的 WAR 文件

输入 sudo –s 以获取 root 权限

  1. 安装和配置 Oracle 或 Open JDK,Open JDK 默认会存在。
    • sudo apt-get update(这将用最新软件包更新系统)
    • apt-get install openjdk-6-jdk
    • export JRE_HOME=/usr/lib/jvm/java-6-openjdk/jre
    • 验证 java –version & javac –version
    • 安装 Tomcat Web 服务器
      • mkdir /usr/tomcat
      • cd /usr/tomcat
      • wget http://mirror.sdunix.com/apache/tomcat/tomcat-7/v7.0.42/bin/apache-tomcat-7.0.42.tar.gz
      • tar xvzf apache-tomcat-7.0.42.tar.gz(解压 tar 文件)
      • apache-tomcat-7.0.42/bin/startup.sh(启动 Tomcat)
      • 通过输入以下命令进行验证:从本地计算机的 Web 浏览器访问 :8080,如果出现 Tomcat 主页,则表示一切正常;否则,请检查您的 JRE_HOME 是否设置正确,它应指向 jre 文件夹,您可以通过以下命令查找:find / -name jre;如果仍然无法工作,请检查 apache-tomcat-7.0.42/log 文件夹下的 tomcat 日志,可能存在 JDK 和 Tomcat 版本不匹配的情况。
    • 部署您的 WAR 文件
      • 使用 Filezilla 将您的 war 文件上传到 /home/ubuntu 文件夹
      • 关闭 Tomcat 实例,输入 /usr/tomcat/ apache-tomcat-7.0.42/bin/shutdown.sh
      • 将 war 文件复制到 webapps 目录 cp /home/ubuntu/sample.war /usr/tomcat/apache-tomcat-7.0.42/webapps
      • 启动 tomcat,apache-tomcat-7.0.42/bin/startup.sh

现在您的应用程序已部署在 HP Cloud 中!!!

步骤 8:创建您的镜像或快照(可选)

现在您的应用程序已在一个实例上运行,您可以创建一个镜像/快照,并可以从该镜像快速启动多个实例。您无需再进行所有繁琐的配置。

  1. 点击“Images”选项卡
  2. 提供镜像名称
  3. 选择“from Server”作为您当前实例
  4. 提供描述并按“Create”,您的镜像将被创建。

步骤 9:从镜像创建新实例(可选)

  1. 点击“Servers”选项卡
  2. 点击“Create new Server from an Image”
  3. 提供服务器名称并选择您在步骤 7 中创建的快照作为源镜像
  4. 使用相同或不同的 Flavor/Security Group/Key Pair
  5. 按“Create”,您的新实例就绪,它是第一个实例的精确副本
  6. 参考步骤 #5,使用 SSH 登录到新实例,您会注意到所有软件包,如 JDK、Tomcat、MySQL 等都已安装,并且您的应用程序已存在于 webapps 目录中,启动 tomcat 服务器
  7. 您的新实例已就绪!!!

步骤 10:创建负载均衡器(可选)

由于您有多个实例,需要将它们置于负载均衡器后面。如果尚未完成,请启用负载均衡器,并使用 ROUND ROBIN 或 LEAST CONNECTIONS 算法创建新的负载均衡器

  1. 点击 Add Node,输入实例 1 的公有 IP 地址和端口 8080,点击 Create Node
  2. 为其他实例重复相同的步骤
  3. 使用 http:// 访问应用程序/

关注点

HP 还提供许多其他云服务,我认为数据库即服务 (DBaaS) 很有趣。您可以激活此服务,他们将提供一种基于 REST 的机制来创建数据库。创建数据库后,您可以使用 MySQL Workbench 或类似的工具进行连接,并创建表、存储过程等。HP Cloud 是一个 Openstack 实现。开放、基于 Web 的标准可确保可移植性并防止供应商锁定。基于开源的架构和 OpenStack API 意味着您可以自由选择开发平台和语言。仅按小时支付您分配的实例费用。没有最低收费或锁定期限,设置您的账户是免费的。我们之前使用的是 Amazon Cloud (AWS),迁移到 HP Cloud 后,成本大大降低。

© . All rights reserved.