Exploring architectural scalability. - Brataas, Gunnar (Software engineering notes.)
We describe a structured, hierarchic approach to exploring the scalability of IT systems architectures. An architecture is considered to be scalable over a particular set of requirements if the physical resource usage per unit of capacity remains roughly constant. For completeness, both requirements and capacity must be defined in the three dimensions of processing, storage and connectivity. Interactions between the three dimensions are considered, as are various forms of departure from non-uniform scaling. Scalability is explored via a combination of measurement and static and dynamic models. Appropriate scale-invariants are introduced to eliminate congestion effects and packaging issues from the analysis. This paper focuses on processing and to a lesser extent, on storage. The method is applied to a practical case study of Transigo, a J2EE-based software platform used in the Norwegian banking industry. We find that understanding the relationship between replication and upgrade for systems, subsystems and devices is key to guiding the exploration of scalability.