Microservices versus Monoliths: Identifying Challenges and Proposing Practical Recommendations
摘要
The microservices architecture has risen as a compelling alternative to traditional monolithic architecture. In monolithic systems, applications are developed as single, cohesive units that communicate internally, typically using a shared database, and each new feature implementation requires redeploying the entire application. On the other hand, microservices divide the application into smaller, independent units that communicate through lightweight mechanisms and manage their own distinct data sets. While this architectural style offers numerous benefits, it also presents certain challenges. This study examines the advantages and disadvantages of both microservices and monolithic architectures as documented in the literature and observed in industry practices. Through a Multivocal Literature Review supplemented by a survey of software development professionals, this research identifies key challenges associated with the adoption of microservices. The results highlight various operational and strategic difficulties that may impede the effective implementation of this architecture. Hence, this study provides a series of actionable recommendations aimed at overcoming these challenges to enhance software development practices using microservices architecture.