【IT168 资讯】如果您恰好对云计算有基本的理解,您的技能完全用得着。但是,说到真正构建一个应用程序,您使用什么平台?Google 和 Amazon 都名声在外,所以流行度不是问题。如果您是 Microsoft 拥护者呢?是否有适合您的选择?本文将带领您学习如何明智地看待云,并根据特定的应用程序需求选择适当的平台。
有关云计算的困惑
最近,人人都在谈论 “云”。不论是参加某个技术会议,或者与任何编程人员聊天,您的耳中很快就会充斥着诸如 “云计算”、“Google App Engine” 和 “Amazon 托管应用程序” 之类的术语。
假设您已经清楚什么是云计算(本文的 参考资料 小节就有很多文章可以帮助您弄清楚什么是云计算)。如果云计算最终只是一种编程语言的话,那么只需对它有基本的理解就可以真正编写代码。例如,一旦理解了 Java™ 对象的基础知识,就可以开始编写代码,并根据需要学习更多其他的知识。
但是云计算不是一种语言。实际上,它是一种范例。即使您理解了云计算是指在 Internet 上的远程服务器上运行并由它们托管的所有服务,但是在编写任何代码之前,仍然还需要做出很多的决定。首先,为云计算需求选择哪种平台?
有 Amazon 的解决方案,有 Google 的解决方案,也有 Microsoft® 的解决方案,还有像 AppNexus 和 GoGrid 这样的一次性解决方案。而它们并不是完全相同的!换句话说,不能像比较两个苹果一样简单地比较它们。实际上,试图按照不同的特性集合对它们进行分类就像在一个非常大、非常混乱的迷宫中行走一样困难。但是,通过非常细心的考量,还是可以根据您自己 的特定的应用程序需求做出决定。
该领域中的主要参与者有哪些?
在各种不同的框架之间作出选择之前,至少需要理解可供选择的对象。本文的介绍比较简要,但是,您仍然应该使用 参考资料 补充关于这些内容的信息。
Amazon EC2
Amazon EC2 是 Amazon Elastic Compute Cloud 的简称。“Elastic Compute Cloud” 不是一个很直观的名称,但 Amazon 的解决方案确实很有用。EC2 实际上是一个 Web 服务,通过它可以请求和使用云中大量的资源(换句话说,是由 Amazon 托管的资源)。EC2 提供从服务器到编程环境的所有东西。
Amazon 的解决方案的特色在于灵活性和可配置性。您可以请求想要的服务,根据需要配置它们,设置静态 IP,并显式地设置自己的安全性和网络 — 换句话说,您拥有很多的控制权。此外,Amazon 拥有很好的声望和良好的按使用量收费(pay-only-for-what-you-use)的模型,EC2 是云计算拼图中一个重要的、受欢迎的部分。
Google App Engine
从技术上讲,Google 的 App Engine 是 Amazon EC2 的一个竞争对手,但是它们之间又有很大的不同之处。Amazon 提供灵活性和控制(在本文中您将了解很多这方面的内容),而 Google 则提供易用性和高度自动化的配置。如果使用 App Engine,您只需编写代码,上传应用程序,剩下的大部分事情可以让 Google 来完成。
和 Amazon 一样,Google 有很大的知名度,也有很大的缓存。与 Amazon 不同的是,Google 开始是免费的,只有当传输量较大,并使用较多计算资源时才收费。另一个不同点是,Google 是以 Python 为中心的架构和设计。若要使用 Google App Engine,则需要使用 Python。这个限制可以被视作一个局限性,也可以被视作一个有帮助的、简化问题的约束。
Windows Azure
Microsoft 则以一种完全不同的方式实现云计算。就像 “I’m a PC, I’m a Mac” 这句广告词一样,Microsoft 致力于提供一个非常丰富的、专业的、高端的计算环境。因此,Amazon EC2 和 Google 针对的是那些仍然在 vi 中使用 Python 并喜欢与网络协议打交道的人,而 Microsoft 的 Azure 产品则直接瞄准 Microsoft 开发人员。Visual Studio、可视化工具和可视化环境使得 Azure 对于每天使用 C# 和 SQL Server 的人来说非常亲切和舒服。
就像 Amazon EC2 不同于 Google App Engine 一样,Windows Azure 与两者都不相同。最显而易见的是,Azure 就是 Windows®。它是基于 Windows 的;它针对使用 Windows 的人;它涉及 C# 和 SQL Server、.NET 以及 Visual Studio。Azure 就像是 SharePoint 加上一点 CRM。很快您就会看到,选择使用 Azure 很少是因为特性,而是因为您习惯使用的平台。
其他解决方案
EC2、App Engine 和 Azure 是目前云计算领域的 “三巨头”。但是也许您不知道,并不是只有 它们三个。还有很多其他的选择,例如 GoGrid 和 AppNexus。如果您不知道其他这些工具,也无需过分担心。事实上,如果您是 “典型的” 想使用云计算的开发人员,您一般会选择 Google、Amazon 和 Microsoft 提供的这三个解决方案中的其中一个。如果您还知道这三巨头以外的其他东西,那么您甚至可能不需要阅读本文。
其他产品不同于 Google、Amazon 和 Microsoft,同样它们彼此之间也各不相同。所以,就像本文后面的内容强调的那样,您对平台的选择更大程度上取决于您的应用程序 需要什么,而不是您的平台提供 什么。