23 comments

[ 7.5 ms ] story [ 129 ms ] thread
Please, please everybody, before saying that the cloud is amazing let it resist the test of time. I am myself using some cloud software but there is one thing that is not yet being reflected very well, the ugly monster that lurks everywhere: Legacy.

How will AWS/RackSpace/SaaS software handle legacy data/ code in, let's say 10 years? I have no answer to that question and I bet few people have it but time is a tough mistress for computer software and data. The good thing when your data is not in the Cloud, especially when you don't control the inner mechanics of a database like SimpleDB is that you can migrate, change it the way you want at the moment you want. When you have no control over your data, well bad things could happen in the future.

Be smart, be patient.

I agree with this, it's generally a good idea to use services that don't lock you in and provide common interfaces so you can move your data or take in house at any time. Like http://www.mongolab.com for instance uses standard MongoDB and IronMQ (http://www.iron.io/products/mq/features) supports the beanstalkd protocol so at any point, you can take your data and easily switch just by changing endpoints.
Because I am not stupid to pay monthly fees instead of single upfront licenses.

Because my desktop screams while my net connection is so so.

Because a native UI kicks the sh*t out of any web interface, in looks, perfomance and integration.

Because I am paranoid and I like my data in MY local net.

Because I do not mind a bunch of (easily scriptable) installs.

I short because the technical problems I am trying to solve go way beyond a trivial LAMP app...

> Because I am not stupid to pay monthly fees instead of single upfront licenses.

You also have to think about the cost of hosting, maintaining, monitoring, etc. Usually a service fee by a provider is much smaller than the cost of doing all this yourself. Of course there is some inflection point where it may be cheaper to do it yourself. And during development and while you're still small, most service providers offer a generous free plan.

> Because my desktop screams while my net connection is so so.

Can't argue with that one.

> Because a native UI kicks the sh*t out of any web interface, in looks, perfomance and integration.

Totally agree. Like I said in the post, I still write my code locally.

> Because I am paranoid and I like my data in MY local net.

Are you paranoid about your development data?

> Because I do not mind a bunch of (easily scriptable) installs.

...

> I short because the technical problems I am trying to solve go way beyond a trivial LAMP app...

I would argue that this is a good reason to you use services since they will deal with all the hard stuff of running these non-trivial services. The more complicated your application, the more value you'll get out of using services.

>You also have to think about the cost of hosting, maintaining, monitoring, etc.

Well, for a development environment, the costs of all that should be zero, in terms of dollars. In terms of time, you'll have to spend some time maintaining your development environment, whether you have it in the cloud or locally. Adding a monetary cost to that just seems foolish.

Remember, we're not talking about deploying to the cloud. We're talking about developing on the cloud. Spending real money, in addition to my time for a project that I'm going to open source or possibly abandon is foolish.

> Because I am not stupid to pay monthly fees instead of single upfront licenses.

You just insulted everyone here who pays monthly fees for software, including Github & Dropbox customers.

In addition, the overwhelming success of SaaS vs native apps leads me to think that your personal tastes and concerns are not representative of the average consumer.

When the average consumer has to choose between two goods they don't understand, they always base their decision on price. As they become more savvy, they begin to understand why the market has other, more complex or expensive, options. SaaS may have been a success in the short term, but our industry tends to have centralization/decentralization cycles. We seem to be in a centralization phase right now, but the downside of that is well-known, it just hasn't manifested in a catastrophic way recently. Once it does, I'd expect a large (but not total) exodus from SaaS back to run-this-on-your-own-hardware solutions like we've had in the past.
That's an interesting perspective. I agree we have gone through cycles of centralization/decentralization and that events will cause flutters of movement in both directions, that's natural. As another comment mentioned, a hybrid approach will likely be a strong story in the years to come.

However the real purpose of innovation is not to simply drive price down, rather, to create enabling technologies that move mankind forward and allow people to do things they've never even imagined. We're seeing massive things with massive processing power and data, all while someone else manages that infrastructure, who LOVES managing things at scale, who I can't afford to hire an who has become the expert I never will be.

If the goal is simply to reduce cost, then we aren't creating something big. We're just moving money around.

In a way, I think reducing cost is often (not always) a necessary first step to enabling the big-picture visions you're describing. For example, cheap desalination means water for drought-struck Saharan Africans; cheap food saves lives worldwide; cheap computing leads to the situation we have today. "Moving money around" is not valueless by itself; that is, after all, what banks (and even currency itself) exist to accomplish, and manage to scrape by at it.

But again, taking your position at face value, I would counter that the level of expertise needed to maintain the data needs of most people is very modest compared to the level of expertise needed to sell everyone that amount of data at scale. If your needs are not dramatic (and most people's aren't) then "the cloud" may turn out to be more expensive than doing it yourself on top of the usual downsides of outsourcing. Not everybody has a scalability problem. And if you do have a scalability problem but your income is directly proportional to the scale, it may be cheaper to run it yourself anyway and hire those scalability experts. There are more cloud providers every year, not fewer, and Amazon and Google did it out of necessity and made a profit long before they realized they could monetize it.

In short, I think there are arguments for and against, like everything else, and people should understand the upsides and the downsides before choosing. Once the pendulum swings back there will be people leaving the cloud who probably should be there and I'll be arguing for them to use it, but for right now it seems like the herd is recklessly choosing the cloud without understanding why.

Inshallah. I was just thinking about this today in the context of networking and systems research playing against each other. Improvement on networking problems leads to a centralization cycle, but then systems become the bottleneck and we end up needing to improve that.
If it makes you feel any better, a comment on the Internet did not insult me at all.
>In addition, the overwhelming success of SaaS vs native apps leads me to think that your personal tastes and concerns are not representative of the average consumer.

Can we call this the Market Fallacy? "It sells most, therefore consumers must have wanted it above all possible alternatives."

Wrong. Consumers wanted it above all available alternatives. Key problem here is that software makers have been getting themselves out of the business of single-upfront-license proprietary, desktop software for nearly 15 years now, as hard as they can. They don't like competing with free (the open-source alternatives or the pirates). And didn't PG write a whole damned essay on this recently?

Just because SaaS is easier to treat as excludable economic property doesn't make it better.

I need processor support for certain assembler optimizations. Cloud servers don't let me constrain the processor version.
Am I the only one that hates the "cloud" buzzword? I'm trying to wade through the meaningless crud in this article, and I can't quite pinpoint what this article is advocating. It seems like he's simply suggesting to run your database, message queue, etc. on a remote server so you don't have to install it locally. That's not at all a new concept, and he's still advocating that you use a local editor/IDE, so you'd still need to install that as well as your language interpreter, external libraries, etc... Am I missing something?
This is not the first time I've heard this argument from a "cloud services provider", and surely it won't be the last.

I've found you can get very far on those four points (minimal configuration, accessible, collaborative, and minimal production-development gap) using shared virtual images, specifically using Vagrant. It's probably not a good solution if you require massive amounts of test data in development, but unless that's the case I just don't see the benefits of using SaaS components for development's sake.

Very true.. But often it's the service providers that think about these hard problems daily, talk to their customers, and attempt at making the world a better place by building great products. In the process it's really hard not to form opinions about the future. :)

Disclosure: I work for Iron.io

Because my dedicated server with a managed host is cheaper and more convenient than doing everything myself.

I use some cloud services, but not all. Nothing wrong with a hybrid solution.

> Software-as-a-Service (SaaS) has become the most popular way to consume software

I'd love to see data that backs up that claim.

Perhaps if the question were rephrased as "Why aren't you developing in Notepad", it would be easier to answer.

If you look at the spectrum of ways to edit code, with edlin at one end and VS.NET+ReSharper at the other, you wouldn't find a single one of the existing Cloud IDEs sitting more than 5% of the way off the zero end of the scale.

Give it time, and they'll get there. I'm looking forward to that day with great hope, but it still seems like it's a long way off.

Don't we need to define the term "cloud" before we even attempt answering this question? Cloud can be SaaS (according to Salesforce and many other SaaS companies). Cloud can be IaaS such as that provided by a datacenter owner/operator. Cloud can be shared elastic hosting such as that provided by Amazon, Azzure, etc.. Cloud can even be private elastic hosting or "Cloud in a box" such as that the client owns/controls/manages the physical hardware AND virtualization software. Cloud can be a hybrid solution such as what has already been mentioned... but effectively serves as any combination of the flavors listed above. Last but not least, Cloud can simply mean anything "online" for most who are not geeks and still think the internet works by way of magic.

Thus... if the term is not defined... for the sake of this thread... I don't see how anyone could argue that they are NOT already developing in the Cloud? So... iron.io, what does "cloud" mean to you?

Cloud has a lot of different meanings these days so it's nearly impossible to really define it, but it is possible to think of them in various different contexts:

- Consumer cloud or SaaS for consumers (gmail, rdio, facebook, etc) - SaaS for business (salesforce, box, etc) - Cloud Infrastructure Services (amazon, rackspace, etc) - Cloud Application Services - higher level services on top of cloud infrastructure (heroku, iron.io, mongolab, papertrail) - Private clouds (which can include several of the above) - etc...

In this article I'm referring to cloud application services because those are the high level services that just take a couple lines of code and a couple of minutes to configure and use.

One word, debugging. Stopping program execution at a break point and inspecting a memory location can be incredibly helpful.
Because I spend 30% of my time developing in cars, planes, and coffee shops without free wifi. Because, unless I'm learning a new framework, I'm often more productive in those spaces.

Because every second I can't work because of something beyond my control is agonizing. I put one of the biggest reasons for Github's success is that it uses Git, which is intentionally not dependent on a central repo.

Because people who think "the cloud" is the answer to everything are jokes.

Because there isn't even a problem. Set up a VM which mirrors your prod environment and give it to your developers. Done.

Because any cloud-based system which is powerful enough to support some of the applications I've developed isn't going to be any easier to configure than just setting up my own VM.

Because paying to develop is stupid. It's a disincentive to trying new projects.