Sending Excess Load To the Cloud?
TristanBrotherton writes "Cloud computing seems to be a good choice for startups like ours, looking to scale easily with users. (We're providing a series of Web services, assets, and Web applications to users of our mobile client.) There are the obvious choices of Google, Amazon, and smaller shops like EngineYard. The biggest issue we have in choosing cloud computing to run our applications is trust in their robustness. If the provider goes down, we suffer. In traditional hosting environments we mitigate this with multiple sites / vendors. It's not really feasible to host on multiple compute services, so I wondered if a better option might be to set up a small (perhaps two servers) origin infrastructure in a traditional manner at a datacenter, running our applications, but then send excess load, or in the event of our origin servers failing, all load, to compute services. This would give us the best of both worlds. Has anyone done this, or had experience in designing Web applications to scale seamlessly across both environments? Is there particular load-balancing hardware we can use to do this?"
Unless your "cloud" provider offers a service level guarantee with teeth, is contractually obligated to continue to provide the service for some period of time, and has sound financial fundamentals, this is risky.
I think we'll see a big shutdown of money-losing web services over the next year.
Lots and lots of methane there, you see
Please don't use it. Every time you use a buzz-phrase God kills a kitten.
http://www.zombieapocalypse.tv/
Why not go for dedicated servers for each app?
All the apps I have used on "the cloud" are over-rated, if google would have just stuck to a few apps and focused on improving them, they would not have spread themselves so remarkably thin. I think this is where independent smaller software companies can have a big advantage if they are any good at recognizing the users needs.
A user wants to:
-Save time
-Save money
or both
Users will gladly part with money if your software adds real value to their lives, they won't if you're just trying to repackage the same old stuff ad infinitum, some companies can get away with packaged crap, but sooner or later they will decay due to the needs of the customers not being fulfilled and someone will come up and snap up those customers.
Software engineering right now is in the dark ages IMHO, too much is asked of the user, many programs are incompetently designed and rushed to "market" (google chrome I'm looking at you), imagine what google chrome could have been, if it accepted firefox plugins and other enhancements other browsers have had for a while.
Google chrome is
1) fast
2) simple
But that's all I use google chrome for, the hidden benefits of better engineered browser will be lost without meeting user needs. Google is definitely losing its focus IMHO in many aspects of software development, becoming "jack of all trades, mater of none" at least when it comes to a lot of their software.
http://vmware.com/technology/virtual-datacenter-os/cloud-vservices/
The answer is to not get tied into a single service provider. You need a cloud computing solution that is standard-based (formal or defacto) and that lots of providers are supporting. And you have to be prepared to migrate your stuff if/when the industry moves on to the next version of the standard ... or the next "big leap forward" after cloud computing.
And that is all hard to do.
There is always a software solution when it comes to good L4-7 problem and not just load balancer but whole application delivery controller. One that works not only in your data center, one that can easily work in virtual environment (VMWare ESX for example) or Clound. Look at www.zeus.com (only software ADC on Gartner's Magic Quadrant).
If your sole consideration is application availability, then your idea might make sense. But since you said you don't trust the application hosting company's "robustness," do you still trust them to protect and secure your data adequately? In other words, if you don't trust your IT service supplier in one dimension, why would you still trust them in other service quality dimensions?
Have you thought about establishing a contract with a formal Service Level Agreement (SLA), including penalties and escrow (or equivalent) for non-performance? That would seem to be a much more straightforward and comprehensive way to establish "trust."
Break n' bake servers work out really well with Amazon's EC2. I've never had to use it for anything really critical but so long as you maintain a set of closely sync'd liveUSB and AMI images I don't see why you'd have a problem. Just make sure that your existing failover mechanisms automatically initiate the backup plan, notify you, and isolate your local system for forensics or repair, since a security breach that will take down your local system has a high likelihood of succeeding in the cloud.
It's very probable that none of these offerings will work well if your application integration is not aware of itself as a group of applications and services.
Think about it: Install Apache on one host. OK. Now, two hosts... Well, do you round robin DNS, or do you run a squid reverse proxy, do you buy something else...
Next, how are you going to monitor this monster, Nagios or OpenView... or something else.
How many people are responsible for this puppy?
Oh, yeah... And I'm just talking about static web hosting, you start having all kinds of fun when you want to track user sessions, etc.
My advice to you is to look into an Application Service Provider. Make them do all of the integration work.
If you can afford Internet connectivity to a pair of servers, you can probably afford an Application Service Provider.
Given that you're talking about satisfying your base load with 2 servers and you can buy pretty decent 1U rackmount machines for $1-2k each....a)have cash on hand to buy that extra capacity b)have a vendor who can supply the equipment quickly c)tell your colo that you anticipate growing (so please don't put you in a rack where there's no room nearby, or if they can't do that, that you'll need some sort of wiring or VLANs), and d)have some sort of plan to quickly deploy the host O/S and app software. Oh yeah...and e)don't build your app with crap like Ruby/mongrel.
Please help metamoderate.
Are you effin' retarded? You can't write the application for multiple grid infrastructures, but you can write it for a grid infrastructure and a hosted infrastructure? Hint: It's still writing the same application twice.
Has anyone tried checked out the features and facilities that Zoho offers ? I for one use Zoho creator http://creator.zoho.com/ to teach visual application development to my grad school students and quite a few of them have gone on to develop corporate applications with persistent data -- ok, not giant ones, but useful ones nevertheless ... and all up in the cloud.
Insight into much, Influence over nothing !
If you are running a web-based, hosted financial application, outsourcing "to the cloud" is a non-starter. If you are hosting pictures of kitty cats, the cloud can be an excellent resource.
Throw a server up, upload some files, start up a PG or MySQL database, and integrity is easy. But as soon as you introduce the 2nd system, integrity issues start jumping out of the woodwork. It gets worse with each additional node. Redundancy isn't just fancy-sounding, it's damned hard to do right, and as soon as you introduce it, you have to accept an elevated error rate because the number of things that can go wrong go UP, even as the number of catastrophic system failures drop.
For a great example of redundancy in action, take a look in the mirror. You have individual cells dying by the millions every minute. Your memory is fuzzy at best, your pattern-recognition in your brain frequently sees things that aren't there, and you make stupid mistakes every single day. And that's fine, because the overall system is pretty damned redundant and resilient. A mash of protein goo and calcium deposits able to sustain one of the most complex information systems around, reliably, 24x7, for an average of 70 years or so apiece.
Good luck getting any kind of hosting platform to maintain that kind of uptime, no matter the expense! But in biology, minor errors are so commonplace that they are hard to catalogue, let alone count.
So pick your battle, and realize that high-performance, high-redundancy clustering is very, very difficult to do well.
In the meantime, spend money on good quality hardware, and use top-notch colo hosting. The cost of doing it right is actually significantly lower than doing it "on the cheap" so spend money where it counts (good quality infrastructure) and save where it matters. (EG: public opinion) It's almost odd - if you look for the very, very best colo, regardless of cost, you'll find that their monetary cost is probably one of the lower ones around. (head scratcher) I've found this to be rather consistent with several reviews under my belt.
Also, I find it best to use whitebox systems with midrange hardware. These are quality, high-performance hardware developed with everything but the name brand. In my case, I've standardized on 1U multicore X86/64 systems with hot-swap, high performance 15k SCSI drives put out by Tyan and SuperMicro. There are a large number of dealers of such systems, my current favorite is Aberdeen Inc. They can sell you an amazing amount of performance and reliability for around $2500.
This is the stuff that Sun will sell you for $8,000/pop. They will stand up to day-in, day-out heavy use for years, with hundreds or thousands of users every day, millions of website hits per day, etc. They are high performance. This is quality hardware. And with the money you save, you can have an immediate hot backup for less than the cost of the "premium support" of the big guys, and more redundancy in the meantime.
My $0.02. Since it's free advice, you're free to use it as you see fit!
I have no problem with your religion until you decide it's reason to deprive others of the truth.
Distributed computing of any kind is complex and not something to be undertaken with no experience or assistance. Hire someone who knows their stuff to help you out. Being with a business case and don't be surprised if running your own cloud turns out not to be the way to go.
These posts express my own personal views, not those of my employer
Before I signed on to something like that, I'd spend some time meditating about Internet security. It's dubious at best and seems, if anything, to be slowly deteriorating. Is your situation such that you can deal with all your data being captured? How about it being altered? What future security constraints could shut you down for days, or weeks, or permanently? If you are OK on those things, then maybe.
You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
Why have we suddenly taken to calling the internet "the cloud"?. Giving it some fluffy cuddly hippy name doesn't change what it is so is this just an example of technodroolers trying to sound achingly trendy (and failing) yet again?
Work out how to build the servers as cheaply as possible. If peak load starts to get troublesome, add some more servers.
Cloud computing is a buzzword. Big server farms are may be dull, but it's a tried and tested technology that works. Ask Google.
Comment removed based on user account deletion
The excess loads of Job also went "to the cloud" if you catch my drift..
There are a number of emerging technologies that enable very smooth scaling between single data centre (trad colo), single data centre + single cloud provider, single data centre + multiple cloud providers, multiple data centre + multiple cloud providers and all using the same base application stack.
These emerging technologies enable the configuration of your application, using underlying grid-type infrastructure, to deploy in multiple physical and virtual environments.
By virtualising the virtualisation (for want of a better term) they enable the rick to be spread so widely as to reduce it below the level of concern.
This enable the application architect to choose the correct mix from highly available but expensive infrastructure (e.g. data centre) and highly scalable and better cost infrastructure (e.g. cloud service with no SLA) to support the application. Flexible scalability and Flexible resilience.
Watch this space as these new players come up fast.
Someone tag this "domyjobforme".
"Cloud computing is a trap, warns GNU founder Richard Stallman
Web-based programs like Google's Gmail will force people to buy into locked, proprietary systems that will cost more and more over time, according to the free software campaigner".
Have a look at this Guardian Online article: http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman for his views.
Try a kleenex!
Best bet for DR web hosting is duplicating the applications in two or more physically different locations.
In order to realize some return on such an expensive deployment, you need to be able to sweat all your assets. the only way to do that cost effectively is by adding some sort of load balancing across these applications. Most frequantly used solutions for hese types of environments are DNS based load balancing. Both Cisco and Radware offer a GLSB solution. In my experience, and I'll probably be killed for this, but the Radware solution is better.
my 2c
PS. i work for an independent integrator and not for either vendor.
I'm surprised \. is posting this without referring to the Stallman interview that was all over the nerd sites like reddit yesterday. It is very relevant. You missed it? Come on guys, you're not always the fastest and I don't care, but this is a fail.
(We're providing a series of Web services, assets, and Web applications to users of our mobil
This guy has the PHB manual talking points inserted rectally so hard it's still coming out of his mouth. I can't even take people seriously when they talk like this. Probably why I live in my Mom's basement instead of having a corporate job and a girlfriend.
Funnily enough this is a project I am working on right now.
I'm coming at it from an HPC (high performance computing) perspective. We'll have a cluster in-house supporting the base load and overflow to a utility computing provider.
Job scheduling software (currently torque but also trialing slurm) is used and once the total load has passed a threshold more remote compute VMs are fired up.
We should have it in production by - /me checks gantt chart - last month.
It seems like an idea whose time has come.
Backups are for wimps. Real men post their data in comments and have slashdot mirror it
geeez... i don't even care to know what "Cloud computing" means... i'll just fast forward in my mind until it's gone the way of buzzwords..
is it about computing while sitting on a cloud? no? well then it must suck... next!
I -- strongly-- recommend that you take a look at RightScale. RightScale is a set of cloud tools built for the Amazon Web Services. As you'll quickly see, RightScale makes scaling servers, load balancing, deployment and backups easy using Amazon S3 and EC2.
Highly recommended.
Did anyone else read the title "Sending Execs To The Cloud"?
/ The Arrow
"How lovely you are. So lovely in my straightjacket..." - Nny
I've been wondering something similar, but what Im looking for is something that is the equivalent of google docs, calendar, ect that I can host on my own webserver. (dreamhost is pretty awesome) For my work at a newer IT Support company and for my own school and personal files, and since Im always running all over town and use my iron-key, a easy to install cloud computing setup would make my life a lot simpler, and if there is no such thing, there is definitely a market for it. Any ideas anyone?
"It's ok, I'm completely secure as long as my iron is off"
My company is a development partner with http://mor.ph/ and we're doing exactly this. A website we're working on has high load twice a year, and other than that it can be handled by a single web server. What we're doing is augmenting our year-long server with a few extra app servers running at mor.ph during the two peak seasons.
The problems you worry about in this case are the same as any distributed HA web serving: having another site handle master-server failover gracefully, etc.
-Josh Adams
http://isotope11.com/
-knewter
They want their timesharing back.
As long as these "cloud" services remain incompatible there is no "cloud": just a bunch of competing timesharing services. There will be no "cloud" until you can switch your "excess load" from one provider to another with complete transparency.
I'm not holding my breath.
Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
I'm a little surprised this is even a question.
The cloud computing does not solve every problem going. Nor does map/reduce or XML.
As a side affair I run a DTP Software as a Service (Service). This makes extensive use of 'Cloud' stuff.
Use neutral technologies that work on many cloud computing platforms. Postgres, Java, and Linux Image. As a quick startup, run VitualBox on each of the Cloud infrastructures, and then only code for your VirtualBox instance.
You have to write all the bridging, bootstrapping and aliveness code for the idosyncracies of each Cloud platform. But you always have to do some of this work, right?
And then of course you rent some dedicated servers which act as the common case and have an SLA. If you get the VirtualBox stuff right, you can simply deploy your cloud image to these dedicated boxes. When load gets too much, send it to someone elses cloud.
None of this is rocket-science. You get very little 'for free' like the marketting hype suggests.
It is my opinion that with Cloud Computing services, you must have in-office snapshots of your filesystems/databases. Access to these should not be reliant on any 3rd party. Also have off site, but physical backup (tapes)
[% slash_sig_val.text %]
If I'm hosting anything dealing with customer information, especially privileged information like bank accounts or medical information, I'm going to make very sure the company I contract with will indemnify me if they screw up, and I'm going to make sure they have a bond to back it up.
I'd much rather have only 99% uptime and 99.999999999999999999999999999999999999999999999999999999999999999% information security than the other way around.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
"...Has anyone done this, or had experience in designing Web applications to scale seamlessly across both environments? Is there particular load-balancing hardware we can use to do this?"
A "global" (DNS) load balancer will do. The function of such a device is to monitor the health of multiple sites that can receive traffic, and direct traffic among sites that are confirmed as "up" according to your specifications. A short (<60 seconds) TTL is given in the DNS answer to force local DNS cache servers to expire quickly and check for DNS changes caused by an outage.
Normally such a device answers with A (IP address) records. However, in case your Cloud provider requires their own DNS (to balance load among their cloud sites), it is possible for your "global" balancer to hand out an appropriate CNAME record to defer resolution to your cloud provider's DNS.
Assuming you also have a traditional load balancer in front of your 2 dedicated servers, then what you'd probably want to do is set up the "global" load balancer to:
Sorry to pitch only a single product, but the only enterprise-level DNS product I know of that will hand out both A and CNAME records is F5's "Global Traffic Manager". They put it on a 1-unit standalone hardware, or you can get it as a software add-on to existing (traditional) F5 BIG-IP load balancer hardware.
This signature intentionally left unblank.
Mahalo.com is doing thi snow in switching from RackSpace cloud to Amazon cloud.. Maybe we could Get Jason Calacanis to take time out of his busy schedule to cover it at some point.. Maybe a Slashdot asks Jason Calacanis??
Fred Grott(aka shareme) http://mobilebytes.wordpress.com
Disclaimer: I work as a software engineer at Salesforce.com.
Depending on your needs and budget, Force.com might be a viable option. It's all proprietary, but they do provide enterprise-class service level agreements and have delivered enterprise-grade levels of uptime to companies big and small ( http://trust.salesforce.com/trust/status/ ). Its Apex programming language is Java-like ( http://www.salesforce.com/platform/application-development/apex-programming-language/ ), and it's possible to write arbitrary user interfaces on it using its Java server faces extending VisualForce page layout markup language ( http://www.salesforce.com/platform/application-development/visualforce/ ).
Salesforce ensures via its processes throughout the company that no one except for you and anyone who you explicitly temporarily authorize, such as a support person in a service call, will see your data.
As new releases are created, Salesforce ensures that the APIs for previous versions do not regress, meaning that if you build an API integration on the latest version of the API and continue to use it as more Salesforce.com versions get released, your integration will work indefinitely until you decide to use the latest version of the API, and Salesforce.com hasn't dropped support for any of its obsolete API versions in years.
Depending on what you want to do with the platform, it's possible to sell your software to customers on the AppExchange. Customers, including those who already use Salesforce.com and those who do not, can install your AppExchange package and be up and running quickly. Customers who do not use Salesforce.com can use it via a platform license that you can sell directly to your customers, thus relegating Salesforce.com to be the underlying platform and giving you more complete control over your interactions with your customers. This is platform as a service (PaaS). I know, I know.. Buzzwords ;-)
Relevant URLs:
Force.com: http://www.force.com/
Salesforce.com's cloud status: http://trust.salesforce.com/trust/status/
Apex programming language: http://www.salesforce.com/platform/application-development/apex-programming-language/
VisualForce: http://www.salesforce.com/platform/application-development/visualforce/
AppExchange: http://www.salesforce.com/platform/appexchange/
API and integrations: http://www.salesforce.com/platform/integration/
Hopefully, this helps. Please don't mod me as troll ;-). I'm trying to be helpful and informative to the original poster.
I once blew my load in a heavenly body, does that count?
What the FUCK is "cloud computing"?
Are we talking the same thing we called distributed apps back in the 90s? You know, another one of those .com BUSTS?
I mean, if you want "5 nines", do it yourself.
Stop looking for someone to blame things on. When I was active in IT, that was what we looked for when trying to outsource our server farm, nothing more. Someone else to blame things on.
If you have enough business that you need that level of SLA, then might I suggest actually HAVING a small IT department. That means pony up the bread for someone to run it, and cough up a couple servers.
More expensive today, but the residuals of owning your own farm go SO far beyond having someone to simply blame for the downtime.
--Toll_Free
The mention of Engine Yard probably means we're dealing with a Ruby on Rails application.
I'd say the question is irrelevant since we all know that rails can't scale.
I'm surprised \. is posting this
Wow, I had no idea that there's a backslashdot.org now. How long has that been there?
We're all chumps, wasting our time on this old site when we could be on the new backslashdot site like all the cool kids.
I don't see how you get into it though. I must not be cool enough for it.
As demo'd at VMWorld 2008 during the CEO's keynote address, BlueLock (www.bluelock.com) is in business to deliver what you seek. The hosted environment is run entirely on VMWare VM's that exist on SANs that are replicated between datacenters in Indianapolis and Salt Lake.
I believe that monthly billing is based on how many sockets are actually in use in production. Additional VM's could be ready to provide on-demand compute power without the overhead of unused reserve or the delays involved with scaling in a non-virtual environment.
Their datacenter in Indianapolis has completely redundant power, cooling and network as well as a backup generator. They stripped the facility to the bare walls and floor when they purchased it - no legacy wiring, cooling or network issues.
There may be other similar Cloud providers, but BlueLock was founded on this model. I have no vested interest in BlueLock but I do know them professionally.
The efficient model would look like:
Storage and bandwidth of a CDN web proxy will be about 1/2 that of a cloud service.
Sites like plentyoffish.com get away with just 4 servers by using a CDN. With only four machines then the choice of "cloud" vs. "real machine" becomes a "don't care".
Don' forget http://www.mosso.com/index.jsp they are the best!
I would be careful about excess load as it may clog your toilet. Unlike Mario Kart the little "cloud guy" with his fishing pole is not going to materialize over the commode and bail you out of your messy predicamate.
I noticed that you didn't mention Mosso, one of the first large scale cloud providers that has been doing this for years. They are a division of Rackspace as well. As far as robustness is concerned, there was a great write-up of the Mosso platform last week on this blog: http://matthewsacks.com/techblog/2008/09/23/rackspaces-mosso-hosting-cloud-review/
Have you looked into Go-Grid? www.gogrid.com
Their parent company has been in business as a host for several years and they have a huge guarantee for uptime. Its worth a look.
-M
Yes, my company has done this for a client and we are about to do it for one more. We have 3 servers hosted at 'traditional' hosing providers (one at Rimu Hosting, the other at ServerBeach), and during peak load, we fire up Amazon EC2 instances and throw traffic towards them. The 'real hardware' servers can handle normal traffic and redundancy (any one can fail), we just use the cloud for handling peak traffic. We also use the cloud for creating a multiple machine staging environment for testing. We can fire that up, deploy to test, and have the client check out all the new features, and it only costs us a dollar or two.
As cost effective as short bursts are, if they stay up for any amount of time, they cease to be cost effective. I never understand why people think EC2 is so cost effective when, at 10 cents an hour, you will pay $72/month... When you can get a virtual machine that is as performant from a company like Rimu for ~$30-40, or a dedicated resource for something like $90.
-db
EC2 is great. It allows fast saving, recovery and on-demand provisioning as needed. The cost is on par or maybe a bit more than most service providers, but I like the pay-as-you-need-it self service -- no server monkeys, hardware failures, etc.
Even though EC2 is great, and has an SLA claiming 99.9% uptime or you don't pay, I need a disaster plan. I'm still looking for an EC2 AMI to xen image process, so I can take my existing AMIs and move them to my own xen server or a hosted xen server if Amazon EC2 or S3 should go down for any reason. Just because it is a cloud doesn't mean it's always up. Sometimes it's sunny because the cloud isn't there (there's a Nagios plugin for that).
TossableDigits.com: Temporary Phone Numb
Try reading this blog post about "cloudbursting" and the pages it links to. It talks about using your fixed infrastructure, but also expanding to the cloud when you need a sudden burst of power/infrastructure.
A cloud is usually the first sign I have excess load.
Oh wait, this isn't the methane gas thread!
I've had a look at Bluelock http://bluelock.com/ and what they're doing with VMWare's cloud technology may be the difference you're looking for. VMware is extending a virtual cloud to any datacenter running VMware - that's a pretty fascinating approach that could put the big boys on their heels! http://vmware.com/cloud
Slicehost.com is the best of both worlds, old school standard (dedicated) hosting model, but since the "servers" are VMs they can scale in performance capabilities on command, literally, Slicehost has an API to increase the cpu and memory available to the "server"
So, when you have excess load, you increase the size of your VM, or you clone it and run 2, or 4 etc. paying only for what you use -- when you use it
Dunno. The last time I sent my excess load to the cloud, God killed a kitten.
C|N>K
Paul Maritz, VMware CEO, announced in his keynote at VMworld in Sept 08 their vCloud initiative. He demoed a product that measures application response time. Once response time exceeded their predetermined limit of acceptability, the app called up more systems from the external cloud to provide more capacity.
VMware acquired B-hive recently and uses their technology combined with their VI3/4 product to accomplish this.
It seems a bit far fetched yet, but was at least able to be demoed.
Cost and complexity.
Using clouds for "overflow" from a cheaper base setup is not a new idea, and it's definitively a good one.
I've been trying to dig up sources on this, but can't seem to find any. Any places, companies, sources that you're aware of that do this well?