Advertisement

Self-adaptive Container Deployment in the Fog: A Survey

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 12041)

Abstract

The fast increasing presence of Internet-of-Things and fog computing resources exposes new challenges due to heterogeneity and non-negligible network delays among resources as well as the dynamism of operating conditions. Such a variable computing environment leads the applications to adopt an elastic and decentralized execution. To simplify the application deployment and run-time management, containers are widely used nowadays. The deployment of a container-based application over a geo-distributed computing infrastructure is a key task that has a significant impact on the application non-functional requirements (e.g., performance, security, cost). In this survey, we first develop a taxonomy based on the goals, the scope, the actions, and the methodologies considered to adapt at run-time the application deployment. Then, we use it to classify some of the existing research results. Finally, we identify some open challenges that arise for the application deployment in the fog. In literature, we can find many different approaches for adapting the containers deployment, each tailored for optimizing a specific objective, such as the application response time, its deployment cost, or the efficient utilization of the available computing resources. However, although several solutions for deploying containers exist, those explicitly considering the distinctive features of fog computing are at the early stages: indeed, existing solutions scale containers without considering their placement, or do not consider the heterogeneity, the geographic distribution, and mobility of fog resources.

Keywords

Containers Elasticity Fog computing Placement Self-adaptive systems 

References

  1. 1.
    Abdelbaky, M., Diaz-Montes, J., Parashar, M., Unuvar, M., Steinder, M.: Docker containers across multiple clouds and data centers. In: Proceedings of IEEE/ACM UCC 2015, pp. 368–371 (2015).  https://doi.org/10.1109/UCC.2015.58
  2. 2.
    Addya, S.K., Turuk, A.K., Sahoo, B., Sarkar, M., Biswash, S.K.: Simulated annealing based VM placement strategy to maximize the profit for cloud service providers. Eng. Sci. Technol. Int J. 20(4), 1249–1259 (2017)Google Scholar
  3. 3.
    Al-Dhuraibi, Y., Paraiso, F., Djarallah, N., Merle, P.: Autonomic vertical elasticity of Docker containers with ElasticDocker. In: Proceedings of IEEE CLOUD 2017, pp. 472–479 (2017).  https://doi.org/10.1109/CLOUD.2017.67
  4. 4.
    Al-Dhuraibi, Y., Paraiso, F., Djarallah, N., Merle, P.: Elasticity in cloud computing: state of the art and research challenges. IEEE Trans. Serv. Comput. 11, 430–447 (2018).  https://doi.org/10.1109/TSC.2017.2711009CrossRefGoogle Scholar
  5. 5.
    Alam, M.G.R., Hassan, M.M., Uddin, M.Z., Almogren, A., Fortino, G.: Autonomic computation offloading in mobile edge for IoT applications. Future Gener. Comput. Syst. 90, 149–157 (2019).  https://doi.org/10.1016/j.future.2018.07.050CrossRefGoogle Scholar
  6. 6.
    Ali-Eldin, A., Tordsson, J., Elmroth, E.: An adaptive hybrid elasticity controller for cloud infrastructures. In: Proceedings of IEEE NOMS 2012, pp. 204–212 (2012)Google Scholar
  7. 7.
    Arabnejad, H., Pahl, C., Jamshidi, P., Estrada, G.: A comparison of reinforcement learning techniques for fuzzy cloud auto-scaling. In: Proceedings of IEEE/ACM CCGrid 2017, pp. 64–73 (2017).  https://doi.org/10.1109/CCGRID.2017.15
  8. 8.
    Arkian, H.R., Diyanat, A., Pourkhalili, A.: MIST: fog-based data analytics scheme with cost-efficient resource provisioning for IoT crowdsensing applications. J. Netw. Comput. Appl. 82, 152–165 (2017).  https://doi.org/10.1016/j.jnca.2017.01.012CrossRefGoogle Scholar
  9. 9.
    Asnaghi, A., Ferroni, M., Santambrogio, M.D.: DockerCap: a software-level power capping orchestrator for Docker containers. In: Proceedings of IEEE EUC 2016 (2016)Google Scholar
  10. 10.
    Baresi, L., Guinea, S., Leva, A., Quattrocchi, G.: A discrete-time feedback controller for containerized cloud applications. In: Proceedings of ACM SIGSOFT FSE 2016, pp. 217–228 (2016).  https://doi.org/10.1145/2950290.2950328
  11. 11.
    Barna, C., Khazaei, H., Fokaefs, M., Litoiu, M.: Delivering elastic containerized cloud applications to enable DevOps. In: Proceedings of SEAMS 2017, pp. 65–75 (2017)Google Scholar
  12. 12.
    Bellavista, P., Zanni, A.: Feasibility of fog computing deployment based on Docker containerization over RaspberryPi. In: Proceedings of ICDCN 2017. ACM (2017)Google Scholar
  13. 13.
    Bermbach, D., et al.: A research perspective on fog computing. In: Braubach, L., et al. (eds.) ICSOC 2017. LNCS, vol. 10797, pp. 198–210. Springer, Cham (2018).  https://doi.org/10.1007/978-3-319-91764-1_16CrossRefGoogle Scholar
  14. 14.
    Boyd, S., Parikh, N., Chu, E., Peleato, B., Eckstein, J.: Distributed optimization and statistical learning via the alternating direction method of multipliers. Found. Trends Mach. Learn. 3(1), 1–122 (2011)zbMATHCrossRefGoogle Scholar
  15. 15.
    Brogi, A., Forti, S., Guerrero, C., Lera, I.: Meet genetic algorithms in Monte Carlo: optimised placement of multi-service applications in the fog. In: Proceedings of IEEE EDGE 2019, pp. 13–17 (2019).  https://doi.org/10.1109/EDGE.2019.00016
  16. 16.
    Brogi, A., Forti, S., Guerrero, C., Lera, I.: How to place your apps in the fog: state of the art and open challenges. Softw. Pract. Exp. (2019).  https://doi.org/10.1002/spe.2766CrossRefGoogle Scholar
  17. 17.
    Buyya, R., et al.: A manifesto for future generation cloud computing: research directions for the next decade. ACM Comput. Surv. 51(5), 105:1–105:38 (2019)CrossRefGoogle Scholar
  18. 18.
    Calheiros, R.N., Ranjan, R., Beloglazov, A., De Rose, C., Buyya, R.: CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms. Softw. Pract. Exp. 41(1), 23–50 (2011)CrossRefGoogle Scholar
  19. 19.
    Casalicchio, E., Perciballi, V.: Auto-scaling of containers: the impact of relative and absolute metrics. In: Proceedings of IEEE FAS*W 2017, pp. 207–214 (2017)Google Scholar
  20. 20.
    Casalicchio, E.: Container orchestration: a survey. In: Puliafito, A., Trivedi, K.S. (eds.) Systems Modeling: Methodologies and Tools. EICC, pp. 221–235. Springer, Cham (2019).  https://doi.org/10.1007/978-3-319-92378-9_14CrossRefGoogle Scholar
  21. 21.
    Chang, Z., Zhou, Z., Ristaniemi, T., Niu, Z.: Energy efficient optimization for computation offloading in fog computing system. In: Proceedings of IEEE GLOBECOM 2017 (2017).  https://doi.org/10.1109/GLOCOM.2017.8254207
  22. 22.
    de Brito, M.S., et al.: A service orchestration architecture for fog-enabled infrastructures. In: Proceedings of FMEC 2017, pp. 127–132. IEEE (2017)Google Scholar
  23. 23.
    De Maio, V., Brandic, I.: Multi-objective mobile edge provisioning in small cell clouds. In: Proceedings of ACM/SPEC ICPE 2019, pp. 127–138. ACM (2019)Google Scholar
  24. 24.
    Elliott, D., Otero, C., Ridley, M., Merino, X.: A cloud-agnostic container orchestrator for improving interoperability. In: Proceedings of IEEE CLOUD 2018, pp. 958–961 (2018).  https://doi.org/10.1109/CLOUD.2018.00145
  25. 25.
    Garefalakis, P., Karanasos, K., Pietzuch, P., Suresh, A., Rao, S.: Medea: scheduling of long running applications in shared production clusters. In: Proceedings of EuroSys 2018, pp. 4:1–4:13. ACM (2018).  https://doi.org/10.1145/3190508.3190549
  26. 26.
    Gedeon, J., Brandherm, F., Egert, R., Grube, T., Mühlhäuser, M.: What the fog? Edge computing revisited: promises, applications and future challenges. IEEE Access 7, 152847–152878 (2019).  https://doi.org/10.1109/ACCESS.2019.2948399CrossRefGoogle Scholar
  27. 27.
    Guan, X., Wan, X., Choi, B.Y., Song, S., Zhu, J.: Application oriented dynamic resource allocation for data centers using Docker containers. IEEE Commun. Lett. 21(3), 504–507 (2017).  https://doi.org/10.1109/LCOMM.2016.2644658CrossRefGoogle Scholar
  28. 28.
    Guerrero, C., Lera, I., Juiz, C.: Genetic algorithm for multi-objective optimization of container allocation in cloud architecture. J. Grid Comput. 16(1), 113–135 (2018).  https://doi.org/10.1007/s10723-017-9419-xCrossRefGoogle Scholar
  29. 29.
    Gupta, H., Vahid Dastjerdi, A., Ghosh, S.K., Buyya, R.: iFogSim: a toolkit for modeling and simulation of resource management techniques in the internet of things, edge and fog computing environments. Softw. Pract. Exp. 47(9), 1275–1296 (2017).  https://doi.org/10.1002/spe.2509CrossRefGoogle Scholar
  30. 30.
    Hoque, S., d. Brito, M.S., Willner, A., Keil, O., Magedanz, T.: Towards container orchestration in fog computing infrastructures. In: Proceedings of IEEE COMPSAC 2017, vol. 2, pp. 294–299 (2017).  https://doi.org/10.1109/COMPSAC.2017.248
  31. 31.
    Horovitz, S., Arian, Y.: Efficient cloud auto-scaling with SLA objective using Q-learning. In: Proceedings of IEEE FiCloud 2018, pp. 85–92 (2018)Google Scholar
  32. 32.
    Huang, Z., Lin, K.J., Yu, S.Y., Hsu, J.Y.J.: Co-locating services in IoT systems to minimize the communication energy cost. J. Innov. Digit. Ecosyst. 1(1), 47–57 (2014).  https://doi.org/10.1016/j.jides.2015.02.005CrossRefGoogle Scholar
  33. 33.
    Javed, A., Heljanko, K., Buda, A., Främling, K.: Cefiot: a fault-tolerant IoT architecture for edge and cloud. In: Proceedings of IEEE WF-IoT 2018, pp. 813–818 (2018)Google Scholar
  34. 34.
    Jawarneh, I.M.A., et al.: Container orchestration engines: a thorough functional and performance comparison. In: Proceedings of IEEE ICC 2019, pp. 1–6 (2019)Google Scholar
  35. 35.
    Kaewkasi, C., Chuenmuneewong, K.: Improvement of container scheduling for Docker using ant colony optimization. In: Proceedings of KST 2017. IEEE (2017)Google Scholar
  36. 36.
    Kaur, K., Dhand, T., Kumar, N., Zeadally, S.: Container-as-a-service at the edge: trade-off between energy efficiency and service availability at fog nano data centers. IEEE Wirel. Commun. 24(3), 48–56 (2017)CrossRefGoogle Scholar
  37. 37.
    Kayal, P., Liebeherr, J.: Autonomic service placement in fog computing. In: Proceedings of IEEE WoWMoM 2019, pp. 1–9 (2019)Google Scholar
  38. 38.
    Kephart, J.O., Chess, D.M.: The vision of autonomic computing. IEEE Comput. 36(1), 41–50 (2003).  https://doi.org/10.1109/MC.2003.1160055CrossRefGoogle Scholar
  39. 39.
    Khazaei, H., Bannazadeh, H., Leon-Garcia, A.: SAVI-IoT: a self-managing containerized IoT platform. In: Proc. of IEEE FiCloud 2017, pp. 227–234 (2017)Google Scholar
  40. 40.
    Khazaei, H., Ravichandiran, R., Park, B., Bannazadeh, H., Tizghadam, A., Leon-Garcia, A.: Elascale: autoscaling and monitoring as a service. In: Proceedings of CASCON 2017, pp. 234–240 (2017)Google Scholar
  41. 41.
    Kimovski, D., Ijaz, H., Saurabh, N., Prodan, R.: Adaptive nature-inspired fog architecture. In: Proceedings of IEEE ICFEC 2018, pp. 1–8 (2018)Google Scholar
  42. 42.
    Liu, L., Chang, Z., Guo, X., Mao, S., Ristaniemi, T.: Multiobjective optimization for computation offloading in fog computing. IEEE Internet Things J. 5(1), 283–294 (2018).  https://doi.org/10.1109/JIOT.2017.2780236CrossRefGoogle Scholar
  43. 43.
    Lopes, M.M., Higashino, W.A., Capretz, M.A., Bittencourt, L.F.: MyiFogSim: a simulator for virtual machine migration in fog computing. In: Proceedings of IEEE/ACM UCC 2017 Companion, pp. 47–52. ACM (2017)Google Scholar
  44. 44.
    Lorido-Botran, T., Miguel-Alonso, J., Lozano, J.A.: A review of auto-scaling techniques for elastic applications in cloud environments. J. Grid Comput. 12(4), 559–592 (2014).  https://doi.org/10.1007/s10723-014-9314-7CrossRefGoogle Scholar
  45. 45.
    Mahmud, M., Srirama, S., Ramamohanarao, K., Buyya, R.: Quality of experience (QoE)-aware placement of applications in fog computing environments. J. Parallel Distrib. Comput. 123, 190–203 (2018)Google Scholar
  46. 46.
    Mahmud, R., Kotagiri, R., Buyya, R.: Fog computing: a taxonomy, survey and future directions. In: Di Martino, B., Li, K.-C., Yang, L.T., Esposito, A. (eds.) Internet of Everything. IT, pp. 103–130. Springer, Singapore (2018).  https://doi.org/10.1007/978-981-10-5861-5_5CrossRefGoogle Scholar
  47. 47.
    Mao, Y., Oak, J., Pompili, A., Beer, D., Han, T., Hu, P.: DRAPS: dynamic and resource-aware placement scheme for Docker containers in a heterogeneous cluster. In: Proceedings of IEEE IPCCC 2017 (2017).  https://doi.org/10.1109/PCCC.2017.8280474
  48. 48.
    Mayer, R., Graser, L., Gupta, H., Saurez, E., Ramachandran, U.: EmuFog: extensible and scalable emulation of large-scale fog computing infrastructures. In: Proceedings of IEEE FWC 2017, pp. 1–6 (2017).  https://doi.org/10.1109/FWC.2017.8368525
  49. 49.
    Mennes, R., Spinnewyn, B., Latré, S., Botero, J.F.: GRECO: a distributed genetic algorithm for reliable application placement in hybrid clouds. In: Proceedings of IEEE CloudNet 2016, pp. 14–20 (2016).  https://doi.org/10.1109/CloudNet.2016.45
  50. 50.
    Mouradian, C., Kianpisheh, S., Abu-Lebdeh, M., Ebrahimnezhad, F., Jahromi, N.T., Glitho, R.H.: Application component placement in NFV-based hybrid cloud/fog systems with mobile fog nodes. IEEE J. Sel. Areas in Commun. 37(5), 1130–1143 (2019).  https://doi.org/10.1109/JSAC.2019.2906790CrossRefGoogle Scholar
  51. 51.
    Mseddi, A., Jaafar, W., Elbiaze, H., Ajib, W.: Joint container placement and task provisioning in dynamic fog computing. IEEE Internet Things J. 6, 10028–10040 (2019)CrossRefGoogle Scholar
  52. 52.
    Naas, M.I., Parvedy, P.R., Boukhobza, J., Lemarchand, L.: iFogStor: an IoT data placement strategy for fog infrastructure. In: Proceedings of IEEE ICFEC 2017, pp. 97–104 (2017).  https://doi.org/10.1109/ICFEC.2017.15
  53. 53.
    Nardelli, M., Cardellini, V., Casalicchio, E.: Multi-level elastic deployment of containerized applications in geo-distributed environments. In: Proceedings of IEEE FiCloud 2018, pp. 1–8 (2018).  https://doi.org/10.1109/FiCloud.2018.00009
  54. 54.
    Nardelli, M., Hochreiner, C., Schulte, S.: Elastic provisioning of virtual machines for container deployment. In: Proceedings of ACM/SPEC ICPE 2017 Companion, pp. 5–10 (2017).  https://doi.org/10.1145/3053600.3053602
  55. 55.
    Netto, H.V., Luiz, A.F., Correia, M., de Oliveira Rech, L., Oliveira, C.P.: Koordinator: a service approach for replicating Docker containers in Kubernetes. In: Proceedings of IEEE ISCC 2018, pp. 58–63 (2018)Google Scholar
  56. 56.
    Nouri, S.M.R., Li, H., Venugopal, S., Guo, W., He, M., Tian, W.: Autonomic decentralized elasticity based on a reinforcement learning controller for cloud applications. Future Gener. Comput. Syst. 94, 765–780 (2019)CrossRefGoogle Scholar
  57. 57.
    Ongaro, D., Ousterhout, J.: In search of an understandable consensus algorithm. In: Proceedings of USENIX ATC 2014, pp. 305–319 (2014)Google Scholar
  58. 58.
    Ouyang, T., Zhou, Z., Chen, X.: Follow me at the edge: mobility-aware dynamic service placement for mobile edge computing. IEEE J. Sel. Area Comm. 36(10), 2333–2345 (2018).  https://doi.org/10.1109/JSAC.2018.2869954CrossRefGoogle Scholar
  59. 59.
    Piraghaj, S.F., Dastjerdi, A.V., Calheiros, R.N., Buyya, R.: ContainerCloudSim: an environment for modeling and simulation of containers in cloud data centers. Softw. Pract. Exp. 47(4), 505–521 (2017)CrossRefGoogle Scholar
  60. 60.
    Puliafito, C., Mingozzi, E., Longo, F., Puliafito, A., Rana, O.: Fog computing for the internet of things: a survey. ACM Trans. Internet Technol. 19(2), 18:1–18:41 (2019).  https://doi.org/10.1145/3301443CrossRefGoogle Scholar
  61. 61.
    Rodriguez, M.A., Buyya, R.: Container-based cluster orchestration systems: a taxonomy and future directions. Softw. Pract. Exp. 49(5), 698–719 (2019)CrossRefGoogle Scholar
  62. 62.
    Röger, H., Mayer, R.: A comprehensive survey on parallelization and elasticity in stream processing. ACM Comput. Surv. 52(2), 36:1–36:37 (2019)CrossRefGoogle Scholar
  63. 63.
    Rossi, F., Cardellini, V., Lo Presti, F.: Elastic deployment of software containers in geo-distributed computing environments. In: Proceedings of IEEE ISCC 2019 (2019).  https://doi.org/10.1109/ISCC47284.2019.8969607
  64. 64.
    Rossi, F., Nardelli, M., Cardellini, V.: Horizontal and vertical scaling of container-based applications using reinforcement learning. In: Proceedings of IEEE CLOUD 2019, pp. 329–338 (2019).  https://doi.org/10.1109/CLOUD.2019.00061
  65. 65.
    Santos, J., Wauters, T., Volckaert, B., De Turck, F.: Towards network-aware resource provisioning in Kubernetes for fog computing applications. In: Proceedings of IEEE NetSoft 2019, pp. 351–359 (2019).  https://doi.org/10.1109/NETSOFT.2019.8806671
  66. 66.
    Souza, V., et al.: Towards a proper service placement in combined fog-to-cloud (F2C) architectures. Future Gener. Comput. Syst. 87, 1–15 (2018)CrossRefGoogle Scholar
  67. 67.
    Subashini, S., Kavitha, V.: A survey on security issues in service delivery models of cloud computing. J. Netw. Comput. Appl. 34(1), 1–11 (2011)CrossRefGoogle Scholar
  68. 68.
    Sutton, R.S., Barto, A.G.: Reinforcement Learning: An Introduction, 2nd edn. MIT Press, Cambridge (2018)zbMATHGoogle Scholar
  69. 69.
    Tan, B., Ma, H., Mei, Y.: A hybrid genetic programming hyper-heuristic approach for online two-level resource allocation in container-based clouds. In: Proceedings of IEEE CEC 2019, pp. 2681–2688 (2019).  https://doi.org/10.1109/CEC.2019.8790220
  70. 70.
    Tang, Z., Zhou, X., Zhang, F., Jia, W., Zhao, W.: Migration modeling and learning algorithms for containers in fog computing. IEEE Trans. Serv. Comput. 12(5), 712–725 (2019).  https://doi.org/10.1109/TSC.2018.2827070CrossRefGoogle Scholar
  71. 71.
    Tesauro, G., Jong, N.K., Das, R., Bennani, M.N.: A hybrid reinforcement learning approach to autonomic resource allocation. In: Proceedings of IEEE ICAC 2006, pp. 65–73 (2006).  https://doi.org/10.1109/ICAC.2006.1662383
  72. 72.
    Townend, P., et al.: Improving data center efficiency through holistic scheduling in Kubernetes. In: Proceedings of IEEE SOSE 2019, pp. 156–166 (2019)Google Scholar
  73. 73.
    Wen, Z., Yang, R., Garraghan, P., Lin, T., Xu, J., Rovatsos, M.: Fog orchestration for internet of things services. IEEE Internet Comput. 21(2), 16–24 (2017)CrossRefGoogle Scholar
  74. 74.
    Weyns, D., et al.: On patterns for decentralized control in self-adaptive systems. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems II. LNCS, vol. 7475, pp. 76–107. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-35813-5_4CrossRefGoogle Scholar
  75. 75.
    Wu, Y., Rao, R., Hong, P., Ma, J.: FAS: a flow aware scaling mechanism for stream processing platform service based on LMS. In: Proceedings of ICMSS 2017, pp. 280–284. ACM (2017).  https://doi.org/10.1145/3034950.3034965
  76. 76.
    Xu, J., Chen, L., Ren, S.: Online learning for offloading and autoscaling in energy harvesting mobile edge computing. IEEE Trans. Cogn. Commun. Netw. 3(3), 361–373 (2017).  https://doi.org/10.1109/TCCN.2017.2725277CrossRefGoogle Scholar
  77. 77.
    Yi, S., Hao, Z., Qin, Z., Li, Q.: Fog computing: platform and applications. In: Proceedings of HotWeb 2015, pp. 73–78. IEEE (2015).  https://doi.org/10.1109/HotWeb.2015.22
  78. 78.
    Yigitoglu, E., Mohamed, M., Liu, L., Ludwig, H.: Foggy: a framework for continuous automated IoT application deployment in fog computing. In: Proceedings of IEEE AIMS 2017, pp. 38–45 (2017).  https://doi.org/10.1109/AIMS.2017.14
  79. 79.
    Zhao, D., Mohamed, M., Ludwig, H.: Locality-aware scheduling for containers in cloud computing. IEEE Trans. Cloud Comput. 8(2), 635–646 (2020)Google Scholar
  80. 80.
    Zhou, Z., Liu, P., Feng, J., Zhang, Y., Mumtaz, S., Rodriguez, J.: Computation resource allocation and task assignment optimization in vehicular fog computing: a contract-matching approach. IEEE Trans. Veh. Technol. 68(4), 3113–3125 (2019)CrossRefGoogle Scholar
  81. 81.
    Zhu, J., Chan, D.S., Prabhu, M.S., Natarajan, P., Hu, H., Bonomi, F.: Improving web sites performance using edge servers in fog computing architecture. In: Proceedings of IEEE SOSE 2013, pp. 320–323 (2013)Google Scholar
  82. 82.
    Zhu, Q., Agrawal, G.: Resource provisioning with budget constraints for adaptive applications in cloud environments. IEEE Trans. Serv. Comput. 5(4), 497–511 (2012).  https://doi.org/10.1109/TSC.2011.61CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2020

Authors and Affiliations

  1. 1.Department of Civil Engineering and Computer Science EngineeringUniversity of Rome Tor VergataRomeItaly

Personalised recommendations