Research Article
A Microservice Resilience Deployment Mechanism Based on Diversity
(1) | Input: microservices information ms_info | (2) | Nodes information node_info | (3) | The list of microservices mslist | (4) | The list of microservices versions image_versions | (5) | The list of nodes nodelist | (6) | The number of deployments deploy_num | (7) | Output: the deployment on the node node_deploy_info | (8) | The deployment of microservices ms_deploy_info | (9) | node_deploy_info = [ ] | (10) | ms_deploy_info = [ ] | (11) | for ms_name in mslist: | (12) | sort the image_versions from small to large based on resource consumption according to ms_info ⟶image_versions_sorted | (13) | for instance_seq in range (deploy_num): | (14) | choose the least used and minimal resource consumption version ⟶ deploy_version | (15) | node_ candidates ← find the node with minimal deploy number of ms_name | (16) | deploy_node ← the node with minimal load in node_candidates | (17) | while the resource of deploy_node is not enough: | (18) | deploy_node ← find the next node with minimal load in node_candidates | (19) | end while | (20) | update the resource information of node_info | (21) | ms_deploy_info[ms_name][deploy_version] + = 1 | (22) | node_deploy_info[deploy_node][‘deployment’][ms_name] + = 1 | (23) | end for | (24) | end for | (25) | return node_deploy_info, ms_deploy_info |
|