云工具将 Java EE 带入 Amazon EC2

  • Dio Synodinos
  • 张龙

2008 年 6 月 1 日

话题:Java架构云计算DevOps语言 & 开发

POJOs in Action”的作者Chris Richardson发布了云工具(Cloud Tools),这是一套在 Amazon 的弹性计算云(Amazon's Elastic Computing Cloud,即 EC2)上部署和测试 Java EE 应用的工具,该工具基于Apache License 2.0

该云工具主要有三个组成部分

  • 用来运行 Tomcat 及与 EC2Deploy 协同工作的亚马逊机器映象(Amazon Machine Images——AMIs)
  • 核心框架——EC2Deploy
  • 一个使用 EC2Deploy 将 web 应用部署到 EC2 上的 Maven 插件

Chris Richardson 撰写了博文说明他为何创建云工具

计算机硬件以前是一种稀少而昂贵的资源。在计算处理的早期,很多开发者需要共享同一台机器。现在每个开发者都拥有自己的机器了,但很少人拥有一台以上的机器。这意味着运行性能测试常常要重新配置机器的环境。与此类似,甚至仅仅复制一部分产品环境也需要大量的工作。然而通过使用 EC2,这一切变得不同。有一套 Linux 服务器用来处理 web service 调用。根据服务器的类型,每台服务器每小时你只需要支付 10-80 美分,你最多可以使用 20 台服务器!无需其他费用,也不必再为购买和配置机器而苦等。

我创建 EC2Deploy 的目的是为了让企业 Java 开发者能更加轻松地使用 EC2。它是一个 Groovy 框架,用来将企业 Java 应用部署到一套 Amazon EC2 服务器上。EC2Deploy 提供了一个简单、易于使用的 API 以加载一套 EC2 实例;配置 MySQL、Apache 和一个或多个 Tomcata 服务器;还能部署一个或多个 Web 应用。此外,它还能运行 JMeter 并收集性能指标。

在项目的主页上就如何使用 Maven 插件将应用部署到 EC2 上有一个简短的介绍:

该 Maven 插件是使用云工具的最简单的方式。一旦你在 pom.xml 中配置好了插件,你就可以使用“mvn cloudtools:deploy”将你的 Web 应用部署到 EC2 上。这会:

  • 加载指定数量的 Amazon EC2 实例
  • 配置一个 MySQL 主数据库(master database):创建 schema,然后运行数据库初始化脚本
  • 配置零个或多个 MySQL 从属(slaves)(在不同的可用区域下可选)
  • 将你的 Web 应用上传到 EC2 上
  • 配置一个或多个 Tomcat 服务器,然后部署你的 Web 应用
  • 配置一个 Apache 实例以跨 Tomcat 服务器进行负载平衡

该云工具的 maven 插件还支持以下目标:

  • cloudtools:jmeter - 运行负载测试
  • cloudtools:redeploy - 重新部署 web 应用
  • cloudtools:dbsave - 在 S3 中保存数据库快照
  • cloudtools:dbrestore - 从 S3 中恢复数据库快照
  • cloudtools:clone - 创建集群拷贝
  • cloudtools:describe - 描述集群
  • cloudtools:list - 列出可用集群
  • cloudtools:stop - 关闭集群

增加了持久存储后,Amazon EC2在硬件资源的分配和管理上正在不断获得超越传统的动力,同时像云工具这样的软件的创建也拉开了整个 EC2 软件生态圈的序幕。

关于云计算更多的信息,请访问:http://www.infoq.com/cloud-computing

查看英文原文:Cloud Tools bring Java EE on Amazon EC2

Java架构云计算DevOps语言 & 开发