一个Java程序员眼中的国外IaaS服务选型

如今,云计算无处不在。最简单的说,云计算是通过互联网存储和访问不同的数据和程序,而基础架构即服务(IaaS)是云的基本构件。IaaS支持在云环境中自然开发,测试和使用应用程序。在本文中一个想通过IaaS托管Java应用程序的用户,如何选型国外主流的5大云供应商服务。它简要介绍IaaS,然后比较5个主流云提供商:Amazon EC2,Google Compute Engine,IBM SoftLayer,微软Azure和Digital Ocean。

IaaS可帮助企业避免购买和运行自有服务器的复杂性。而且,不需要维护和升级软件。它在许多情况下具有较低的基础架构成本,从而帮助没有时间和资本的新企业投资自己的硬件基础设施。

IaaS的其他一些好处包括:

服务可作为大量资源分发。

灵活,IaaS提供弹性缩放。

成本,可根据业务需求的不同而不同。

多个用户可以使用单个硬件。

位置独立性,只要有互联网连接,并且云的安全协议允许,通常可以从任何地方访问云服务。

以上是IaaS用于构建Web应用程序的优势,所有需要做的就是决定要选择哪个解决方案。唯一的问题是今天有这么多的选择。作为Java开发人员,我最初在评估各种IaaS服务时遇到了一些困难。因此,在本文中,我将介绍托管Java Web应用程序的五个最佳解决方案,并将它们相互比较。

亚马逊EC2

亚马逊弹性云(Amazon EC2)是一种Web服务,可在云中提供可调整的计算容量。它有助于启动和管理服务器实例,从而使其适合用于Web规模计算的开发人员。

实例有不同的大小和配置。 EC2允许AWS提供不同的实例类型,可用于满足特定需求。因此,可以根据需要启动不同的虚拟机。如果正在部署Java应用程序,则可以将应用程序服务器(Tomcat,Web Sphere等)安装到一个虚拟机中,并在具有适当配置的单独VM上使用其他服务,如微服务,数据库等。

使用Amazon EC2,可以灵活的选择不同的实例类型,操作系统和软件包。Amazon EC2具有内存,CPU和实例存储配置,有助于存储选择。此外,可以选择最适合你的操作系统和应用程序的启动分区大小。

使用EC2的唯一缺点就是费用。随着我的工作流程变得更加复杂,我使用更多的服务,很难投入成本。然而,为了帮助估算成本,亚马逊提供了一个月度计算器。

与其他服务提供商相比,网络并不灵活。由于大量数据必须从LAN的一端移动到另一端,因此数据传输距离远远超过互联网上常见的拥塞问题。

Amazon EC2可以说是行业的标准。许多领先的网站和应用程序使用EC2。比如Instagram,Reddit,Netflix,Adobe,三星等等。你可以找到很多使用Amazon EC2的案例!

Google Compute Engine

Google Compute Engine(GCE)可帮助你在Google上为自己的服务,使用相同基础架构,并运行虚拟机。GCE为企业提供更大的灵活性和控制能力以及访问计算资源的规模,从根本上改变企业对解决问题的思考方式。GCE很像EC2,但虚拟机运行在Google的基础设施上。在Google Compute Platform上部署Java很简单。

网络定价昂贵。由于GCE比较新,与AWS不同,编程语言的选择是有限的。Google Compute Engine中不支持AWS中支持的一些Java API。从GCE到任何其他平台的过渡并不容易。还应该注意,为了运行任何Java框架,GCE需要为用户做更多的帮助,因为它们没有集成的包。

最常见的GCE客户包括EverNote,飞利浦,可口可乐,HTC,摩托罗拉,同时可汗学院,Spotify,口袋妖怪和百思买等也利用GCE的数据仓库和分析功能。

IBM SoftLayer

正如IBM倡导的“无需妥协的云”,它提供高容量,可扩展性和安全性的云服务。 IBM SoftLayer的高速内部网连接对企业复杂应用程序所需的IaaS解决方案,但必须支付额外的费用才能使其工作。

Softlayer的裸机基础架构可以与虚拟化服务器结合使用,提供一系列的hyper-V技术的解决方案,从而可以优化生产工作负载。并在SoftLayer的数据中心之间提供了极佳的高性能带宽,使云环境能够承受从一个数据中心到另一个数据中心的数据突然增加。同时,SoftLayer的单一租户服务器模式通过综合防火墙保护数据,为敏感信息提供保护。除IBM SoftLayer外,没有其他云提供商提供自定义虚拟机类型。SoftLayer提供调用其API的maven依赖关系。

SoftLayer的服务没有捆绑在一起。虽然IBM提供广泛的服务,但不仅仅是云服务。相反,它们将公有云服务与内部和IBM品牌的服务相结合,从而提供“虚拟IT部门”,即联系IBM进行托管服务以进行软件更新和维护。

重要用户如Artomatix,Cedato和ClickTale等。

微软Azure

全面的服务,可帮助你快速开发,部署和管理全球各地微软的数据中心的应用程序。它支持Windows,Linux和社区虚拟机映像以及跨平台开发工具和框架。支付所用的费用,就可以可以节省大量成本并实现更高的效率。

Azure的服务器可以让用户在云端完全控制。Application Insights是面向多个平台上的Web开发人员的服务。遵循“检测,评估,诊断,稳定和关闭”的标准安全模式,强调安全性。 Azure还提供简单,用户友好的服务,以增加保护,如多因素身份验证和应用密码要求。如果你需要使用自定义第三方软件或许多应用程序的解决方案在单台机器上运行,那么Azure的IaaS解决方案能提供帮助。作为Java开发人员,你将发现在这里轻松部署和扩展WebApps。

实例之间的负载平衡可能会中断应用程序的状态;即不能保证来自同一用户的两个请求将转到相同的实例。Azure在选择实例类型时不提供灵活性。此外,它需要专业的管理和维护,包括修补和服务器监控。

在微软Azure上的代表用户是Essar,CloudMunch,AppPoint和ShepHertz,通过Azure节省了65%的部署。

Digital Ocean

Digital Ocean针对Linux开发者。它提供了简单的设置,为用户提供了一个干净,易于使用的界面,具有很少的功能和一键式部署。它具有控制面板来管理诸如双因素身份验证,良好的API,自动备份和DNS管理等功能。它提供了与其他服务相比便宜的SSD主机。

提供的服务是虚拟机和DNS管理,无负载平衡,托管数据库,分析,Hadoop集群等必不可少的服务。如果不仅仅关注自动缩放和高可用性,更多地投入管理服务器,那么Digital Ocean适合你的使用。对于Java开发人员,官方网站有一个社区提供教程。

Digital Ocean的不足是它们的磁盘位于管理程序中,并且它们不使用集中式存储,如果托管在故障管理程序上,则导致完全数据丢失的风险相对较高。但是,如果你有这样的风险,并且有备份,那么你可以用你满意的价格获得一些出色的服务器。

Digital Ocean的用户包括NodeBB,Rockerbox,Ghost和taskRabbit。重要案例是jQuery基金会正在使用Digital ocean。

综合比较:

本文转自d1net(转载)

时间: 2024-10-25 05:04:00

一个Java程序员眼中的国外IaaS服务选型的相关文章

写给自己的Java程序员学习路线图

如下是我做开发这几年经常使用一些技术和工具,当然这些技术也都是需要加强的(有些是我一直使用的,不过不深入,有些内部的原理等等不是很清楚) 前端部分: 1)HTML:网页的核心语言,构成网页的基础 2)CSS:使网页更加丰富多彩灿烂的利器 3)JavaScript:使网页动起来的根本,加强了网页和用户之间的交互 4)HTML DOM:换一种更加形象化的角度来看待网页,让我们更加方便的控制网页 5)HTML BOM:与浏览器交互不可或缺的工具 6)JavaScript库,主要是:jQuery及其插件

Java程序员常用工具集

    我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了.我想列下我能想到的一个Java程序员会用到的常用工具. 一.编码工具 1.IDE:Eclipse或者IDEA,熟悉尽可能多的快捷键,<Eclipse常见快捷键列表> 2.插件:  (1) Findbugs,在release之前进行一次静态代码检查是必须的 (2) Clover,关心你的单元测试覆盖率 (3) Checkstyle 代码风格检查 3.构建和部署工具:an

java程序员的迷茫?

昨天在论坛上看见有人问毕业之后java程序员薪资能拿到多少?我看见后下意识的关注了,我是一个java程序员,刚刚毕业一年,我却感觉我的java水平没有什么可以迅速提高的了(我个人迷茫的感觉吧),所以我狂妄的在下面回帖精通java 可能被其他的已经看到另一个风景的java程序员来说,我的狂妄很幼稚,不过我周围能接触到的已经有十年以上的程序员在java上的水准已经让我能看的清摸得着了,不妄自菲薄,但从语言角度来看由于,刚毕业对java的热度还很足所以颇为下功夫,与换过多门语言的老程序员来说,但从语言

java程序员如何转dba

问题描述 大家好,我是一个java程序员,一直想去做数据库方面的工作.最近刚辞职,就是为了找一个这样的工作,这样才和我的职业规划相吻合.这两天有一个公司让我去做维护工作.大家说是不和 数据库相关啊,是不是和DBA这个职位更靠谱一些啊! 问题补充:hardPass 写道 解决方案 事实证明,培训还是值得的,如果你真想做DBA.没有基础,就不要谈经验了.最好的方法,是进入一个正规的企业,一般正规的企业都会给你培训.如果进不去,就只有自己花钱了.这个钱,我认为是值得的.也不需要多种数据库的认证,搞通一

Java程序员需要哪些AIX、Solaris知识

问题描述 在很多的招聘网站上都会看到有要求AIX.Solaris经验的:还有的要求WebLogic.WebSphere经验:有的甚至要求开发工具最好熟悉BEA的workshop:我想向前辈们问一下:对于一个Java程序员,AIX.Solaris需要了解到什么程度?我对Linux很熟练,不管是用Linux作为开发环境,还是在Linux上做Tomcat.JBoss一类的部署都没问题:但是AIX.和Solaris目录结构和管理方式都不太一样:还有WebLogic和WebSphere在什么样的场合.系统

Java程序员实现月薪2万需要具备哪些技能?

抛开工作经验,项目经验,学历背景,单从技术点分析,哪些方面可以判断一个java程序员的技术扎实程度,怎样才能知道他值多少月薪呢?本文将为你解答: 本着理论结合实践的方法,我一般都不问上面这种纯知识和理论性问题,而是让他写一段程序来证明HashMap是线程不安全的.然后,再让改一下这个程序,使之线程安全. 在面试等情况下,如果有条件,最好能给被考核人一台可以上Google的电脑,然后给其一段自己的空间和时间,比如一个人在小会议室里10-20分钟.然后,另接一台显示器,同步观察他在电脑上是怎么做的.

作为一名Java程序员,我为什么不在生产项目中转向Go

自Google在2009年发布Go语言的第一个正式版之后,这门语言就以出色的语言特性受到大家的追捧,尤其是在需要高并发的场景下,大家都会想到是不是该用Go.随后,在国内涌现出了一批以七牛为代表的使用Go作为主要语言的团队,而许世伟大神本人也在各种场合下极力推动Go在国内的发展,于是在这种大环境下,中国的Go开发者群体逐渐超越了其他地区. 那么问题来了,业余时间好学是一回事,真正要将一个新东西运用到生产中则是另一回事.JavaScript的开发者可以义无反顾地选择Node.js,但是对于Java开

一个让98%的Java程序员犯难的偏门问题

程序|程序员|问题 一个学员曾经问了我一个他在sun公司的论坛上看到的怪问题,因为这个问题一直没有人解答,加之这个问题所涉及的知识有点偏门,所以,我断言这个问题至少有98%的Java程序员不会! (之所以这么断言,是因为我遇到的高手和低手程序员,好像并没有精力去研究那些琐碎的细节,并且他们工作中似乎也不需要.如果你看到了这个问题,再去查书和思考,最终找出答案,在这之前也应该算不会,呵呵,另外,100个java程序员中有2个会这个,并不过分,现在已经有2000人看了这篇文章,至少应该有40个人会这

一个让98%的Java程序员犯难的偏门问题

一个学员曾经问了我一个他在sun公司的论坛上看到的怪问题,因为这个问题一直没有人解答,加之这个问题所涉及的知识有点偏门,所以,我断言这个问题至少有98%的Java程序员不会! (之所以这么断言,是因为我遇到的高手和低手程序员,好像并没有精力去研究那些琐碎的细节,并且他们工作中似乎也不需要.如果你看到了这个问题,再去查书和思考,最终找出答案,在这之前也应该算不会,呵呵,另外,100个java程序员中有2个会这个,并不过分,现在已经有2000人看了这篇文章,至少应该有40个人会这个问题,大家不要看下