Outsourced Clue

Providing big company technology recommendations to the masses

Archive for the ‘programming’ tag

Programmers are Causing Global Warming (Repost)

without comments

I posted this before on an old blog, thought I would repost it here:

Catchy title eh? I have decided that all of the issues of global warming can be attributed to programmers. Lazy programmers. “What is he talking about?” I hear shouted from the fourth row. I am talking about the extremely common mantra of “just throw hardware at the problem”. Instead of spending time to actually plan and optimize software, people throw up a quick piece of crap, and hope that it scales. When it doesn’t, they just buy bigger and more hardware. Problem solved.

I spoke about “How can see many people outgrow their data centers” before, this is really a follow up to that entry. The gist of it is that there is a LOT of electricity being wasted by half-ass solutions. This wasted electricity in turn releases carbon in the atmosphere, which causes global warming (this is of course a very watered down scientific analysis of global warming, but I am simple man that thinks in simple terms).

I was at the San Jose NANOG conference a few months ago, and sat in on a interesting panel titled Hot Time in the Big IDC: Power, cooling, and the data center. It was a round table discussion about what can be done about the severe lack of power and cooling that is affecting data centers around the world. This shortage affects their customers all too often (speaking from experience as well as talking to buddies who have similar challenges). It has become a nightmare to get sufficient power in data centers. Most will make you commit to a full cage if you need more breakers than are allocated for a single rack. Anyways, back to the panel. There were some pretty influential representatives from some large organizations, Cisco, Sun and Switch and Data (which purchased PAIX), to name a few. These individuals discussed some of the challenges facing IDC’s these days, and ways to solve them. The hardware people discussed how they are working to develop faster machines that draw less electricity and need less cooling. The data center/exchange people discussed some of their plans for bringing in more advanced cooling solutions. All of the topics were definitely paths they should take, but NO one touched on the most logical way to alleviate the problem. I wanted to stand up and yell “Hey Chuckos! If programmers and systems engineers just spent more time designing a proper system, then you would have AT LEAST a 50% reduction in cooling and capacity needs”. I say at least cause there is no hard numbers or facts I can point at to come up with a truly accurate number.

I can tell you from experience, I am amazed at some applications I have seen and how poorly they scale. Sometimes it’s as simple as slapping an index on column properly (I have seen an application that ran for years with the main sales report taking 4-5 minutes to run. A single index was placed on the proper column, and the time went down to 2 seconds. Larger database systems were purchased for this customer just so the system wouldn’t be “so slow”). This is an all too common issue that I know some of the more astute readers of this entry (if there are any readers of this entry) come across often.

So what do we do you ask? To help yourself and to help the world (give a man a fish and he eats for a day, show a man how to fish, and he eats forever or something like that), just sit down and think before your project starts where the bottlenecks could be, and how you can alleviate them. Then, understand how a computer and network actually work. Armed with this information, you should be able to design and develop a scalable system that doesn’t require 10 web servers, 5 database servers, and 5 application servers. And that my friends, would help save the world.

UPDATE:Dan Prichett, from eBay, takes the discussion a step further.

Written by sleach

July 16th, 2008 at 12:09 pm