We have a decent-sized server estate: several ProLiants, plus IBM BladeCentre and SANs running a VMWare environment. Due to an imminent premises move, we're not going to have enough space for a server room, so I've been looking at moving everything out to a colo. My boss is more keen on the idea of cloud-hosting everything, which would include a couple of high-traffic websites (about 9m pageviews/month), our Exchange sever (about a million clean emails sent/received monthly), as well as file/print/AD/all the ususal stuff. This doesn;t sound like a good idea to me, but I'm new to the ways of the cloud. Can anyone offer any advice?
There isn't enough detail here. The issues to think about with cloud based hosting are:
privacy/ownership issues - is it OK that someone else has legal ownership of your data? The implication being that currently (just like the phone company or any other service provider) should there be a subpoena issued for that data you have no right to be notified or quash the motion
no performance SLA- While there are SLAs available for availability, I don't know of any cloud providers that provide performance SLAs
Cost - very generally TCO (from cheapest to most expensive) is self owned-self hosted, colocated, VPS, cloud based. There are exceptions to every rule but for an entoer infrastructure, I've yet to see a cost effective cloud
The cloud has 1 real draw, and that's the pay for what you use model coupled with 0 expense deployment/provisioning. For labs, servers that get created and destroyed quickly and often, you can't beat the cloud.
Cloud hosting is generally very flexible is numerous ways depending on the provider. If you need a bigger server, you would normally have to add the hardware yourself, or even switch to a different box for major changes. With cloud hosting it's usually done via a simple interface and the resize can take from several minutes to several seconds depending on the system.
Cloud hosting was originally designer for high availability, so in the case of a hardware failure the downtime is very small - typically under a minute depending on the system. However today it's usually very scalable and is a great alternative to dedicated servers.
Cloud hosting can get expensive on a pay-as-you-go model, so you'd usually need to buy a package or make some sort of contract or reservation for lower prices. There are two particular hosts you may want to look into that provide some very neat services:
- VPS.net - pretty cheap, extremely flexible and scalable. Supports scheduled and automatic scaling; usually takes under a minute to scale up or down without rebuilding the disk (or a few minutes when rebuilding the disk). Supports Linux servers, with FreeBSD in beta and Windows beta coming soon.
- GoGrid - expensive as pay-as-you-go, but reasonable in packages. Has the ability to mix dedicated and cloud servers in the same network with little effort. Supports Windows and Linux servers.
I can't say anything about co-location as I haven't worked with physical servers, so you may want to look into the other answers for information on that.
you may want to look into a hybrid solution. Hosting the large websites on the cloud could work, as you can scale up and down depending on traffic.
Exchange etc, you probably want to keep at a colo facility.
The main advantage of cloud for web hosting is the scalability, and not having to worry about having to drive out to the colo to replace faulty hw. Just remove a node, put up a new one, and add it into your load balancer.
My take, bearing in mind that I can't know all the facts about your particular situation:
If you have an imminent physical move ahead of you, then you absolutely do not want to be migrating your systems to different platforms on an immutable deadline of having to be out of the premises. For one, stuff is more likely to go badly wrong under duress and two, if problems occur and timescales slip (and when has that ever not happened?) you'll end up moving halfway through your migration, and still requiring data center space for your kit. Sounds like an expensive recipe for disaster rather than the elegant cost-and-hassle saving panacea the cloud is supposed to provide. No, definitely do not mash 2 projects into one like this if you can possibly avoid it.
Cloud hosting (in the sense I suspect your boss is envisaging it) is great and has its place, it may be a good fit for what you do. But right now I think you have enough on your plate with needing to move your infrastructure as-is, so I would push back on your boss with the clear message that you can't just scrap all the hardware and systems at the drop of a hat, but that moving to cloud hosting for at least parts of your infrastructure may indeed be feasible as your next big project, after the dust has settled from the premises move.
On the subject of 'The Cloud' itself. You're already running a local/internal cloud solution - Your VMWare/SAN environment. If you move that off to a hosted datacenter where you just rent a rack and continue to manage your own kit, you've now got a remotely served, private cloud solution.
Many non-technical bosses live off buzzwords and cloud computing is no exception (in fact at the moment it's probably the biggest offender in the 'bullshit bingo' category). You can turn this to your advantage and steer things in a more sensible direction by tying the things you already do (running a virtual environment) to your bosses idea of the cloud. It can be as simple as referring to your VMs as 'Instances' and ESX hosts as 'Nodes' whenever you're reporting on it.
What about a split-model? I would cloud-source my web-hosting, but not my LDAP infrastructure, Exchange, etc. Internal apps are a case-by-case basis. As far as a Co-Lo, I'd consider moving some of my redundancy to the CoLo (for example, some of my AD servers; if you have three DCs, I'd move one to the CoLo, but if you had more, I'd be willing to send a higher percentage to the CoLo), but it depends entirely on your infrastructure. If you are using ESX and have V-Motion, it may be worthwhile to be able to use them for failover in case of a site problem. This could help with your congestion problem if you don't have room for all of your current infrastructure.
The most troubling thing to me is what I perceive to be a Management Fail. A planned site move, but they failed to plan for adequate infrastructure space?! Really?! Unless it was a move to push someone's outsourcing agenda (which screams of political manipulation), forcing the issue with a move like this is just irresponsible.
we are moving most of our "less used" data into the cloud for backup and sustainability/failover purpose. Our primarydata or mission-critical data is hosted locally and even some of it is automatically synced with cloudbased storage, so that we can have a total hardware failure and still be able to run on cloud data with some latency.
I like explain this idea as how you do storage/memory in a normal server/pc.
- Slow (harddrive) - cheap to get and quite stable, but swapping takes "forever"
- Medium (memory) - okay price and great for running programs
- Fast (CPU cache) - extremly expensive, but amazingly performance
Same goes for local vs cloud-based storage, divide the data/storage into groups of priority:
- Slow (cloudbased) - easy to expand, and low cost as you have none or little maintence
- Medium (virtual servers) - able to run a lot of less frequently used servers on same hardware (good for power consumptions and hardware maintaince, because you have less that can break down)
- Fast (real server) - for extreme data calculations... you know enough about these already I can read :o)
But my point is, dont think one solution fits every problem. Hybrid combined solutions are where you get the most.
My personal choice for a Cloud-host environment at the moment is Amazon AWS, but Microsoft's Azure might be worth paying attention to - Amazon is still in the lead for the time being though. Google Apps Engine is also interesting, but something I wouldn't put production critical data on yet.