Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.
This write-up focuses on the Scalability Types applied to IT systems, the vertical and horizontal approaches, respectively referred to as scaling UP and scaling OUT.