云幕之后,依然是计算机

作者:Shawn Powers

我有幸与我们当地的 Drupal 专家 Katherine Druckman 以及来自 Acquia 的系统架构师之一 Barry Jaspan 参加了一个视频会议。Acquia 是一家专门从事 Drupal 的公司。虽然他们的公司为对使用 Drupal 感兴趣的客户做了很多事情,但我们特别讨论的是云计算。Acquia 提供高度可用、完全可扩展且托管的 Drupal 环境。对于最终用户来说,这意味着您每月支付固定金额,并且您的网站始终存在。它始终是更新的,始终是备份的,并且始终可用。然而,为了实现这种神奇的效果,Acquia 的人们必须扮演幕后操纵者的角色,成为绿野仙踪中的巫师。这就是我们谈话的重点,听到一些关于运行云服务的内幕消息真是令人着迷。Acquia 的人们实际上使用亚马逊的云服务来构建他们自己的云平台。也许这是一个云中云,但尽管如此,这仍然是一种经济的方式来利用别人的数据中心来提供您自己的服务。使用亚马逊的 EC2 服务来根据需要启动服务器非常棒。但它也确实带来了一些令人沮丧的障碍。

优势

  • 随着客户需求的增长或缩小,添加或删除服务器只需几秒钟。
  • 硬件维护“外包”给亚马逊。不再有硬盘故障、网卡故障或电源问题。
  • 作为供应商,您只需为您需要的服务器功率付费。无需为了以防万一而过度购买服务器。

劣势

  • 虽然启动新服务器是即时的,但您(主要)仅限于启动服务器。没有 SAN,这可能是一个真正的问题。
  • 必须完全使用软件来创建故障转移支持。没有实际硬件是一个优势,直到您希望拥有专用硬件。
  • 扩展可能具有挑战性。诚然,亚马逊提供不同尺寸的硬件,但负载均衡和扩展仍然不是魔法。例如,MySQL 仍然在单个服务器上运行。

这就是奇迹发生的地方

在 Acquia,他们创建了一个复杂的后端。客户看不到除工作服务之外的任何东西,但他们已经很好地解决了一些复杂的问题。例如

Drupal 的数据存储

Drupal 存储本地文件。是的,大部分内容是从数据库动态创建的,但 Drupal 期望在文件系统上看到一些东西。图像、文档、文件等都存储在本地文件系统中,并由 Web 服务器访问。在没有共享 SAN 的高可用环境中,这可能具有挑战性。Acquia 目前使用的文件系统跨越多个服务器,这样,如果一台服务器发生故障,其他服务器可以保持文件系统的运行。它的工作方式有点像基于网络的 RAID5 阵列。不幸的是,它并不总是像 Acquia 人(我可以这样称呼他们吗?)希望的那样工作。架构师们并没有仅仅将一个大部分时间都能正常工作的系统作为他们的默认系统,而是正在努力构建一个更好的系统。使用 Varnish 来缓存文件,很可能可以实现无缝故障转移到镜像备份,而不是担心基于网络的分布式文件系统。这一切将如何结合在一起仍在计划中,但看到针对硬件限制的软件解决方案令人兴奋。

MySQL,您的 SQL…

如果您希望找到扩展 MySQL 的灵丹妙药,不幸的是,那是不可能的。哦,有一些方法可以使其更高效,例如使用 memcached,但最终,MySQL 实例需要一台服务器才能运行。值得庆幸的是,如果需要,亚马逊提供了一些非常强大的服务器实例。最终,专业知识才是真正使数据库后端能够处理任何负载的关键。如果一个网站繁忙到足以使 MySQL 过载,即使是在一台巨型服务器上,也该调整您的 Drupal 安装了。如果每个页面加载都会进行 11,837 次数据库调用,那么世界上没有任何 MySQL 服务器可以提供帮助。

云计算不会让极客过时

对于希望外包服务器管理的最终用户来说,云计算确实非常棒。对于一家想要提供服务,但不希望投资数据中心的公司来说,云计算也非常棒。然而,归根结底,云计算不是灵丹妙药。它仍然需要幕后的极客来保持事情的运转。至少对我来说,令人兴奋的部分是,在云中解决问题与传统数据中心截然不同。我是一只喜欢学习新技巧的老狗,在云中虚拟服务器的限制范围内解决应用程序问题是一场全新的游戏。所以,去启动那个 EC2 实例,开始解决问题吧。您将成为某人非常有价值的员工!

Shawn 是Linux Journal 的副编辑,并且从一开始就接触 Linux。他对开源充满热情,并且热爱教学。他还喝太多咖啡,这经常在他的写作中表现出来。

加载 Disqus 评论