揭开云的面纱 踏足云的世界 再犹豫该OUT了

随着云世界的日新月异,想进入云世界的您在面对大量的选择时该何去何从?下面是一些关于知名云服务的使用和测试总结。当然在这之前,我们必须知道“云”是建立在托管您的应用程序上的服务。

  • Auto-Scalling — 当需求增加时,你可以自动的获得更多资源(一般情况下是更多的虚拟机)来响应请求。这在一般的应用程序中很少用到,但能保证你的服务不再因为过高的加载量而瘫痪也无异于锦上添花
  • 只为你所使用的买单 — 简单地说,就是你可以根据现实情况来选择你所需要的更大或者更小的服务。这在“云”中可以很简单的达成,比重新配置远程机器要容易得多
  • 云基础设施 — 开发和维护服务良好的运行需要投入巨额成本。所以与其在自己机器上安装和配置一个通信设备,远不如连接到一个现有并有人管理的通信设备。或者是数据库,电子邮件服务,高速缓存等
  • 管理软件 — 你可以获得控制台,命令软件和网络UI来操作你安装的实例。不仅得到了提升(那些工具都比原生的工具好)还减轻了你的学习负担(通过学习自带的教程)
  • 负载平衡器 — 出现在所有的服务里

以上带来的是易用性上的提升 — 让你不需要管理方面的知识,即使你有这方面的能力,你只需要做很少就可以拥有一个在现实中随时可以为你服务的应用程序,虽然这不一定比一般的服务器便宜(甚至会更贵)。我们先看一下各个服务的表现:

Amazon Web Services(AWS)

这是最普遍的选择

  • 一般流程:你可以在EC2创建一个实例(虚拟机),使用SSH框架,做任何你想要的操作。更高的负载让你可以随时随地的创建和删除拷贝。
  • 灵活性:就像支配你自己的电脑一样容易
  • 易用性:AWS控制台和Elastic Beanstalk给你带来非常好的UI来管理应程序。利用Beanstalk你甚至不需要打开控制台就可以开发应用程序。事实上,你起码需要提供一些配置。最好的莫过于提供了预定义实例的图片,这样你只需要不到一分钟就可以运行好“Tomcat with MySQL”。Amazon API中已经有许多好的解决方案,比如RightScale。
  • 产品特色:除下基本的实例功能以外,还可以拥有一些附加的 — 托管数据库,DNS,云存储,CDN,邮件服务,高速缓存等。所以你可以用Amazon提供的版本来代替自己用于安装和管理这些服务的实例。
  • 收费模式 — 按实例运行的时间收费
  • 试用情况:1年(微型实例)。

Google App Engine(GAE)

这个属于PaaS(Platform as a Service),不会获得自己的虚拟机,还受到一些标准API的限制(比如:不可以创造大量的线程),也不可以使用文件系统(可以使用Blobstore API来替代)。

  • 一般流程:你可以建立和设计程序(通过使用命令行或者IDE)。不需要管理服务器也没有ssh — 只有app。app在沙箱中运行,可能还会运行一些专有的API在NoSQL中进行存储,使用MapReduce等。你不需要经常接入目标设备就可以通过管理员UI来浏览数存储,查看日志文件和性能标准。
  • 灵活性:低 — 在沙箱中设计程序,受到配置和提供给你的管理员UI的限制
  • 易用性:良好的管理员UI
  • 产品特色:虽然有更多的附加项,但是仍然有突出的地方 — 电子邮件,数据存储,任务列队,分布式缓存等。
  • 收费模式:通常情况下,按使用的资源总量收费。
  • 试用情况:少量资源使用下永久免费

Windows Azure

你将得到虚拟机还可以通过远程桌面进行管理

  • 一般流程:你可以建立一个虚拟主机就像AWS的那样。你也可以使用php,asp或者note.js来设计简单的网站(像GAE一样的PaaS)
  • 灵活性:VM下高,PaaS下低
  • 易用性:良好的管理员UI
  • 产品特色:高速缓存,数据库,服务总线
  • 收费模式 — 根据使用量或者定期付费
  • 试用情况:两个月(最小的虚拟机)

HeroKu 

PaaS — 在沙箱中设计app并且拥有许多用于其他服务的插件。拥有两种类型的“马达” — 一类为网络请求服务,另一类为后台请求服务。

  • 一般流程:下载heroku工具,运行然后用它建立和设计程序
  • 灵活性:低,虽然是在沙箱中运行,但是每个插件都是可配置的而且拥有许多的插件,所以灵活性强于其他的PaaS。对Java程序员来说不幸的消息是,它只支持通过Git来查看部署。
  • 易用性:良好的网络UI
  • 产品特色:只要你能想象得到的都以插件方式存在
  • 收费模式 — 按照不同的配置,数据库,插件收费
  • 试用情况:每个月有750小时的免费时间 — 这就意味着你可以一直低限度的免费使用

Jelastic

专为Java提供的PaaS — 在沙箱中设计app。你可以配置构造和使用各种第三方服务。这在其他的服务中是不常见的。

  • 一般流程:你可以通过良好的UI选择一种构造来设计你自己的文件领域。可以为你的程序配置最大数量的服务器。所有东西都可以通过网络UI来配置。
  • 灵活性:低,不可以ssh
  • 产品特色:你可以使用额外的服务 — MySQL,MongoDB,CouchDB等
  • 收费模式 — 服务器及附加服务(MySQL,MongoDB等)
  • 试用情况:两个月的免费试用

当然还有其他的选择,特别值得关注的是RackSpace,一个一直致力于虚拟机的公司,拥有带一些“云”思想的简单虚拟机,比如auto-scalling。

没有最好的,只有最适合你的。多了解不同服务的局限性和特色才能帮助你做到更好的选择。特别像使用GAE和HeroKu这两种平台你必须改变你的设计思路。还HOLD住吗,决定好从哪开始你的云端之旅了吗?(仲浩/编译 原文来自:dzone)