Detecting Performance Antipatterns before Migrating to the Cloud

Performance is one of the key drivers for migrating existing systems to Cloud. While Cloud computing platforms come with a promise of scaling on demand, simple lift and shift of an existing application to Cloud would often not be the best solution. The design of a software system has a significant bearing on its performance and while migrating to Cloud, certain design patterns, can be detrimental to software performance. The area of detecting performance antipatterns automatically in context of Cloud migration and assessing their effects on performance is however unstudied. In this paper we present an approach to assess a system for known performance antipatterns, before Cloud migration. Our approach leverages static analysis and also factors in information about the prospective deployment on Cloud to evaluate whether certain antipatterns become prominent if the system is migrated to Cloud. We have found that the presence of these performance antipatterns can actually worsen the performance of parts of a software system containing them, when compared to those without these.