我这里一团糟。几年来,我们一直在办公室的本地服务器上运行我们自己定制的应用程序。服务器时不时有好日子和坏日子——但服务器几天前真的死了——在例行维护期间,我们聘请了一名自由职业者安装打印机——这个白痴最终摧毁了服务器[我还在推测他试图把它搞砸一点,这样他就可以收取修复自己造成的错误的费用,只是这一次超出了他自己的能力]。
我们的系统已关闭,我们非常期待在在线主机上托管我们的 Web 应用程序。我对这里的建议持开放态度。让我解释一下我们在这里运行的系统的性质。
我们的系统是基于 PHP MySQL 的 - 它是一个以时间为中心的关键数据协作系统。基本上,我们有一个公司电子邮件地址,我们可以通过它接收客户请求。我们的应用程序用于协作这些请求。我们有一个在后台定期运行的 cron 作业或实际运行的计划任务,它实际上从电子邮件帐户中物理下载电子邮件并将其转换为可以输入数据库进行查询的格式,然后从实际帐户中删除电子邮件所以它在我们的数据库中,因此我们的系统可以使用它进行协作,而不必每次我们需要电子邮件时都建立 IMAP 连接。考虑到我们收到的大量请求,这个 cron 作业设置为每 3 分钟运行一次 - 所以它以我们的应用程序为中心。
计划任务还从邮件服务器下载附件并将它们作为平面文件存储在我们的 Web 应用程序中。平均而言,电子邮件请求没有附件,但在常规情况下,平均附件在 200K 到 10MB 之间变化,尽管超过 5MB 的附件很少见。大多数下载是在邮件服务器到 Web 应用程序之间进行的。
我需要一个可靠的主机,停机时间几乎为零,因为我们不会运行一个网站,我们将运行一个非常关键的应用程序 - 我的意思是我们的业务依赖于它,而我的老板离我只有几英寸远在这一刻崩溃并失去理智:。
有人建议使用 rackspace 的云服务器——我正在研究这些,但基本上因为我是一名程序员——我对网络和托管方面的接触并没有超出故障排除和调试 Web 应用程序的范围。所以我需要一些关于我们所处情况的建议 - 在线主机是个好主意还是我们需要投资更好的网络硬件[现在我们已经把一个自由职业者抓走了] - 考虑到在线主机的选项是什么我们应该寻找哪些选项物有所值。便宜是好的,但如果在质量上会有很大的妥协,那就不行了......请帮助:(它很紧急
编辑 ====
虽然这个建议很好,但现在我正在考虑这种情况。假设我使用云托管或专用服务器等在线服务 - 在这种情况下我是否仍需要设置故障转移系统,如果需要 - 如何设置故障转移系统或最好的方法是什么?处理它。我们是一家小公司,而另一个 IT 人员在其他主机的托管服务方面有一些不太好的经验 - 就像您需要有人在管理服务上不断与主机协调,如果我们必须做一半的工作那么我们几乎可以投入一些时间来管理我们自己的服务器,无论是本地服务器还是云服务器。
在上面定义的情况下 - 如果我们考虑一个在线专用主机..我们将如何设置故障转移系统?
我不想这么说,但如果你真的相信你的自由职业者想把你搞砸,那么你的第一个电话应该是报警,并且可能是计算机法专家。
其次,如果您已经拥有网络连接,并在数据中心托管空间,我建议您保留它,并维护自己的网络。我个人不喜欢共享主机的商业模式。我喜欢在内部保留自己的服务器硬件、网络和管理。
也就是说,您确实需要聘请您可以信任的人来管理它。最好有一个全职的内部系统管理员,而不是每隔几次就雇佣一个自由职业者。主要是因为在办公室里有一个重要的人可以节省大量时间,其次是因为希望他能对公司建立一些忠诚度。
如果你们运行的应用程序是业务关键型的,并且和你们所说的一样重要,那么到底为什么它只在一台服务器上呢?您刚刚给自己提供了失败的最大原因,不是因为某个不法之徒的行为,而是因为您的系统架构师从未说过“嘿,冗余和弹性怎么样,让我们拥有一对集群服务器”。
当我在那个笔记上时,您的服务器状态和配置是否在任何地方备份?如果您在聘请承包商之前有一个裸机备份,那么恢复应该会给您一台工作机器。(除非他在物理上破坏了硬件,在这种情况下,回到第一点,这一次以刑事损害为罪名)
如果您选择了一个好的数据中心,则无需过多担心网络方面。他们实际上是为了帮助而不是敲诈你,并且可以为你提供各种通往互联网的路线,即使你没有自己的路由硬件。
我的建议:
希望您能大量了解如何设置真正的服务器架构,并使您的应用程序比以前更加健壮。可悲的是,每个人都必须在某些时候犯这些错误,让你成为优秀系统管理员的事情就是展示你如何处理它。
我觉得有必要在这里谈谈基于云的解决方案以及外包您的 IT 工作。为了全面披露,我经营一家 IT 咨询公司。我同意在某个时间点,公司将达到拥有内部 IT 人员更具成本效益的规模。但是,我也看到,通常一家公司到了那个时候,他们只能负担得起一个入门级的工程师。在这些情况下,他们可以聘请 IT 公司来处理更高级别的项目/任务,并在需要时充当内部技术的二级支持。当公司规模扩大时,拥有内部员工通常很有意义,但这也取决于企业的文化以及他们对技术的了解程度和他们的期望。
话虽如此,我可以说我对安全性和将关键任务数据放在云中非常偏执,但是,在很多情况下这样做有巨大的好处。第一件事是选择具有良好业绩记录的可靠公司(即 Amazon Web Services 或 Rack Space)。您需要一家支持他们的支持并拥有 SLA 的公司。无论哪种方式,无论您是托管在内部还是云中,您都应该始终保持良好的备份。
如果您要考虑在数据中心的服务器和托管空间上花费数千美元,并想学习如何安装服务器,那么您可以在云中进行,从而大幅降低总体成本和初始现金支出。例如,在 Amazon 设置一个中型服务器大约需要 15 分钟才能完成,并且您在 Linux 上获得完全的 root 访问权限,在 Windows 上获得完全的管理员访问权限。您可以即时扩展您的内存、cpu 和磁盘空间,而无需等待数据中心技术人员为您完成。您可以完全控制您的服务器实例。如果您需要启动另一台类似的服务器,这同样简单,您甚至可以拍摄您的服务器的快照,然后存储它,然后在几分钟内随时使用它来创建另一台类似的服务器。您只需为使用的内容付费。
借助 Amazon 和 Rack Space(以及我认为的其他),您可以在东海岸、西海岸甚至欧洲托管服务器,并让它们相互通信,或者使用其中一台来实现冗余,并且只在需要时付费。
您每小时支付的费用少于几美分来使用单个实例服务器,它加起来与数据中心解决方案相同,如果不是少很多的话,您可以在不再需要服务器时关闭它们。没有定期合同,所以你不会被困住。您拥有固定资产解决方案所没有的灵活性。
如果您在管理上有困难或不想学习,那么您可以在内部雇用某人或将其外包。无论哪种方式,在您向他们支付薪水或费用之前,应该对曾经管理它的人进行适当的审查,并且应该知道他们在做什么并能够证明这一点。
这绝不是一刀切的方法,但是优秀的 IT 顾问应该努力向您提出很多关于您的需求、未来计划、预算和业务发展方向的问题,以便他们可以为您提供合理的选择可以住。
我希望这有帮助。
大多数在线主机都倾向于处理网站,因此您可能正在寻找的是托管服务,特别是如果您自己不擅长服务器管理。您通常会签署包含服务级别协议的托管服务合同,并且公司也可能愿意根据您的系统性质签署保密协议。
如果您确实在内部维护它,我建议您使用故障转移系统(它的成本更高,但如果它对您的业务至关重要,那么它应该是不费吹灰之力的。)然后您需要进行任何维护实时服务器,您在故障转移系统上运行您的系统,因为正如您所见,即使是最琐碎的任务也可能出错。
我曾与几家提供托管服务器的公司合作 -每个城市可能是迄今为止最好的,因为他们安装和管理整个软件堆栈(他们运行 Solaris 系统,但如果您需要,可以提供 Windows 或 Linux 系统。)然而,与其他价格相比,价格有点陡峭。 NTT还提供定制托管解决方案。
大多数其他托管服务提供商都提供服务器,由您来安装和管理它。我觉得这些品种中最好的是Redstation、Memset和Fasthosts(但那里的支持有点可怕。)
故障转移解决方案的一个关键方面必须是数据复制。MySQL 内置了复制功能,易于学习。一旦在两台机器之间运行复制,剩下的就很容易了。
您将从在不同位置运行故障转移主机获得最大价值。这将在您的办公室发生火灾、服务器被盗或电涌炸毁服务器时充当灾难恢复。
在您的情况下,一个简单的两站点解决方案可能是继续从您的办公室运行您的服务,并通过 VPN 从那里将数据复制到托管或托管环境中的服务器。您甚至不一定需要在远程站点上运行您的服务,只需保持数据库副本运行,直到您的办公室出现问题。此时,您拥有一个最新的恢复解决方案,您可以将数据复制回您的办公室,或将您的服务迁移到托管环境中。有一个计划会有所帮助。
远程环境很可能会比您的办公室更好:良好的空调、清洁的电源、良好的通讯。在这种情况下,请将您的服务迁移到远程环境,并将数据复制回您的办公室,让您的办公室充当灾难恢复站点。
在同一机架/建筑物中只有两台服务器会使您面临环境故障的风险。
我建议使用托管 VPS。这些通常比托管更具成本效益,提供支持,但仍然让您完全控制。我处理过的大多数 VPS 主机都会在紧急情况下进行自动备份。您可以根据需要插入尽可能多的网站以进行故障转移。