Performing computing and communication tasks on parallel and distributed systems may involve the coordinated use of different types of machines, networks, interfaces, and other resources. All of these resources should be allocated in a way that maximizes some system performance measure. However, allocation decisions and performance prediction are often based on "nominal" values of task and system parameters. The actual values of these parameters may differ from the nominal ones, e.g., because of inaccuracies in the initial estimation or because of changes over time caused by an unpredictable system environment. An important question then arises: given a system design, what extent of departure from the assumed circumstances will cause the quality of service to be unacceptably degraded? That is, how robust is the system? To address this problem, we have designed a methodology for deriving the degree of robustness of a resource allocation-the maximum amount of collective uncertainty in task and system parameters within which a user-specified level of performance can be guaranteed. We will illustrate our procedure by using it to derive robustness metrics for some example distributed systems. Furthermore, we will demonstrate the ability of the robustness metric to select the most robust resource allocation from among those that otherwise perform similarly (based on the primary performance criterion). This paper is for the Multiconference Keynote presentation to be given by H. J. Siegel.