Most enterprise systems have relatively large and mission or business-critical audiences. The definition of large or mission critical can vary significantly between organizations, but under any definition it applies additional pressure to the systems. Both performance (the speed and effectiveness of operations and workflows) and scalability (the system’s ability to support multiple concurrent workflows or users) are critical to user experience. Building and maintaining a well-architected ArcGIS system requires using appropriate tools to establish clear performance baselines, an understanding of requirements for scalability, and maintaining an architectural flexibility to respond to changes in use and requirements from users. Different ArcGIS components and workflows scale in different ways, and understanding the available options is important in both the design and operation phases for a system.
Performance can mean many things, from simple request-based metrics like average response time to subtler measurements like user experience quality and workflow completion rates. These can also be subjective targets, depending on user expectations, their experience with a system or application, and their own conditions, such as client machine performance or network connectivity. When assessing a performance question or concern, carefully establishing a baseline is the first important step. Esri provides some Esri-specific testing and monitoring tools, but this section also covers how other tools can be successfully used for performance assessment.
In any system, the most important performance metric is usually perceived performance - what the user thinks they are seeing. If all database queries are operating effectively, and service usage is moderate, with all indicators showing good availability, a user might still improperly initiate a workflow, leading to an application state that they might blame on system performance.
The scalability of a system can also be defined in several different ways - some organizations use this term to refer to the default system configuration, and how many users that configuration can scale to. Another definition is related to automatic system scaling in response to load, where increased user or system requests leads to a system scaling either vertically or horizontally. In either case, scalability is subjective to the expected use of the system, and well-architected systems are designed to operate at a reasonable and cost-effective standard scale while supporting the expected growth of use over time and implementing effective workload separation to support resilience.