![Server crashed - corporate web application is down - considering moving to an online host - any suggestions?](https://linux22.com/image/506450/Server%20crashed%20-%20corporate%20web%20application%20is%20down%20-%20considering%20moving%20to%20an%20online%20host%20-%20any%20suggestions%3F.png)
I'm in a mess here. For a couple of years we've been running our own custom made application on a local server in our office. The servers had its well bad days and good days now and then - however the server literally died a couple of days ago - during routine maintenance we hired a freelancer to install a printer - the moron instead ended up destroying the server [I'm still speculating he tried to mess it up a bit so he could charge for fixing a self inflicted error only this time it went beyond his own ability].
Our system is down and we're seriously looking forward to hosting our web application on an online host. I'm quite open to suggestions here. Let me explain what is the nature of the system we are running here.
Our system is Php MySQL Based - its a critical data time centric collaboration system. Basically we have a corporate email address upon which we recieve client requests. Our application is used to collaborate those requests. We have a cron job running periodically in the background or actually Scheduled task running which actually physically downloads the emails from the email account and converts it into a format that can be input into a database for querying and then deletes the email from the actual account so its in our database and thus our system can collaborate using it instead of having to make an IMAP connection everytime we need an email. This cron job is set to run every 3 minutes considering the vast volume of requests we recieve - so its very time centric our application. Now and then the scheduled task does hang - so we sometimes have to manually restart the scheduled task.
The scheduled task also downloads attachments from the mail server and stores them as flat files on our web application. On average email requests have no attachments but in routine the average attachment varies between 200K to 10MB although attachments above 5MB are a rarity. Most of the downloading is between the mailserver to the web application.
I need a host that is reliable, has next to zero down time because we're not going to be running a website we'll be running a very critical application - I mean our business depends upon it and my boss is literally inches away from breaking down and loosing his sanity at this moment :.
Someone suggested rackspace's cloud servers - I'm looking at those but basically since I'm a programmer - my exposure to teh networking and hosting side of things doesn't extend beyond troubleshooting and debugging a web application. So I need some suggestion for the situation we are in - would an online host be a good idea or do we need to invest in better network hardware[for now we've scratched one freelancer off] - considering the option of an online host what options should we look out for which offer value for money. Cheap is good but not if theres going to be a huge compromise on quality...help please :( its urgent
EDIT ====
虽然这个建议很棒,但是现在我正在考虑这种情况。假设我选择云托管或专用服务器等在线服务 - 在这种情况下我是否仍需要设置故障转移系统,如果需要 - 如何设置该故障转移系统或处理它的最佳方法是什么。我们是一家小公司,另一位 IT 人员对另一家主机的托管服务有一些不太好的经验 - 就像你需要有人不断与管理服务的主机进行协调,如果我们必须完成一半的工作,那么我们几乎可以投入一些时间来管理我们自己的服务器,无论是本地服务器还是云服务器。
在上述定义的情况下 - 如果我们考虑在线专用主机..我们将如何设置故障转移系统?
答案1
我不想这么说,但如果你真的相信你的自由职业者试图欺骗你,那么你首先应该打电话给警察,或者联系计算机法律专家。
其次,如果您已经拥有网络连接和数据中心托管空间,我建议您保留它并维护自己的网络。我个人不喜欢共享托管业务模式。我喜欢保留自己的服务器硬件、网络和管理。
话虽如此,你确实需要雇佣一个你可以信任的人来管理它。最好是聘请一名全职内部系统管理员,而不是每次出现问题就聘请一名自由职业者。首先,因为在办公室里有一个可靠的人可以节省大量时间,其次,因为希望他能对公司产生忠诚度。
如果你们运行的应用程序对业务至关重要,而且你们认为它很重要,那么为什么它只在一台服务器上运行呢?你们刚刚给自己找到了失败的最大原因,不是因为一个恶棍的行为,而是因为你们的系统架构师从来没有说过“嘿,冗余和弹性怎么样,让我们有一对集群服务器吧”。
说到这个,你的服务器状态和配置是否备份在任何地方?如果你在雇佣承包商之前有裸机备份,那么修复应该会让你的机器正常工作。(除非他物理上损坏了硬件,在这种情况下,回到第一点,这次是刑事破坏指控)
如果您选择一家好的数据中心,您就不需要太担心网络方面的问题。他们实际上是为了帮助您,而不是为了欺骗您,并且可以为您提供多种互联网路由,即使您没有自己的路由硬件。
我的建议:
- 聘请一位有能力的系统管理员。
- 在良好的、运营商中立的数据中心安排 2U 的主机托管空间。
- 购买两台 1U 戴尔(或 HP 或任何其他优质品牌)服务器,将它们设置为集群故障转移对。
- 在两者上安装您的 web 应用程序,设置一些监控,您可能需要设置 Puppet 来帮助跨多个服务器进行部署。
- Set up a backup regime, and do a test restoration
Hopefully, you'll learn a vast amount about how to set up real server architectures, and make your application far more robust that it was before. Sadly, everyone has to make these mistakes at some point, the thing that makes you a good sysadmin is showing how you handle it.
答案2
I feel the need to chime in here about cloud based solutions and outsourcing your IT work as well. For full disclosure, I run an IT consulting business. I agree that at a certain point in time, a company will reach the size where having an internal IT person is more cost effective. However, I have also seen that usually when a company is at that point, they can only afford an entry level engineer. In those cases they can hire an IT firm to handle the higher level projects/tasks and also act as second level support to the internal tech when needed. When companies reach larger sizes, having internal staff usually makes a lot of sense, but it also depends on the culture of the business and how technologically savvy they are and want to be.
With that said, I can say I am quite paranoid about security and putting mission critical data out in the cloud, however, there are tremendous benefits to doing so in a lot of cases. The first thing is to choose a reliable company with a proven track record (i.e. Amazon Web Services or Rack Space). You want a company that stands behind their support as well and has an SLA. Either way, you should always keep good backups whether you host in-house or the cloud.
If you are going to consider spending thousands of dollars on servers and co-location space in a data center and want to learn how to install a server, you can do that in the cloud with a dramatic drop in overall cost and initial cash outlay. For instance, setting up a medium sized server at Amazon takes about 15 minutes to complete and you get full root access on Linux and full admin access on Windows. You can scale your memory, cpu and disk space up and down on the fly without having to wait for data center techs to do it for you. You have total control over your server instance. If you need to spin up another server like it, it's just as easy, you can even take a snapshot of your server and then store it and then use it to create another server just like it whenever you want in minutes. You only pay for what you use.
With Amazon and Rack Space (and others I presume) you can host servers on the east coast, west coast and even Europe and have them all talk to each other or use one for redundancy and only pay for it when you need it.
You pay less then pennies per hour to use a single instance server which adds up to the same if not a lot less then a data center solution and you can shut down your servers when you don't need them anymore. There are no term contracts, so you aren't stuck. You have flexibility there that you don't have with fixed asset solutions.
If you have trouble managing or don't want to learn, then you can either hire someone internally or outsource it. Either way, who ever manages it should be vetted properly and should know what they are doing and be able to prove it, before you pay them a salary or fees.
This is by no means a one size fits all approach, but a good IT consultant should strive to ask you a lot of questions about your needs, your future plans, your budget and where your business is headed so they can give you reasonable options you can live with.
I hope this helps.
答案3
Most online hosts tend to deal with websites, so what you'd probably be looking for is a managed service, especially if you're not good with the server administration yourself. You would typically sign a contract for the managed service which includes a service level agreement, and the company may also be willing to sign a non-disclosure agreement depending on the nature of your system.
If you do go down the route of maintaining it in-house, I would suggest having a failover system (it costs more, but if it's critical to your business it should be a no-brainer.) Then whatever maintenance you need to on the live server, you run your system on your failover system because, as you've seen, even the most trivial of tasks can go wrong.
I've worked with a couple of companies that provide managed servers - Every City are probably the best to date, as they install and manage the whole software stack (they run Solaris systems but can provide Windows or Linux systems if you request it.) However there prices are a little steep compared to others. NTT also provide custom hosting solutions.
Most other hosting providers provide the server and it's up to you to install and manage it. The best of these breed I feel are Redstation, Memset and Fasthosts (but there support is a bit dire.)
答案4
I'd recommend a managed VPS. These are generally more cost effective than co-location, provide support, and yet still give you full control. Most VPS hosts I've dealt with do automated backups in the event of an emergency. You could plug in as many websites as needed to fail over to.