用Java进行Cloud开发的简介和工具

如今,“云”已成为业界最热门的话题。每个人似乎都在朝着它冲来。所有财大气粗的大公司都在投资或利用它。同时,对于大多数开发人员来说,这似乎是一个难题。让我们今天解决这个难题,并了解其确切含义。什么使云如此有趣和有用?还有更重要的问题,当我们谈论开发时,对于我们作为开发人员有什么帮助。

目录

云计算的云计算
优势是
什么云服务交付模型
	-基础架构即服务(IaaS)
	-平台即服务(PaaS)
	-软件即服务(SaaS)
云部署模型
	-公共云
	-私有云
	-混合云
Java云开发工具
	Oracle Java Cloud Service 
	适用于Java的AWS 
	开发工具Baidu Baidu App Engine 
	Cloudfoundry 
	Heroku Java 
	Jelastic 
	IBM SmartCloud 
	Openshift

什么是云计算

简而言之,云计算就是基于互联网的计算。通常,术语“云”用于指代用于分布式计算的平台。如Wiki中所述,“云计算,也是按需计算,是一种基于Internet的计算,可根据需要向计算机和其他设备提供共享的处理资源和数据。”

作为普通用户,当您检查电子邮件或在Internet上搜索某些内容时,您会从很少的云功能中受益。在这些示例中,使用了处理技术的功能,该功能存在于遥远的位置,并且用户不知道。还有许多其他这样的示例,例如在Dropbox中存储或在Baidu驱动器中保存文档。所有这些都是由云驱动的。当我们开始研究云的5个基本特征时,您将获得更多见解。

  1. 按需功能

    用户能够在不需要人工干预的情况下配置云计算资源,这通常是通过基于Web的自助服务门户完成的。从SMTP服务器到以GB为单位的存储限制,这些资源可以是任何东西。您应该要做的就是–登录控制台并添加/删除所需的服务。

  2. 广泛的网络访问

    所有云服务都必须可以通过网络访问,并且对可以连接到它们的客户端应用程序没有任何限制。一个人应该能够使用办公台式机,笔记本电脑或他的手机/智能手机连接到云接口。这种移动性对企业特别有吸引力,因此在上班时间或下班时间,无论是在路上还是在办公室中,员工都可以随时随地关注项目,约定和客户。

  3. 资源池

    使用多租户模型将提供商的计算资源集中起来,为多个消费者提供服务,并根据消费者需求动态分配和重新分配不同的物理和虚拟资源。资源包括存储,处理,内存,网络带宽,虚拟机和电子邮件服务等。

  4. 快速弹性

    资源是根据触发器或参数按需配置和/或自动分配和释放的。这将确保您的应用程序在任何时间点都具有所需的容量。例如,在应用程序的最大负载上,云将为您分配资源来处理所有任务-但是在负载较低时,这些资源将为其他一些客户端提供服务。

  5. 实测服务

    根据使用情况透明地监视,测量和报告(计费)资源使用情况。如果您已经使用或知道亚马逊云基础架构,那么它会为您提供数百种服务-但是您只需要为每月使用的服务和消耗的资源付费。用简单的英语来说,这是按使用付费

云计算的优势

今天,如果您在Facebook上发布身份,预订机票或通过移动设备转帐资金,则很有可能正在使用后端云提供的某些服务。越来越多的组织以非常快的速度向云迁移,为什么呢?这是因为云计算可提高效率,帮助改善现金 Stream 并提供更多好处-同时有效解决小型企业每天面临的一些最复杂的问题。让我们列出一些好处,云提供:

  • 高可用性:大多数云提供商在提供服务方面都非常可靠,许多提供商都保持99.99%的正常运行时间。连接始终处于打开状态,这意味着您的应用程序始终处于运行状态。
  • 可伸缩性和性能:迁移到云使所有人都能使用企业级技术。它还允许小型企业比大型,成熟的竞争对手采取行动更快。随用随付服务和云业务应用程序意味着小型公司可以与大型公司一起运行,扰乱市场,同时保持精简和灵活。
  • 自动备份和恢复:云提供商为您提供了安排备份的功能,因此您不会由于端到端或其他任何因素而导致数据丢失。您已经有了备份,只需很少的鼠标单击就可以回滚到最小的工作量。
  • 最新,及时的更新:云提供商会为您照顾软件,并定期发布软件更新(包括安全更新),因此您不必担心浪费时间自己维护系统。让您可以自由地专注于重要的事情,例如发展业务。
  • 具有成本效益:也许,最显着的云计算优势在于节省IT成本。借助云计算,您可以在内部服务器存储和应用程序需求为零的情况下节省大量的资金成本。缺乏内部部署基础架构还消除了相关的运营成本,包括电力,空调和管理成本。您需要为使用的东西付费,并可以随时删除。

云服务交付模型

云基础架构的交付模型可以大致分为基础架构即服务(IaaS),平台即服务(PaaS)或软件即服务(SaaS)。让我们详细看看它们。

基础架构即服务(IaaS)

IaaS提供物理计算机或(通常)虚拟机和其他物理资源。如果您在博客世界中,或者对服务器基础结构感到好奇,则可以将其与托管服务器,内存和网络相关联。所有基础结构服务,例如计算机,存储设备和路由器,都属于此类别。它们主要是基于虚拟机的解决方案,其中根据您的成本向您分配了一定数量的资源。亚马逊,Rackspace,微软,Bluehost和Godaddy等公司是IaaS的领先提供商。

请注意,IaaS可能不包含与它捆绑在一起的软件,您完全可以自己安装和配置所需的软件和数据库,因为云供应商很可能会提供适当的工具来帮助您这样做。

此外,云提供商可能会在收取象征性费用后向您出售预配置的资源和基础架构。

平台即服务(PaaS)

PaaS供应商为应用程序开发人员提供了开发环境。在PaaS模型中,云提供商提供了一个计算平台,通常包括操作系统,编程语言执行环境,数据库和Web服务器。应用程序开发人员可以在云平台上开发和运行其软件解决方案,而无需购买和管理基础硬件和软件层的成本和复杂性。

平台即服务(PaaS)使用者不管理或控制底层的云基础架构,包括网络,服务器,操作系统或存储,但是可以控制已部署的应用程序以及应用程序托管环境的可能配置设置。

软件即服务(SaaS)

在SaaS模型中,用户可以访问特定的应用程序软件和数据库。云提供商管理运行应用程序的基础架构和平台。SaaS有时被称为“按需软件”,通常按使用情况付费或使用订阅费(例如每月或每年)定价。

提供的服务包括:

  • 企业服务,例如工作 Stream 管理,群件和协作,供应链,通信,数字签名,客户关系管理(CRM),桌面软件,财务管理,地理空间和搜索。
  • Web 2.0应用程序,例如元数据管理,社交网络,博客,Wiki服务和门户网站服务。

云部署模型

部署模型主要是指为单个或多个组织提供的服务。它们分为3个主要类别:

公有云

当通过开放供公众使用的网络提供服务时,云被称为“公共云”。通常,诸如Amazon AWS,Microsoft和Baidu之类的公共云服务提供商在其数据中心拥有并运营基础架构,并且通常通过Internet进行访问。

资源使用可以是收费的还是免费的-取决于提供给提供者的服务和基于服务的服务。

私有云

私有云是专门为单个组织运营的云基础架构,无论是内部管理还是第三方管理。这需要大量的参与才能虚拟化整个业务环境。如果经常提高业务能力,但是项目的每个步骤都会引发安全问题,必须解决这些问题以防止出现严重的漏洞。

私有云可以托管在IT组织内部,或者像Rackspace这样的云供应商可以为特定公司自定义其基础架构的一部分。

混合云

混合云是由两个或更多云(私有云,社区云或公共云)组成的,这些云仍然是不同的单元,但被捆绑在一起,提供了多种部署模型的优势。

例如,组织可以将敏感的客户端数据存储在私有云应用程序的内部,但可以将该应用程序与作为软件服务在公共云上提供的商业智能应用程序互连。

Java Cloud开发工具

  1. Oracle Java云服务

    Oracle Java Cloud Service是Oracle Cloud中平台服务产品的一部分。通过使用Oracle Java Cloud Service,您可以快速创建和配置Oracle WebLogic Server域并设置Java EE应用程序环境,而不必担心自己设置任何基础结构或平台详细信息。您创建的所有Oracle Java Cloud Service实例也都进行了预配置,以使用Oracle Database Cloud(数据库即服务)中的实例以及在Oracle Storage Cloud Service中创建的对象存储容器。

    创建Oracle Java Cloud Service实例时,可以选择专为满足更高可用性需求而设计的环境,例如用户验收测试,登台和生产,或者专为开发和测试而设计的环境。

    您可以请求Oracle Java Cloud Service的试用订阅或购买订阅。

  2. 适用于Java的AWS开发工具包

    Amazon提供了在AWS云上开发安全,可靠和可扩展的Java应用程序所需的所有工具,文档和示例代码。Eclipse Java IDE用户可以使用适用于Eclipse的AWS工具包轻松地开始使用SDK。适用于Eclipse 的AWS Toolkit是Eclipse Java IDE的插件,使开发人员可以更轻松地使用Amazon Web Services开发,部署和调试Java应用程序。

    Amazon还为许多AWS服务(包括Amazon S3,Amazon EC2,DynamoDB等)提供了一组专用的API。单个可下载的软件包包括AWS Java库,代码示例和文档。

  3. Baidu App引擎

    随着 Stream 量和数据存储需求的变化,Baidu App Engine应用程序易于创建,易于维护并且易于扩展。使用App Engine,无需维护任何服务器。您只需上传您的应用程序即可使用。

    App Engine允许您使用Servlet或侦听端口的服务器代码轻松部署和运行标准Java Web应用程序8080。App Engine应用程序会根据传入 Stream 量自动扩展。负载平衡,微服务,授权,SQL和noSQL数据库,内存缓存, Stream 量拆分,日志记录,搜索,版本控制,推出和回滚以及安全扫描均受本机支持,并且可以高度自定义。

    要在App Engine上运行应用程序,您需要:

    • 一个app.yaml描述应用程序运行时配置的文件,其中包括最小和最大实例数以及所需的CPU和RAM。
    • 一个pom.xml描述包文件相关的应用程序。
    • 您的Java应用程序代码。

    除了这些要求之外,App Engine通常与您要使用的开发工具,框架和库无关。

  4. Cloudfoundry

    Cloud Foundry是一个开源的云计算平台即服务(PaaS),最初由VMware开发,现在归Pivotal Software所有,后者是由EMC,VMware和General Electric合资成立的。

    Cloud Foundry支持从初始开发到所有测试阶段再到部署的整个生命周期。因此,它非常适合连续交付策略。用户可以访问一个或多个空间,这些空间通常对应于生命周期阶段。例如,可以将准备进行质量检查的应用程序推送(部署)到其项目的质量检查空间。可以将不同的用户限制在具有不同访问权限的不同空间中。

    Cloud Foundry有三种口味。

    Cloud Foundry开源软件(OSS):任何人都可以使用。部署此版本的Cloud Foundry涉及使用Cloud Foundry BOSH(高级外壳)部署脚本语言(Pivotal的另一种开源工具)与基础架构进行接口。百度网站在OSS Cloud Foundry上实现。

    Pivotal Cloud Foundry(Pivotal CF):可从Pivotal获得的商业产品。它提供了OSS产品中未包含的用于安装和管理的额外工具。

    Pivotal Web Services(PWS):托管在Amazon Web Services(AWS)上的Pivotal Cloud Foundry实例。

  5. Heroku Java

    Heroku是基于托管容器系统的云平台即服务(PaaS)平台,具有集成的数据服务和强大的生态系统,用于部署和运行现代应用程序。Heroku开发人员的经验是一种以应用程序为中心的软件交付方法,并与当今最受欢迎的开发人员工具和工作 Stream 集成在一起。

    Heroku支持多种编程语言,例如Java,Node.js,Scala,Clojure,Python,PHP和Go。Heroku使在云中轻松部署和扩展Java应用程序变得容易。无论您是喜欢将标准库与Tomcat或Jetty之类的应用服务器一起使用,还是与Spring或Play之类的框架一起使用,Heroku都不会妨碍您-允许您使用自己喜欢的工具构建自己的东西。

  6. 杰弹性

    Jelastic(Java Elastic的缩写)是在单个平台内无限制的基于PaaS和容器的IaaS,可提供高可用性的应用程序,自动垂直和水平缩放。Jelastic提供了复杂的PaaS(如Heroku)的所有功能,但还集成了基础架构即服务(如Amazon)的关键元素。他们的托管客户需要一个完整的垂直堆栈,该堆栈可以安装在裸机上,并可以通过计费集成等交钥匙功能轻松进行管理。

    如今,Jelastic的基础架构平台正迅速成为全球托管服务提供商的标准,并通过以仅现有虚拟化解决方案的一小部分成本提供卓越的交钥匙式云环境来渗透企业市场。

    Jelastic的独特之处在于它没有限制或代码更改要求,并且提供了自动化的垂直扩展,应用程序生命周期管理以及来自世界各地多个托管提供商的可用性。Jelastic通过插件支持IntelliJ IDEA和Eclipse。

    Jelastic团队的顾问包括PHP Rasmus Lerdorf的创建者,Java James Gosling和巴西JavaMan Bruno Souza的父亲。

  7. IBM SmartCloud

    IBM SmartCloud是用于构建和使用私有,公共和混合云的一系列企业级云计算技术和服务。SmartCloud产品可以作为自助服务或托管服务购买。

    除了构成这些云的组件之外,IBM云还包括通过公共,私有和混合云交付模型提供的基础架构即服务(IaaS),软件即服务(SaaS)和平台即服务(PaaS)。IBM将这些产品归为三类:SmartCloud Foundation,SmartCloud Services和SmartCloud Solutions。

    SmartCloud Foundation由基础架构,硬件,供应,管理,集成和安全性组成,它们是私有云或混合云的基础。PaaS,IaaS和备份服务使用这些基本组件构建而成,构成了SmartCloud Services。SmartCloud解决方案在此云平台和基础架构上运行,由许多协作,分析和营销SaaS应用程序组成。

    IBM提供了五种云配置模型:

    1. 由客户拥有和运营的私有云
    2. 客户拥有但由IBM(或其他提供商)运营的私有云
    3. 由IBM(或其他提供商)拥有和运营的私有云
    4. 虚拟私有云服务(基于对单个企业的多租户支持)
    5. 公共云服务(基于向个人提供的功能)
  8. 开班

    OpenShift是Red Hat的平台即服务(PaaS),允许开发人员在云环境中快速开发,托管和扩展应用程序。借助OpenShift,您可以选择提供的产品,包括在线,本地和开源项目选项。

    借助OpenShift,您可以使用自己喜欢的应用程序服务器和框架轻松地部署和运行Java应用程序。想要运行由MySQL支持的Spring的JBoss服务器吗?或者,也许您正在寻找具有Scala和MongoDB的GlassFish?如果它可以在Red Hat Enterprise Linux 64位上运行,那么它可以在OpenShift上运行。

    OpenShift支持源和WAR文件部署以及server.xml的修改。

作为开发人员,还有许多其他事情可能会让您感兴趣。我将鼓励您在云上进行更多探索。

saigon has written 1445 articles

Leave a Reply