High performance servers, cheap network storage, faster network connections, and improved peripheral performance have become subtle contributors for a culture of IT waste. System designers are increasingly relieved of the burden of designing efficient systems that utilize resources conservatively, and can easily fall back on platitudes like “just add more hardware”. A system designer may have some insight into the cost of the hardware, peripherals, connectivity, and support required to realize their solutions, but will usually have little or no insight into the energy consumption of their solution once it is in production.
The IT industry is perhaps more susceptible to fads than other engineering disciplines. Perhaps this is because unlike other engineering disciplines, the IT industry requires little or no certifications or qualifications. A valuable paradigm, which can be useful solution in specific circumstances, becomes a panacea for all ills. The indiscriminate use of centralized servers to process all requests, which is a valuable architectural approach for some specific problems, results in desktops with the processing capacity of a server behaving like a thin client.
Today, computationally intense processes for enterprise applications are usually performed on centralized server architectures. The collective spare capacity of desktops available within an enterprise far exceeds the capacity of the same centralized servers, and could be utilized to perform tasks that work well in a distributed environment. For instance, the periodic generation of invoices into a PDF format is a computationally intense process usually performed during a monthly billing run, resulting in millions of page impressions. Most organizations reduce the load on their servers by generating invoices for customers on different dates, resulting in an entire business process due to the processing capacity limitations of centralized servers. Desktop PCs are perfectly capable of generating PDF documents, and in fact, most desktop users generate PDF documents from their office productivity suites all the time. The same load can be distributed to the dormant desktops in the enterprise, and invoices can be generated at a significantly lower cost.
Similarly the processing of events and transforming them into universal formats can be handled by dormant machines. For instance, in Telecommunications, events like a person calling another person are used to generate invoices. These events are gathered from different systems and correlated into a single format for processing. This transformation is into a universal format, and distributed machines can be instructed to transform a wide variety of formats into a single format.
Grid computing architectures provide the capability to fulfill both of these outlined scenarios, and would go a long way towards creating a leaner IT infrastructure. Grid computing isn’t exactly a new paradigm either, with applications like SETI@home available since 1999, and mature open source frameworks like Globus available since 1997 with frequent releases. Grid computing, then, is an efficient solution for some specific problems in the Enterprise, and like using centralized servers for doing all the processing, not a panacea for all ills. However, as the technical threshold of realizing a grid-based solution is significantly higher than that of a centralized web-based solution (read 1 server holds all, with a thin client), Grid computing isn’t as much of a enterprise fad.
The collective energy consumption of a 50,000-square-foot data center (approximately 4,600 sq meters), a typical size for a large enterprise, is approximately 4 megawatts of power, or the equivalent of 57 barrels of oil a day. The principal focus of Green IT has been on the hardware required to support software systems, and not on the software utilizing that hardware. Enterprise applications increasingly rely upon large clusters of servers in order to support the high loads demanded of centralized applications.
Creating layers and abstractions are important in designing effective enterprise architectures, but a consequence can be a fragmented view, resulting in statements like: “It’s not my problem, I only do this bit of the architecture”. A single layer of the entire architecture, such as the GUI layer, services layer, or the database layer, becomes the entire focus of an individual, and the other layers becomes someone else’s problem. Excessive scaffolding is required to wire these layers together as a result of these fragmented and compartmentalized perspectives. The indiscriminate use of XML (“because it’s XML!” ) within an enterprise application adds to its unnecessary performance burdens. The system designer, however, can remove the burden of these inefficiencies by requiring that all access to the application be made through a browser, and the enterprise application environment would require as much hardware as possible for the money.
Another anti-pattern of enterprise integration is “a data transformation for each department”, where individual departments within a large enterprise transform data into a localized format, rather than working towards a shared data structure within the whole enterprise. The treatment of each data domain as a separate kingdom leads to a wasteful integration architecture, where the temporary necessity of data transformation becomes a solution in perpetuity.
This blog entry is an appeal to architects and designers within enterprises that feel responsible for the condition of our planet, and want to reduce the energy footprint of their IT applications landscape. I would like to suggest actively rating proposed and existing application architectures, both internally developed applications and those provided by vendors, based on the level of waste within the architecture. A simple way of rating them would be based on the number of icebergs that the application architecture would melt for each year in operation. I realize that the rating is very subjective, and a consistent unit of measure of architectural consumption or waste hard to achieve. However, my hope is that environmentally conscious architects will use the ratings, however subjectively, to drive home messages to reduce IT waste. Here’s a rough (and perhaps somewhat non-corporate) proposal, so please temper or sanitize the language based on your working environment: