چكيده به لاتين
With the advancement of technology and the emergence of diverse computing environments such as fog, edge, and cloud, the need for efficient mechanisms for scheduling and placing microservices, as well as tasks in general, has significantly increased. This thesis aims to design and develop a novel mechanism for placing microservices in distributed and heterogeneous environments. The proposed mechanism, leveraging a combination of modern reinforcement learning techniques and graph analysis, is designed to reduce response time, optimize resource utilization, and enhance flexibility. In the first phase, the dependency graph of microservices is constructed using the initial program information and the computing environment. This graph is then partitioned into logical segments using the Louvain algorithm, where the graph represents the interactions among microservices and the degree of their dependencies. The second phase involves initial scheduling and placement of microservices, considering resource constraints and network latency. In the third phase, a multi-agent reinforcement learning environment is utilized to optimize the initial placement. The reinforcement learning agents, by directly interacting with the environment and receiving rewards based on their performance, make optimal decisions for migrating microservices. Microservice migration is conducted for reasons such as improving response time, better utilization of computing resources, reducing communication costs, and achieving greater alignment with environmental changes. With its high adaptability, the proposed mechanism dynamically updates its decisions in response to changes in user requirements, request patterns, or resource conditions, thereby maintaining system efficiency. The simulation results of the proposed mechanism demonstrate its effectiveness in improving microservice response times, optimizing resource usage, and adapting effectively to environmental changes. By offering a modular and extensible approach, this mechanism provides the potential for application across a wide range of programs and computing environments.