A Comprehensive Improved Salp Swarm Algorithm on Redundant Container Deployment Problem

As a representative of lightweight virtualization, container technology has been widely used in cloud services and edge computing applications. However, in the resource pool scenario composed by multiple intelligent terminal devices, considering the limited resources and poor stability of these devices, it is necessary to split the overall service into multiple microservices and deploy the backups of them in respective containers. Traditional container scheduling policies tend to be less effective in solving such problems. Therefore, the article used a meta-heuristic algorithm to solve this kind of problems. Based on a newly proposed salp swarm algorithm (SSA), the paper presented a comprehensive improved SSA (CISSA). CISSA improved the performance of the original SSA by 4 steps. To verify the performance of CISSA in different kinds of test functions, the algorithm was compared with 7 commonly-used meta-heuristic algorithms in 29 benchmark functions provided by the author of SSA. In addition, the article constructed three container cluster models of different sizes, all these algorithms were used to solve these redundant container deployment problems, the experimental results indicate that the CISSA is superior to other algorithms in such problems of different dimensions.


I. INTRODUCTION
With the popularization of intelligent terminal equipment, there are a large number of intelligence terminal devices with idle resources, These devices are closer to users, in order to make reasonable use of these idle resources, it can be considered to integrate these devices into a resource pool to provide overall service, each device is responsible for some microservices. However, different from the excellent stability of servers in cloud service, these terminals devices have problems such as small amount of idle resources and poor reliability. Therefore, when building resource pools with these unstable devices, we should consider dividing the overall service into several fine-grained microservices. In the meantime, in order to guarantee the stability of the system, more redundant backups should be added for each The associate editor coordinating the review of this manuscript and approving it for publication was Rajesh Kumar. microservice. To ensure that when some devices break down, backups on the rest of the devices can continue to complete the work, the backups of the same microservice should be deployed on different devices as much as possible [1].
At the same time, backups for each microservice deployed in multiple devices need to run with the same operating environment. In consideration of the heterogeneity of terminal devices, virtualization techniques are usually used to build multiple isolated running environments in a device. As a representative of lightweight virtualization, Docker is transparent to the underlying physical machine and costs less system resources [2]. Therefore, the common practice in the industry is to run each microservice on a mutually independent Docker container, the independence of each microservice is achieved through the isolation of the container. When one microservice upgrades or fails, the others will not be affected. In summary, the deployment problem for microservices can be equivalent to container deployment problem.
In recent years, many researches on the container deployment problem have been made on the basis of different evaluation indictors [3], [4]. Based on the background above, the paper proposed a scheme to deploy multiple containers in several terminal devices, on the premise that the total resources of containers deployed in one device should be less than the total resources of this device, the fitness of redundant container deployment scheme was evaluated by the robustness of the system and total completion time of service.
It can be seen that the redundant container deployment problem in terminal device is a NPC problem, and there are multiple solving solutions. When the dimensions of the solution sets become larger as the number of container increases, the optimization problem will be much more complex. For solving these single-objective problems with multidimensions, several meta-heuristic algorithms have been proposed in recent years. These meta-heuristic algorithms are more effective than the traditional methods.
Salp swarm algorithm (SSA) is a population-based metaheuristic optimization algorithm proposed by Mirjalili et al in 2017 [5], which mimics the predatory behavior of salp swarm. The algorithm is easy to implement due to the only main controlling parameter. The performance of SSA is verified by 3 types of benchmark functions, according to the comparison of these test results, the excellent exploration ability makes SSA be capable of solving optimization problems in complex situations.
With its good performance, SSA has been widely used in several areas. In [6] and [7], SSA has been used in multilevel color image segmentation, T. K. Mohapatra and B. K. Sahu [8] have used SSA to optimize PID control, and SSA has also been implied in [9] to design power system stabilizer.
However, SSA still has some limitations. The excellent exploration ability may bring the deficiency of optimization ability, meanwhile, SSA also suffer from the shortcoming of mediocre convergence rate. Since the algorithm is relatively new, there are few corresponding improvements of it. Tavazoei and Haeri [10] have designed a chaos-induced and mutation-driven schemes, the algorithm is optimized at the expense of time complexity. Werth et al. [6] have added Levy flight in the original SSA, but the main concern is the application scenario of the algorithm rather than algorithm optimization.
To overcome the disadvantage and improve the accuracy of SSA, a comprehensive improved salp swarm algorithm was proposed in the article. At the same time, the proposed algorithm would be used to solve redundant container deployment problem. The main contributions of the work are described as follows: • A more suitable initial distribution is selected by comparison. And using revised main controlling parameter c 1 to reconstruct two-stage exploration mechanism.
• Setting two thresholds to distinguish the different roles of these search agents during the iterations and using a position updating method based on spiral line to replace the original weighting scheme. • A redundant container deployment model was proposed, which was judged by the robustness of the system and total completion time of service.
The rest of this paper is organized as follows: the original SSA is briefly introduced in Section II. Section III presents the comprehensive improved salp swarm algorithm (CISSA). Section IV displays experimental results and performance of all test algorithms. Section V describes the redundant container deployment model and some corresponding experimental parameters. Section VI applies the proposed CISSA to solve multi-sized redundant container deployment problem. In the end, conclusions and future expectations are shown in Section VII.

II. A REVIEW OF SSA
The mathematical model of SSA simulates the predatory behavior of salp swarm, which belong to the family of Salpidae. The algorithm divides the population of salp swarm into two groups: leader and followers. In each iteration, all non-leader individual follows its previous individual, rather than move independently towards to the optimal value.
The motion trail of salp swarm is shown in Figure.1, positions of these salp swarm are defined in a D-dimensional search space and D is the dimensions of variables and solutions, meanwhile, initial positions of N search agents are initialized by random distribution. There is a food source in the search space as the target of swarm, which is represented The position update formula is proposed as Eq. (2.1): where X 1 j is the position of the leader salp in the j-th dimension, F j is the position of food source in the j-th dimension, ub j indicates the upper bound of j-th dimension, lb j shows the lower bound of j-th dimension, c 1 is nonlinear convergence parameter and c 2 , c 3 are random numbers between 0 and 1.
Eq. (2.1) shows that the leader only updates its position based on food source, the most important coefficient c 1 is used to balance exploration and exploitation which is defined VOLUME 7, 2019 as follows: where l is the current iteration and L is the maximum number of iterations.
The aim of generating random parameters c 2 , c 3 is to make a disturbance. These parameters are used to determine the direction in which each individual moves around its target.
To simulate the trajectory of the swarm, basic SSA updates the position of the swarm as Eq. (2.3): where X i j is the position of i-th follower salp in j-th dimension, t represents time, v 0 shows the initial speed, and a is the acceleration. In the model, time is replaced by iterations, and v 0 = 0, the equation can be expressed as follows: where X i j shows the position of i-th follower salp in j-th dimension.

III. THE IMPROVED METHOD OF CISSA
The proposed CISSA is equipped with different initial distribution and exploitation mechanism with better physical meaning. Firstly, a kind of chaotic mapping distribution took the place of the current random distribution. Secondly, CISSA used two-stage exploration mechanism to control the step length much precisely. Thirdly, disturbance factor was integrated in the main parameter c 1 to increase the diversity of solutions. Lastly, considering the original convergence method of follower salps was short of physical meaning, a kind of spiral motion was used to replace the original updating method.

A. INITIAL DISTRIBUTION WITH CHAOTIC MAP
Meta-heuristic algorithm usually initializes population distribution with random solutions, then explores and exploits the search space randomly with specific probability. However, meta-heuristic algorithm is sensitive to the initial distribution of search agents [10], in this chapter, our main motivation was utilizing the sequences which were generated from various chaotic maps to replace the random numbers in definitional domain.
Considering the precision of original SSA is affected by its relatively long exploration step, it performs unsatisfactorily in unimodal test functions. However, in order to maintain its good performance in multimodal and composite test functions, we need to retain the exploratory ability of the original algorithm, so choosing a more suitable initial distribution for SSA can improve the accuracy of the algorithm to a certain extent.
It's usually difficult to evaluate the qualities of the generated sequences, in order to achieve the task [11], various SSA algorithms with different chaotic maps were proposed to compare the performance of each initial distribution. In this chapter, 5 most widely used chaotic maps were used to verify the importance of initial distribution for solving the optimal solutions. These chaotic maps have their unique regularity of distribution. The mathematical expressions and characters are described in the following subsections and the visualization figures are shown in Figure 3.
The iterative equation of Chebyshev chaotic map is simple and easy to implement, when the parameter P is more than 2, the Chebyshev map can enter the chaotic region and produce an infinite length of non-periodic chaotic real sequences under infinite precision conditions [12]. Meanwhile, in terms of uniformity, Chebyshev chaotic sequences are more likely to be distributed near the boundary. For the test functions with the optimal values near the boundary, heuristic algorithms with initial distribution using the method always work better.

2) ITERATIVE MAP
Iterative chaotic map is between (0,1] with infinite collapses, compared with Chebyshev map, it is more sensitive to the initial value of iteration [13]. The equation is represented in Eq. (3.2).
where P is an adjustable parameter, the length of periodic windows could be reduced to 0 along with the increase of the parameter, which would make the sequences to produce chaos easily. In the article, P is set to 2.

3) LOGISTIC MAP
The equation of logistic map is shown in Eq. (3. 3) where P is an adjustable parameter, in order to generate sequences between (0,1), P is set to 4. When k → ∞, the probability distribution density function of logistic chaotic sequence is Chebyshev type distribution [14]. Similarly, for those test functions with optimal values near the boundary, using logistic map as initial distribution could help heuristic algorithm solve the problem better.

4) PIECEWISE MAP
This kind of piecewise map is modified from Bernoulli shift map [15]. For some test functions whose optimum values are near the midpoint of the definition domain, using this kind of piecewise function as the initial distribution solution can achieve relatively good results. The piecewise map is characterized as follows: where P is a control parameter whose range is between (0,0.5). In the article, P is set to 0.3.

5) TENT MAP
Tent map is a piecewise linear map with uniform probability density, power spectral density and ideal correlation characteristics. At the same time, there are four small periods exit in the iteration sequence of tent map, the thresholds are (0, 0.2, 0.4, 0.6, 0.8, 1) [16]. The equation of the tent map is formulated as follows: where u is set to 2 to make sure the range is (0,1). In the initial distribution, by mapping different normalized chaotic distributions to the definition domain of each benchmark function, we could get 5 comparison algorithms. The performances of these proposed approaches were tested on CEC2019 benchmark functions [17]. The test results on these 10 benchmark functions indicate that SSA with initial distribution of piecewise map is able to significantly improve the solution quality. These benchmark functions are shown in Table 1.
In order to validate the performance of these algorithms, these experimental results were averaged over fifty independent runs. The average values and standard deviation of 500 iterations are reflected in Table 2. Compared with other comparative algorithms, SSA with piecewise chaotic map could achieve mean optimization four times.
In addition, for the sake of further studying the differences between these methods, the Friedman test was applied to test the average ranking values of these algorithms. Based on the ranking results in Table 3, SSA with piecewise chaotic map has the best performance in solving these test functions of CEC2019.  The above experimental data show that when SSA adopts piecewise chaotic map as its initial distribution, its optimal performance in unimodal function can be improved. At the same time, in other types of test functions, due to the chaos of the initial distribution, the accuracy of the solution set will not deteriorate compared with the random initial distribution of the original algorithm.
Considering that in our engineering application, it is unlikely that the location of the optimal value will appear near the upper or lower bounds of the definition domain, it is reasonable to choose this kind of chaotic map in practical application. Therefore, using piecewise chaotic map as the initial distribution of CISSA has considerable research value.

B. REVISED EXPLORATION MECHANISM
The original SSA sets the threshold to 0.5N, which means the first half of search agents will work for global search in Eq. (2.1), and the other part will follow the former position to optimize the solution in Eq. (2.4), where N is the number of search agents. After a large number of experimental  comparisons, we found the threshold value 0.5N wasn't the best choice for most benchmark functions.
In the article, A two-stage exploration mechanism was proposed to replace Eq. (2.1). In the first stage, the exploration mechanism of SSA was maintained just to ensure the powerful exploring ability of the original algorithm, based on a large number of test comparisons on different types of benchmark functions, we set the first threshold to N /3 . The improved algorithm could keep the exploration ability of the original SSA during this phase. In the second stage, we set the second threshold to 2N /3 , the original exploration step length could be set to a more refined value in Eq. (3.6).
where i ≥ 2, X i j shows the position of i-th follower salp in j-th dimension, X 1 j is the position of leader salp in the j-th dimension, c 2 , c 3 are random numbers. Compared with the original location update formula, the shorter variable exploration steps of Eq. (3.6) are able to find optimum solutions with higher accuracy. C. REVISED NONLINEAR CONVERGENCE COEFFICIENT c 1 As mentioned above, the two-stage exploratory mechanism set the threshold value of exploration phase to 2N /3 , the enlarged threshold created a demand for slower decreasing nonlinear convergence coefficient c 1 , in order to make the parameter reduce nonlinearly from 1 to 0 in the new domain of definition, c 1 is revised in Eq. (3.7): where l is the current iteration and L is the maximum number of iterations.
Compared with original coefficient c 1 , we altered the index of c 1 to slow down the convergence process. In the meantime, the lack of perturbation could lead to the lack of creativity VOLUME 7, 2019 during the search iterations. To remedy this defect, damping motion is added in the convergence coefficient c 1 to increase perturbation. After multiple tests on different test functions, the weight ratio of damping motion was set to 0.3.

D. SPIRAL UPDATING POSITION
Original SSA updates the positions of follower salps by uniformly acceleration relation, and at the end it can simplify the solution to a weighted sum in Eq. (2.4). However, we can see that the shape of the salp chain in Figure 1 is more similar to spiral line. To make the model be more exact in mathematics and clear in physics, when serial numbers of follower salps are between 2N /3 + 1 to N , Eq. (3.8) would be used to replace Eq. (2.4) in our mathematical model. These follower salps spin around the leader by using a shrinking circle or a spiral shaped path [18], and Eq. (3.8) is calculated as follows: where X 1 j − X i j indicates the distance of i-th follower salp to the position of the first salp in the j-th dimension.
The new approach was physically closer to the trajectory of salp swarm. In each dimension, every follower salps moved in a kind of spiral motion around the leader salp, the magnitude of the spiral line was determined by the distance between the follower salp and the leader salp.
As we can see in the time complexity calculation formula, the improved CISSA has the same time complexity compared with the original SSA. Although some transformative genetic algorithms can sacrifice time complexity to get better solutions, however, in the case of large-scale redundant container deployment problem, because of the slow solving process and the instability of the devices, we need a solution with lower time complexity. In the experimental comparison of the next chapter, it can be found that CISSA are capable of achieving better solutions than SSA in most benchmark functions. Therefore, the proposed CISSA has important value in engineering application.

IV. COMPARISON OF EXPERIMENTAL RESULTS
In this work, in order to better compare the performance differences with the original SSA, we chose the same test functions used by the author of SSA.The improved algorithm CISSA was benchmarked on 29 test functions with 7 metaheuristic algorithms, including the original salp swarm algorithm (SSA) [4], whale optimization algorithm (WOA) [18], grasshopper optimization algorithm (GOA) [19], dragonfly algorithm (DA) [20], sine cosine algorithm (SCA) [21], ant lion optimizer (ALO) [22] and a classical heuristic algorithm particle swarm optimization (PSO) [23]. Each comparison algorithm performed well in certain areas, the implementation details of these algorithms were set as the papers [18]- [23] describe and the key parameters of these comparison algorithms were shown in Table 5.
These comparison algorithms have good performance in certain areas. WOA performs well in unimodal functions.  PSO, as a classical comparison algorithm, has excellent comprehensive performance. SCA performs well in stability, and GOA, ALO, DA are proposed in recent years, they are outstanding when dealing with some multimodal test functions and composite test functions.
These 29 benchmark functions are divided into 4 types, which are used to test search ability of the proposed algorithm. These functions are listed in Table 4, Table 7,  Table 8 and Table 10 Update the position with longer step length in exploration phase by Eq. (2.1) (8) Calculate the fitness of current search agent (10) end for1 (11) for2 0.2N < i < 2N/3 (12) Update the position with refined step length in exploration phase by Eq. (3.6) (13) Calculate the fitness of current search agent (14) end for2 (15) for 2N/3 < i < N (16) Update the position with spiral motion formula in exploitation phase by Eq. (3.8) (17) Calculate the fitness of current search agent (18) end for3 (19) if position of salp is not in the domain of definition (20) Modify the position to the upper or lower limit of the domain (21) end if (22) Choose the best fitness of all search agents, replace target fitness if it is a better solution (23) Record position of target (24) end for (22)   of definition [lb j , ub j ], and f min is the optimum value of each test function. In F1-F23, 30 search agents were employed by each algorithm to conduct optimization over 500 iterations, these algorithms were tested for 50 times. In F24-F29, because of the complexity of benchmark functions, each algorithm ran 100 iterations with 30 search agents, and these algorithms would be tested for 30 times.

A. EVALUATION OF EXPLOITATION ABILITY
The first type of benchmark functions is unimodal functions, which has only one global optimum. In Table 4, the unimodal functions F1-F7 are designed to test the exploitation ability of the algorithms. When an algorithm finds a more precise solution close to the global optimum, it indicates that the algorithm has a stronger exploitation ability.
Comparison data are shown in Table 5. In the table, CISSA works best in 4 of the 7 unimodal benchmark tests, and reaches second place twice. As for standard deviation and worst value, CISSA also perform better than the other algorithms in most cases, which means the proposed algorithm is able to produce an optimal solution with stability.

B. EVALUATION OF EXPLORATION ABILITY
The second and third types of benchmark functions are multimodal functions which own several local optimums. In Table 7 and Table 8, these multimodal functions F8-F23 are designed for evaluating the exploration capability of the algorithms. In the solving process, the solutions may fall into local optimums frequently. Only when the algorithms have excellent exploration abilities, can they avoid involving local optimums as much as possible.
According to the results in Table 9 and Table 11, CISSA outperforms all the other comparison algorithms in terms of average values in 10 of 16 benchmark tests and achieves 12 best values, as for the worst case, CISSA also performs  best in 12 benchmark tests. At the same time, CISSA behaves better than the original algorithm in 12 sets of data, which means the proposed CISSA behaves better in exploration phase compared with the original SSA.

C. EVALUATION OF AVOIDING LOCAL OPTIMUMS
Composite functions are the combination of several some basic benchmark functions with same domain of definition [24]. Compared with the multimodal test functions, this kind of functions have much more local optimal solutions, VOLUME 7, 2019 at the same time, it's hard to find the correlations among local optimal solutions and global optimal solution. Only when the algorithms strike the balance between exploration ability and exploitation ability, can they find solutions closer to the global optimal solutions.
The results in Tables 12 show that compared with other  7 meta-heuristic algorithms, CISSA still outperforms other algorithms on F24, F27, F28, and it ranks second among the other test functions, which means the proposed algorithm provides very competitive performance in the composite functions.

D. SIGNIFICANCE OF THE RESULTS
Simply comparing the average values couldn't reflect the difference between the results of each algorithm. Heuristic algorithms have some regularity in the results of test function, however, the distribution laws of these results are complex and they can't fully fit the normal distribution [25]. Therefore, researchers usually use non-parametric methods to statistic the results [26]. As two commonly-used methods of non-parametric statistics, Wilcoxon test and Friedman test are widely used in many areas.
In the article, in order to judge whether the results of CISSA were significantly different from results of other algorithms, the Wilcoxon test with 0.05 significant level was applied to investigate the statistical significant differences [27]. The result calculated in this way is marked as p-value. In this work, p-values were calculated based on averaged values between CISSA and the other algorithms.
When p-value is less than 0.05, it could be considered that difference between two samples is significant by definition. The results shown in Table 13 indicate that p-values between CISSA and other algorithms are less than 0.05 in most cases, which means the solutions of CISSA and the other could be regarded uncorrelated.
Meanwhile, we ranked the average performance of all algorithms by Friedman test [28]. The ranking results are as shown in Table 4 11, according to these statistical results, we can see that by improving the original SSA in 4 steps, CISSA can achieve better performances than the other comparison algorithms in all kinds of test functions.

E. COMPARISON OF CONVERGENCE PERFORMANCE BETWEEN CISSA AND SSA
In the chapter, we chose Page's trend test to compare the convergence performance between CISSA and the original SSA [29]. The procedure works by considering the null hypothesis of equality between the 10 treatments analyzed, which can be rejected in favor of an ordered alternative [30].  of the opposite comparison (SSA-CISSA) is also included. On each test function, the convergence curves of the two algorithms were divided into 10 equal parts, and the slope of tangent between adjacent equal points were calculated. Meanwhile, the test set the ranks' values from 1 to 10 according to the order of slope from small to large [31].
By adding the k-th slopes' ranking values of each test function, we could get the k-th parameter of differences in Table  15. After obtaining these values, the Page L statistic can be computed using Eq. (4.1): where C k is the sum of k-th slopes' ranking values of all test functions, where 1 ≤ k ≤ 10.
The comparison (CISSA-SSA) shows roughly increasing trend in the ranks, which is confirmed by a very low p-value. At the same time, the opposite comparison (SSA-CISSA), shows clearly that the ranks are not increasing, which is rejected by a p-value near to 1.0. These results show that the CISSA is converging faster than the original SSA.

V. REDUNDANT CONTAINER DEPLOYMENT MODEL
In microservice architecture, the overall service is divided into multiple microservices with corresponding functions. Microservices call each other though lightweight communication mechanisms [1]. A simple example diagram is shown in Figure 9, in the diagram, the red square represents the completion time for series of tasks on each microservice, and the dotted line represents the start time.
The total completion time depends on the microservice with the longest completion time and the total communication overhead [32]. For fixed business service, the number of calls between microservices is constant [33].
Simultaneously, considering that all microservices work on devices within the same LAN, communication overhead between devices could be assumed to be the same [34]- [36]. Figure 10 displays an example of microservice scheme. In the diagram, each microservice runs in the separate container. For example, microservice 2 runs in container 2, which VOLUME 7, 2019 is deployed in terminal device 1. Therefore, the deployment mode of microservices is equal to the deployment mode of corresponding containers.
Considering the instability of the terminal devices, the container where each microservice resides should be backed up on different devices to ensure the robustness of the resource pool. At the same time, on account of the limited resources of terminal devices, the maximum number of containers per terminal device is also far less than the number of containers that can be deployed on the server [32].
In the article, we assume that there are N microservice and each one handles a series of similar tasks. The total size of these tasks on each microservice are defined as {T 1 , T 2 , . . . T N }. Based on the above introduction, we added two backups for every container, therefore, there are 3N containers and M terminal devices for deploying these containers. The redundant container deployment model is described as follows: 1. There are N types of all the tasks, which are processed in N container, everyone is added 2 backups and runs in the corresponding backup container. The set of 3N tasks is {T 1 , T 2 , . . . T 3N }, T i represents the total size of tasks to be processed by the i-th container, and T i = T N +i = T 2N +i , where 1 ≤ i ≤ N , the total size of each tasks is as shown in Table 18. 2. The set of 3N resources is {R 1 , R 2 , . . . R 3N } and R i represents the pre-allocated resources of the i-th container, and R i = R N +i = R 2N +i , where 1 ≤ i ≤ N , the normalized resource of each container is as shown in Table 17. 3. We use X (k) to represent the device, in which k-th container is deployed, and 1 ≤ X (k) ≤ M , 1 ≤ k ≤ 3N . 4. The set of M resources is {S 1 , S 2 , . . . S M } and Sx represents the maximum amount of resources that the x-th terminal device can provide. To simplify the model, we only consider memory resource to reduce the dimension of resources, the normalized resource of each device is as shown in Table 16.

5.
A container can be operated at any device in the resource pool as long as the device can provide enough resource, which means 3N k=1 R x k ≤ Sx and R x k represents the k-th container is deployed in the x-th device. 6. The paper use matrix P[3N,M] to represent the uniqueness of containers, P x k = 1 when k-th container is deployed in the x-th device, otherwise P x k = 0. 7. The article uses F(X (k)) to represent whether 3N k=1 R x k ≤ Sx, when the condition is met, F(X (k)) = 1, otherwise F(X (k)) = inf. 8. Containers running in the same device work in parallel, and the operating speed of each container will not be influenced by other containers, because the resource of each container is pre-allocated. 9. Different microservices handle tasks at different starting times, we use time set {t 1 , t 2 , . . . t 3N } to represent them, t i represents the starting time of task on the i-th container, and t i = t 2i = t 3i , where 1 ≤ i ≤ N , the starting time of each container is as shown in Table 19.
10. Given the fixed resource cap for each container, the abilities of each device to handle different type of tasks on each container are different [35], [37]. The matrix of operating speed is set as mips[3N,M], mips x k represents the instruction processing speed of x-th device for similar tasks on k-th container. Considering that there is a positive correlation between instruction number and task size [38], the working time for the k-th container running on the x-th device is et kx , which is calculated as follow: where α is a constant coefficient, to simplify the model, assuming α = 1 in the calculation process. 11. The article set penalty factors to avoid backup containers being deployed on the same device as much as   possible, the relationship is shown as follows: 0 node x only has one or zero container of i 10 node x has two identical containers of i inf node x has all three identical containers of i (5.2) where 1 ≤ i ≤ N , and the total penalty is calculated as follows: 12. The total completion time of all microservices depends on the maximum work time of container, which is shown as: In consideration of the resource limitation relationship between containers and devices, Eq. (5.4) should be revised as follows:    13. Based on the above descriptions and assumptions, the quality of the redundant container deployment model is mostly depended on the total completion time and whether multiple backup containers are deployed on the same device. Hence, the overall evaluation indicator can be expressed as follows: fitness = total time * total penalty (5.6)

VI. EXPERIMENT OF CISSA ON REDUNDANT CONTAINER DEPLOYMENT MODEL
In the chapter, we have designed multi-sized redundant container deployment scenarios, which roughly cover the commonly-used size of terminal device cluster [39], [40].
To simplify the description, all containers and terminal device are composed by the basic types described in Table 16-Table 20.
In scenario 1, there are 8 containers which involve container type 1-8 in Table 16, and each container has 2replicas as backup containers, these backup containers are numbered as 9-16 and 17-24, therefore, there are 24 containers in all. Besides, there are 10 terminal devices, each device type in Table 17 has 2 terminal devices, for example, terminal device 7 and terminal device 8 are device type 4.
In scenario 2, there are 96 containers in total, including 32 containers and their replicas, the sequences of container number are as shown in Figure 11. And each device type has 8 terminal devices, which means there are 40 terminal devices in all.
In scenario 3, there are 1008 containers in all, including 336 containers and their replicas, each container type has 40 containers, and all these containers have 2 replicas of their own. And there are 420 devices in total with 84 terminal devices per type.
Considering that in real application scenarios, the resource pool composed by terminal devices is more prone to fluctuations compared with commonly-used cloud environments due to the instability of terminal devices, it's necessary to solve the problem by using an algorithm with lower time complexity [32].
In terms of container cluster scheduling systems, two of the most popular tools in industry are Kubernetes and Docker swarm [41]. However, in the terminal resource pool scenario where device resources are limited, deploying Kubernetes may consume a lot of resources [42], for example, the recommended memory reserve configuration should be up to 2G, such large resource consumption is intolerable for terminal devices. Considering the resource usage, we chose Docker swarm for practical application scenarios [43].
The backup strategy of Docker swarm is implemented by data volume mounting [37], but the recovery speed of this method is slow when the terminal device fails. There are no pre-reserved resources for backup containers. When failure occurs, the corresponding data needs to be transferred from the shared volume, and new container will restart. In resource-constrained embedded devices, these processes often take a lot of time. However, when the way of data volume sharing is not considered, redundant containers are deployed by using its own deployment strategies, the results are often unsatisfactory.
Docker swarm contains three default container deployment strategies, which are Binpack, Spread and Random [44]. In the process of experiment, each native functionality of Docker swarm is tested for 100 times, we found that all these default container deployment strategies of Docker swarm were uncapable to handle such complex problem. In these scenarios, containers and their own backups would be deployed in the same device inevitably. After multiple experiments, the mean values and standard deviations on the evaluation function measured by the three basic methods are all inf, the experiment results are shown in Table 21. These results indicate that simply using the native functionality of these common scheduling tools couldn't solve the real problem of these scenarios.
Meanwhile, considering that the terminal devices in the resource pool switch frequently, the corresponding container deployment method should have low time complexity. Compared to a series of algorithms that sacrifice time complexity for higher accuracy, we incline to use CISSA and these comparison algorithms, which can guarantee the accuracy of solving redundant container deployment problem while considering the time complexity.
In each scenario, 7 algorithms are compared with the proposed CISSA, and every algorithm runs 1000 iterations with 100 search agents. In order to reduce the accidental factors, every algorithm is tested for 100 times. In Table 22, we record the statistical data such as average values, standard deviations and best values.
In the model, the penalty factor as a multiplier will greatly affect the fitness of the final solution, therefore, the solutions obtained by these algorithms inevitably deteriorate when the problem dimension increases, that's to say, there are containers and their backups deployed on the same device. Although the tendency of the solutions is to deteriorate as the dimension increases, however, in each scenario, CISSA can still obtain the minimum average value and minimum standard deviation in all dimensions.

VII. CONCLUSION AND FUTURE WORKS
The article proposed a comprehensive improved salp swarm algorithm, which was modified in 4 mechanisms on the basis of the original SSA. The proposed CISSA was designed to improve the exploitation capacity and slow convergence rate without increasing the time complexity. In order to more convincingly compare the performance of CISSA and the original SSA, this article used the same benchmark functions used by SSA. The performance of the algorithm was superior to the other 7 comparison algorithms in most benchmark functions, and p-values of Wilcoxon rank-sum statistic tests were also used to prove the irrelevances of the results.
At the same time, this paper designed an evaluation index of redundant container deployment model, which was based on the total completion time and the robustness of the system. To verify the availability of the scheme, we used container clusters of different sizes. When CISSA was applied to redundant container deployment problem of different sizes, it could promote the performance of the original SSA and outperformed all the other comparison algorithms.
The research of CISSA and its application on redundant container deployment problem still remain many issues worthy of further study. Firstly, we should enunciate a theoretical model of convergence to the optimum [45], and the performance of CISSA needs further improvement. Then, given the varying importance of the various tasks running on the containers, we could set up different number of backups for each container. Lastly, in order to meet the increasing industrial demand, the optimized algorithm could be applied in multiple terminal devices located in different network segments, with the additional consideration of communication overhead between devices [46], [47].
HONG NI received the M.S. degree from the Institute of Acoustics, Chinese Academy of Sciences, in 1989, where he is currently a Researcher, a Doctoral Tutor, and the Deputy Director. His research interests include broadband multimedia communication, network new media technology and application, embedded systems, and middleware technology.
XIAOYONG ZHU received the Ph.D. degree in signal and information processing from the University of Chinese Academy of Sciences, in 2009. He is currently a Professor with the Chinese Academy of Sciences. His current research interests include embedded systems, virtualization technology, and new network communication.
RAN ZHAO received the B.S. degree in automation from Tsinghua University, in 2014, and the Ph.D. degree in signal and information processing from the University of Chinese Academy of Sciences, in 2019. His current research interests include evolutionary algorithms and cloud computing architecture.