{'fraction_non_alphanumeric': 0.020090732339598186, 'fraction_numerical': 0.0, 'mean_word_length': 6.0181818181818185, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Optimization of Deployment Topologies for Distributed Enterprise Applications

Enterprise applications are typically implemented as distributed systems composed of several components. Deciding where to deploy which component is a difficult task that today is usually assisted by logical topology recommendations. Choosing inefficient topologies allocates the wrong amount of resources, leads to unnecessary operation costs, or results in poor performance. Testing different topologies to find good solutions takes a lot of time and might delay productive operations. Therefore, this work introduces a software based deployment topology optimization approach for distributed enterprise applications. We use an enhanced performance model generator that extracts models from running applications. The extracted model is used to simulate performance metrics (e.g., resource utilization, response times, throughput) of an enterprise application. Subsequently, we introduce a deployment topology optimizer, which selects an optimized topology for a specified workload. The following two optimization goals are presented in this work: (i) minimum response time for an optimized user experience and (ii) maximize resource utilization for cost-effective topologies. To evaluate the approach we use the SPECjEnterpriseNEXT industry benchmark as distributed enterprise application. The evaluation demonstrates the accuracy of the simulation compared to the actual deployment and the pre-eminence of the selected topology compared to runner-up topologies.