Special tools are needed to manage the company's highly customized IT infrastructure.
Reliance on open source code runs deep among Google's developers, and the company uses open source in its production systems, too. The software has been Google-ized--something new added to make it fit Google's way of doing things.
A majority of Google's engineering desktops are Linux machines. They're typically loaded with tools such as the Free Software Foundation's Gnu C Compiler; Make, a Unix utility for assembling files into a C program; and Apache Ant, open source code for assembling Java applications from Java files.
In that sense, Google looks "very much like a typical IT shop in a lot of ways," says Chris DiBona, open source program manager.
But when it comes to the Apache Web Server, one of the most common pieces of open source code, Google eschews the standard issue. "We use very little Apache around here," DiBona says. Google's internally developed Web server has been tuned to provide monitoring and health information for system reliability.
Google developers use a homegrown system to generate a "build" out of complex software projects; the system is capable of integrating code in different languages from distributed developers. "We have a very large code base, and there are often a lot of dependencies," DiBona says. The system can heed those dependencies and enforces use of previously established, tested code when it fits files together.
Google talks up its ties to open source, but the company's IT infrastructure is so customized, such as its "cell" data storage system, that specialized tools are needed to manage the code that taps such resources.
Ajax, which powers Google Maps and Gmail, is one area in which Google has given some of its own development expertise back to the open source community. Google contributed $3 million to support interns for 600 open source projects this summer and last.