1. A computer-implemented method for managing releases of an application having a plurality of functional components that are executed on a plurality of different nodes, the method comprising: retrieving a first plurality of specifications for the functional components, wherein each of the first plurality of specifications specifies one or more software components required to implement one of the functional components; retrieving a second plurality of specifications for the specified software components, wherein each of the second plurality of specifications specifies contents of a software component used to compile a compatible executable file of the software component, the specifications including one or more files having computer code formatted in an architecture-independent representation; and generating an archive file that includes the first plurality of specifications for the functional components and the contents specified by the second plurality of specifications, wherein the archive file is assigned a version number that identifies a release of the application.