Exploring Microservices Architecture in PHP with Laravel : A Practical Implementation and Performance Analysis
Tran, Hoang Thanh (2024)
Tran, Hoang Thanh
2024
Master's Programme in Computing Sciences
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2024-11-12
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202410239439
https://urn.fi/URN:NBN:fi:tuni-202410239439
Tiivistelmä
Microservices architecture has earned a lot of attention lately as a renowned paradigm and efficient technique to design huge software applications as a collection of small, modular, and scalable services that communicate through well-defined interfaces. Recent iterations of PHP, one of the most popular server-side programming languages, have made major advancements that enable complete compliance with the microservices design concepts. The goals of the thesis are to explore the benefits and challenges of microservices architecture in PHP with Laravel, a fast and powerful PHP framework that provides a variety of functionalities for microservices development, and to provide a practical guide and performance analysis for developers who want to implement this approach.
In order to accomplish these goals, the thesis answers some key research questions on how to effectively design and implement a microservices architecture using PHP and Laravel frameworks, the challenges that arise during implementation, and how to measure the performance of microservices compared to monolithic architectures by conducting a case study focusing on microservices application implementation.
By implementing a case study, the thesis explores the suitability of adopting Laravel tools and features to handle aspects of microservices such as service communication management, authentication, and containerization. The thesis also discusses the limitations and trade-offs of using Laravel to build microservices applications including managing the complexity of communication between services, ensuring data consistency between services, and customizing the framework.
Through a performance evaluation experiment using JMeter, the thesis compares the performance of a microservices architecture with a traditional monolithic application, both applications are developed using the same configuration. Although microservices are clearly advantageous in terms of scalability and modularity, they also include additional overhead, especially when it comes to service coordination and communication, which in some cases can impact the overall performance of the system.
Despite the challenges and trade-offs that need to be considered in the thesis, it demonstrates that Laravel can achieve the high performance, scalability, and maintainability required for a microservices architecture.
In order to accomplish these goals, the thesis answers some key research questions on how to effectively design and implement a microservices architecture using PHP and Laravel frameworks, the challenges that arise during implementation, and how to measure the performance of microservices compared to monolithic architectures by conducting a case study focusing on microservices application implementation.
By implementing a case study, the thesis explores the suitability of adopting Laravel tools and features to handle aspects of microservices such as service communication management, authentication, and containerization. The thesis also discusses the limitations and trade-offs of using Laravel to build microservices applications including managing the complexity of communication between services, ensuring data consistency between services, and customizing the framework.
Through a performance evaluation experiment using JMeter, the thesis compares the performance of a microservices architecture with a traditional monolithic application, both applications are developed using the same configuration. Although microservices are clearly advantageous in terms of scalability and modularity, they also include additional overhead, especially when it comes to service coordination and communication, which in some cases can impact the overall performance of the system.
Despite the challenges and trade-offs that need to be considered in the thesis, it demonstrates that Laravel can achieve the high performance, scalability, and maintainability required for a microservices architecture.
