在几分钟内构建和部署Java虚拟应用程序

云计算的目标之一就是让开发人员降低理解和管理软硬件基础架构的复杂性,使他们能够专注于应用程序的功能。这个目标通过基础架构即服务 (IaaS) 云和平台 (PaaS) 云在不同程度上得到了实现。IaaS 云提供了硬件并允许您携带自己的软件。PaaS 云还额外提供了软件,通常允许您关注于构建和部署应用程序、代表您处理基础架构和中间件的部署。本文简单调查了在云中运行 Java 的一些 PaaS 和 IaaS 选项,然后通过 IBM Application Pattern for Java 深入研究了 IBM 为您提供了什么。

云中的 Java 应用程序

大多数的云供应商都允许或支持在其云产品中使用 Java 技术。Amazon EC2 就是其中的一个例子,它实际上是一个 IaaS 云。您可以部署 Amazon Machine Images (AMI),Amazon 将其描述为 “一种特殊类型的预设置操作系统和虚拟应用程序软件,用于在 Amazon Elastic Compute Cloud (EC2) 中创建虚拟机”。也就是说,您需要部署一个包含了所需软件的自构建映像或预构建映像,并可包括一个 Java 运行时。

接下来的另一个例子是 Microsoft Azure 和 Salesforce.com Heroku。二者都是 PaaS 云,提供了软件环境并允许运行 Java 应用程序。不过,这二者中只有 Heroku 通过启用 OpenJDK 6 提供了 Java 运行时。对于 Azure,您必须提供自己的 Java 运行时。

Google App Engine 和 Amazon Elastic Beanstalk 提供了大多数的产品应用。您无需担心虚拟机和软件的安装;只需提供自己的应用程序即可。不过,您可以只运行基于 Web 的应用程序,而且这两项服务均对应用程序的功能强加了一些限制。

部署到 IBM 云中

IBM 的做法是提供一整套 IaaS 和 PaaS 类型的功能技术。IaaS 类型的功能示例是部署虚拟设备的功能。虚拟设备是使用标准的 Distributed Management Task Force (DMTF) Open Virtualization Format (OVF) 规范的某个映像中的预打包的软件堆栈,包含操作系统、软件应用程序、中间件、应用程序和额外的库以及用来配置和启用软件堆栈的元数据。它还支持使用脚本来重新配置此设备中包含的软件堆栈。

而更加类似 PaaS 的功能是由两种类型的工作负载模式提供的,即 虚拟系统 模式和虚拟应用程序 模式:

虚拟系统模式是一种以拓扑为中心的部署定义。Pattern Editor 使您能够通过定义一些虚拟机映像、将在这些虚拟机映像上安装软件组件和配置虚拟机映像所需的脚本包(元数据)来定义一种拓扑。为此,您可以使用手动创建的虚拟机、导入的虚拟机或者是一些 IBM Hypervisor Edition 映像。一旦为反复出现的拓扑和用来安装应用程序的配置脚本创建虚拟系统模式,就可以将它重用为一个标准的平台。 虚拟应用程序模式是一种以应用程序为中心的部署定义。Virtual Application Builder 使您能够配置应用程序本身、使用组件(包括数据库连接、消息队列等)所需的资源定义,以及包括可伸缩性、服务水平协议 (SLA) 等在内的策略。

图 1 展示了这三种部署到 IBM 云的机制:

图 1. 部署到 IBM 云的机制

表 1 对比了这三种部署机制各自的特点:

表 1. 部署机制的比较

虚拟设备 虚拟系统模式 虚拟应用程序模式

OS 上的标准软件安装和配置

传统监管和管理模型

基础架构驱动的弹性

通过扩展/捕获创建的映像

现有应用程序的标准的总体拥有成本 (TCO)

中间件技术的自动部署

传统监管和管理模型

应用程序和基础架构驱动的弹性

针对虚拟化应用程序而改进的 TCO

使用专家模式的高度自动化部署

利用弹性的工作负载管理服务

业务策略驱动的弹性

为云环境而构建

适用于云应用程序的最佳 TCO

IBM 云产品

虚拟设备、虚拟系统模式和虚拟应用程序模式在所有这三种 IBM 云产品中都可以使用。这些云产品既包括 IBM 提供的公共云,也包括用于私有云的集成了软硬件的设备:

IBM SmartCloud:IBM SmartCloud 是 IBM 托管的云,它可以是私有云,特定于某个给定的客户,也可以在完成配置后成为公共云。您可以将它想象成为 IBM 提供的云解决方案。 IBM Workload Deployer:IBM Workload Deployer 是一个硬件设备,提供了相应的配置和管理,可以将虚拟设备和工作负载模式部署到用户提供的硬件上,使现
有的硬件资源
具备云功能。您可以将它想象成为自带的云。 IBM PureApplication System:IBM PureApplication System 是一个优化了工作负载的集成式软件和硬件设备(提供了配置和管理功能),以及优化了的硬件,工作负载将部署在该硬件中。您可以将它想象成为云套装解决方案。

这三种产品使用了相同的部署和管理机制,这意味着能够轻松的将应用程序从一个产品到另一个产品,并且有可能采用使用了两个或多个部署产品的混合模型。

时间: 2024-10-22 09:28:45

在几分钟内构建和部署Java虚拟应用程序的相关文章

Visual Studio .NET使开发人员能够快速地构建和部署XML Web服务和应用程序

visual|web|web服务|xml|程序 Visual Studio .NET使开发人员能够快速地构建和部署XML Web服务和应用程序(2002.02.25)   来自:CSDN    华盛顿莱得蒙德,2002年2月8日 --四年以来,微软一直从事Microsoft .NET(公司下一代XML Web服务和应用程序的理念,它们以无缝的.安全的方式联接了整个互联网上的人.设备和信息)的基础工作.下周,微软将庆祝.NET的一个重要的里程碑--该工具将向全世界发行,通过程序员它将推动下一代的网

使用IBM Rational Application Developer V7.5和WAS V7.0构建Java EE应用程序

使用IBM Rational Application Developer V7.5和WebSphere Application Server V7.0构建Java EE应用程序 引言 本文向您介绍 IBM Rational Application Developer for WebSphere Software V7.5,并带您构建 JPA 实体.session bean,并将它 们部署到 IBM WebSphere V7.0 上. Java Platform, Enterprise Editi

联想企业网盘基于Docker构建分布式部署框架实践

本文讲的是联想企业网盘基于Docker构建分布式部署框架实践[编者的话]本文首先介绍了企业级分布式系统部署所面临的挑战,并且结合联想云存储自有框架研发经验分享了一些解决问题的思想和具体做法.最后还与Kubernetes项目进行了简单对比. 众所周知,企业网盘在这两年呈现爆发式增长,越来越多的企业选择企业网盘,来解决企业在业务过程中面临的数据集中存储.共享.分发.协同办公以及移动化等痛点需求.同时将企业网盘整合到各个业务系统中,大幅提高企业的数据流转效率和安全! 而联想企业网盘增长尤为迅速,仅联想

Tomcat部署Java Web项目教程

Tomcat是一个开源的且免费的Java Web服务器,常用来作为web开发的工具.它可以托管由servlet,JSP页面(动态内容),HTML页面,js,样式表,图片(静态内容)组成的Java Web应用程序. 部署方式 在阿里云服务器下部署JAVA提供三种部署方式: JAVA镜像部署 JAVA环境(CentOS7.2 Nginx Tomcat8 JDK) 一键安装包部署 OneinStack一键PHP JAVA安装工具<专业版> 手动部署(源码编译安装/YUM安装) 一般推荐镜像部署适合新

5个构建第一个Java镜像的小窍门

本文讲的是5个构建第一个Java镜像的小窍门[编者的话]Arun Gupta是<Docker for Java Developers>一书的作者,本文介绍了构建Java镜像的五个小窍门,从而以超越基本概念和框架的方式开启Docker容器之旅. 如果你是一个热切期待在你的组织内部迁移到容器技术的企业级软件开发人员,那么你会有更多的兴趣来学习Docker背后的基础概念以及围绕Docker的常用的编排框架.在本文中,我将就这些基本概念进行扩展并提供一些简单而使用的小窍门来构建你的第一个使用Java编

微技能|如何几分钟内建好企业网站?

对企业宣传来说,官网永远是最有效的线上营销,简单易懂高效的建站工具,则是解决成本的最佳方法.我们为大家Get这些建站工具与经验,或许能帮大家几分钟内建好企业网站,早日跟上互联网时代的福利. 建网站需要几个页面? 首页.新闻列表页及新闻页.产品列表页及产品页.单页,这几个页面基本就能满足企业的展示需要,并且网站结构是典型的3层式结构,易于搜索引擎爬行. 1)首页主要是放公司的重要信息如企业品牌标识.企业主要产品或服务等是企业形象的重要展示. 2)单页主要是放置企业的关于我们.联系方式.企业荣誉.企

《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic构建和部署》——2.2 容器式Linux系统的Docker配置

2.2 容器式Linux系统的Docker配置 我们使应用程序容器化,不遗余力地使其变小和变高效,但如果最终要将这些容器部署到缓慢.臃肿的操作系统中,那将使一切努力失去意义.在不断演进的容器模型中,既然容器已包含运行应用程序所需的可执行文件.库以及其他组件,宿主操作系统完全可以简化到只保留运行容器所需的功能. Project Atomic和CoreOS这两个项目的目标是提供专为运行容器而优化的操作系统.这样的操作系统既能够直接运行在硬件上,也能运行在公有云(如亚马逊的EC2或者Google Co

转 用十条命令在一分钟内检查Linux服务器性能

如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问题进行诊断. 概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. uptime dmesg | tail vmstat 1 mpstat -P ALL 1 pidstat 1 iostat -xz 1 free -m sar -n DEV 1 sar -n TCP,ETCP 1 top 其

基于Rational Team Concert和Gradle对项目进行持续构建与部署

引言 持续集成作为一种软件开发中的最佳实践被越来越多的项目组采用.因为项目在被持续的构建,团队成员可以更早地发现代码中被引入的错误,也更为方便的定位到错误是由谁在什么时候提交的哪一部分代码中引入的.由于持续地产出可部署的部件,虽然这些部件没有实现所有的功能,但却是可部署的,这让项目开发的整个过程变得更为可控.同时持续集成与测试驱动开发等其他软件开发最佳实践的结合更能代码健壮性和可靠性.下面我们将开始介绍如何搭建这样一个包含对项目进行持续构建与部署的持续集成环境. 下一代项目构建工具 Gradle