服务器崩溃 – 公司的Web应用程序被closures – 考虑转移到在线主机 – 任何build议?

我在这里一团糟。 几年来,我们一直在我们办公室的本地服务器上运行我们自己定制的应用程序。 服务器有不错的日子和好日子 – 然而,服务器几天前就死了 – 在例行维护期间,我们雇用了一名自由职业者来安装打印机 – 而白痴却最终摧毁了服务器[我仍然推测他试图搞砸一点点,所以他可以收取固定自己造成的错误,只是这次超出了他自己的能力]。

我们的系统已经closures,我们非常期待在一台在线主机上托pipe我们的Web应用程序。 我对这里的build议很开放。 让我解释一下我们在这里运行的系统的性质。

我们的系统是PHP基于MySQL的 – 它是一个关键的数据时间为中心的协作系统。 基本上我们有一个公司的电子邮件地址,我们收到客户的要求。 我们的应用程序用于协调这些请求。 我们有一个cron作业定期在后台运行,或者实际上是预定的任务运行,它实际上从电子邮件帐户下载电子邮件,并将其转换成可以input到数据库查询的格式,然后从实际帐户中删除电子邮件它在我们的数据库,因此我们的系统可以协作使用它,而不必每次我们需要一个电子邮件时,使IMAP连接。 考虑到我们收到的大量请求,这个cron作业每三分钟运行一次 – 所以它的时间是以我们的应用程序为中心的。 时不时的计划任务挂起 – 所以我们有时不得不手动重新启动计划的任务。

计划任务还从邮件服务器下载附件,并将其作为平面文件存储在我们的Web应用程序中。 平均来说,电子邮件请求没有附件,但在例行公事中,平均附件大小在200K到10MB之间,尽pipe5MB以上的附件是非常罕见的。 大部分的下载是在邮件服务器到Web应用程序之间的。

我需要一个可靠的主机,几乎没有停机时间,因为我们不会运行一个网站,我们将运行一个非常关键的应用程序 – 我的意思是我们的业务取决于它,而我的老板距离字面上几英寸在这个时候打破他的理智:。

有人build议rackspace的云服务器 – 我正在看那些,但基本上,因为我是一个程序员 – 我的networking和托pipe方面的暴露并没有超出排除故障和debuggingWeb应用程序。 所以我需要一些关于我们所处的情况的build议 – 一个在线主机是一个好主意,还是需要投资于更好的networking硬件(现在我们已经抓住了一个自由职业者) – 考虑一个在线主机的选项是什么我们应该select什么样的方式提供物有所值的金钱。 便宜是好的,但如果这将是一个巨大的妥协质量…帮助请:(不要紧急

编辑====

build议是伟大的,但现在我正在考虑这种情况。 假设我select了云托pipe或专用服务器等在线服务 – 在这种情况下,我是否还需要设置故障转移系统?如果是这样 – 将如何设置故障转移系统?处理它。 我们是一个小公司,另一个IT人员对另一个主机的Managed Services有不太好的经验 – 就像你需要某个人不断地与pipe理服务上的主机协调,如果我们必须做一半的工作那么我们可以投入一些时间来pipe理我们自己的服务器,无论是本地还是云。

在上面定义的情况下 – 如果我们考虑在线专用主机,我们将如何设置故障转移系统?

我讨厌这样说,但是如果你真的相信你的自由撰稿人试图把你搞砸,那么你的第一个电话应该是给警察,可能是计算机法专家。

其次,如果您已经获得了networking连接,并在数据中心托pipe了空间,我build议您保留该networking,并维护自己的networking。 我个人不喜欢共享托pipe的商业模式。 我喜欢保留自己的服务器硬件,networking和pipe理。

也就是说,你需要聘请一个你可以信任的人去pipe理它。 最好有一个全职的内部系统pipe理员,而不是每隔几次就雇用一名自由职业者。 首先,因为在办公室里找个合适的人是一个节省时间的工作,其次,因为希望他会对公司build立一些忠诚度。

如果你们运行的应用程序对业务至关重要,并且与你所做的一样重要,那么为什么它只能在一台服务器上运行呢? 你刚刚给自己一个失败的最大原因,不是因为一个歹徒的行为,而是因为你的系统架构师从来没有说过“嘿,冗余和弹性如何,让我们有一对集群服务器”。

当我在那个笔记,是你的服务器状态和configuration备份在任何地方? 如果您在收到承包商的日子之前进行了裸机备份,那么恢复应该为您提供一台工作的机器。 (除非他身体上的硬件破坏,在这种情况下,回到第一点,这次是有着刑事伤害)

如果您select了一个好的数据中心,那么您不需要担心networking方面的问题。 他们实际上在那里帮助,而不是撕掉你,甚至如果你没有自己的路由硬件,你可以为你提供不同的路由到互联网。

我的推荐:

  1. 聘请一个competant系统pipe理员。
  2. 将2U的托pipe空间安排在一个良好的,与运营商无关的数据中心。
  3. 购买两个1U戴尔(或惠普或任何其他优质品牌)服务器,将其设置为群集故障转移对。
  4. 在两者上安装您的Web应用程序,设置一些监控,您可能需要设置Puppet来帮助跨多个服务器进行部署。
  5. build立一个备份机制,并做一个testing恢复

希望您将学到如何build立真正的服务器体系结构,并使您的应用程序更加健壮。 可悲的是,每个人都必须在某个时候犯下这些错误,让你成为一名优秀的系统pipe理员的事情正在显示你如何处理它。

我觉得有必要在这里谈谈基于云计算的解决scheme,并将IT工作外包出去。 为了全面披露,我开办了IT咨询业务。 我同意,在某个时间点,公司的规模将达到内部IT人员更具成本效益的程度。 但是,我也看到,通常当一个公司在这个时候,他们只能买一个入门级的工程师。 在这种情况下,他们可以聘请IT公司来处理更高级别的项目/任务,并在需要时作为内部技术人员的二级支持。 当企业规模较大时,内部人员通常具有很大的意义,但也取决于企业的文化,以及他们如何成为技术精通人才。

有了这个说法,我可以说我对安全性非常偏执,把任务关键数据放在云端,但是在很多情况下这样做是有很大的好处的。 首先要select一个有良好logging的可靠的公司(例如amazon web services或机架空间)。 你需要一个支持自己的支持,并有一个SLA的公司。 无论哪种方式,无论是内部托pipe还是云托pipe,都应该始终保持良好的备份。

如果您打算考虑在数据中心上花费数千美元购买服务器和共享位置空间,并希望学习如何安装服务器,那么您可以在云环境中实现这一目标,从而大幅降低总体成本和初始现金支出。 例如,在亚马逊build立一个中等规模的服务器需要大约15分钟的时间来完成,你可以在Linux上获得完全的root权限,在Windows上获得完全的pipe理员权限。 您可以随时缩放内存,CPU和磁盘空间,而无需等待数据中心技术人员为您完成。 您可以完全控制您的服务器实例。 如果你需要启动另外一台服务器,那就简单了,你甚至可以把服务器的快照存储下来,然后用它来创build另一台服务器,就像在任何时候只需要几分钟就可以创build服务器一样。 你只需支付你使用的东西。

使用亚马逊和机架空间(以及其他我认为的),您可以在东海岸,西海岸,甚至是欧洲托pipe服务器,让他们互相通话或使用冗余服务器,只在需要时付费。

您每小时支付的钱less于使用单一实例服务器的总和,如果不是less于数据中心解决scheme的话,您可以在不再需要时closures服务器。 没有定期合同,所以你没有被卡住。 您有灵活性,您没有固定资产解决scheme。

如果您在pipe理或不想学习方面遇到麻烦,那么您可以在内部聘用或外包。 无论哪种方式,谁来pipe理它应该审查正确,应该知道他们在做什么,并能够certificate这一点,然后再支付他们的薪水或费用。

这绝非一刀切的方法,但一位优秀的IT顾问应该努力向你询问关于你的需求,你的未来计划,你的预算以及你的业务领导地点的许多问题,这样他们可以给你合理的select可以住在一起。

我希望这有帮助。

大多数在线主机倾向于处理网站,所以你可能要找的是一个托pipe服务,特别是如果你自己不擅长服务器pipe理。 您通常会签署包含服务级别协议的托pipe服务合同,而且公司也可能愿意根据您系统的性质签署保密协议。

如果你在内部维护它的路线,我会build议有一个故障转移系统(它的成本更高,但如果它对您的业务至关重要,应该是一个不费吹灰之力)。然后,无论您需要维护现场服务器,您可以在故障转移系统上运行您的系统,因为如您所见,即使是最琐碎的任务也可能出错。

我曾与几家提供托pipe服务器的公司合作 – 每个城市都可能是迄今为止最好的,因为他们安装和pipe理整个软件堆栈(它们运行Solaris系统,但如果您要求则可以提供Windows或Linux系统)。然而,与其他的价格相比,价格有点陡峭。 NTT还提供自定义托pipe解决scheme。

大多数其他托pipe服务提供商提供服务器,安装和pipe理由您决定。 我觉得这些品种中最好的是Redstation , Memset和Fasthosts (但支持有点可怕)。

故障转移解决scheme的一个关键方面是数据复制。 MySQL自带的复制function,很容易学习。 一旦在两台机器之间运行复制,其余部分就很容易。

在不同的位置运行故障转移主机,您将获得最大的价值。 如果您的办公室发生火灾,或者您的服务器被盗,或者电源浪涌将您的服务器烧毁,这将用作灾难恢复。

在您的案例中,一个简单的双站点解决scheme可能会继续从您的办公室运行您的服务,并将数据从一个VPN复制到托pipe或托pipe环境中的服务器。 您甚至不一定需要在远程站点上运行您的服务,只要保持数据库副本运行,直到您的办公室出现问题。 此时,您可以使用最新的恢复解决scheme将数据复制回您的办公室,或者将您的服务迁移到托pipe环境中。 有一个计划将有所帮助。

远程环境很可能会比你的办公室更好地提供:良好的空调,清洁的电源,良好的通讯。 在这种情况下,请将您的服务迁移到远程环境,并将数据复制回您的办公室,让您的办公室充当灾难恢复站点。

只有两台服务器位于同一机架/build筑物中会使您面临环境故障的风险。

我会推荐一个pipe理的VPS。 这些通常比共同定位更具成本效益,提供支持,但仍然给你完全的控制权。 我遇到的大多数VPS主机都会在紧急情况下进行自动备份。 您可以根据需要插入尽可能多的网站进行故障转移。