Springer Nature is making SARS-CoV-2 and COVID-19 research free. View research | View latest news | Sign up for updates

Supporting Programmable Autoscaling Rules for Containers and Virtual Machines on Clouds

  • 132 Accesses

Abstract

With the increasing utilization of cloud computing and container technologies, orchestration is becoming an important area on both cloud and container levels. Beyond resource allocation, deployment and configuration, scaling is a key functionality in orchestration in terms of policy, description and flexibility. This paper presents an approach where the aim is to provide a high degree of flexibility in terms of available monitoring metrics and in terms of the definition of elasticity rules to implement practically any possible business logic for a given application. The aim is to provide a general interface for supporting programmable scaling policies utilizing monitoring metrics originating from infrastructure, application or any external components. The paper introduces a component, called Policy Keeper performing the auto-scaling based on user-defined rules, details how this component is operating in the auto-scaling framework, called MiCADO and demonstrates a deadline-based scaling use case.

References

  1. 1.

    Buyya R, Broberg J, Goscinski AM. Cloud Computing: Principles and Paradigms. Wiley: Hoboken, New Jersey, 2011

  2. 2.

    Mell P, Grance T. The NIST definition of Cloud computing. NIST special publication 800-145 (final). Technical Report, 2011, http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf

  3. 3.

    Al-Dhuraibi, Y., Paraiso, F., Djarallah, N., Merle, P.: Elasticity in Cloud Computing: state of the art and research challenges. IEEE Transactions on Services Computing (TSC). 11(2), 430–447 (2018)

  4. 4.

    The MTA Cloud infrastructure, https://cloud.mta.hu [March 05, 2019]

  5. 5.

    Research projects supported by MTA Cloud, https://cloud.mta.hu/en/projektek [March 05, 2019]

  6. 6.

    COLA: Cloud Orchestration at the Level of Application, http://www.project-cola.eu [March 05, 2019]

  7. 7.

    AWS Auto Scaling, https://aws.amazon.com/autoscaling/ [March 05, 2019]

  8. 8.

    Rightscale, website http://www.rightscale.com [March 05, 2019]

  9. 9.

    Galante, G., Bona, L.C.E.D.: A programming-level approach for elasticizing parallel scientific applications. J. Syst. Softw. 110, 239–252 (2015)

  10. 10.

    Brendan Burns, Brian Grant, David Oppenheimer, Eric Brewer, and John Wilkes. 2016. Borg, Omega, and Kubernetes. Queue 14, 1, Pages 10 (2016), DOI: https://doi.org/10.1145/2898442.2898444

  11. 11.

    Cloud Native Computing Foundation, https://www.cncf.io [March 05, 2019]

  12. 12.

    Cloudify, http://getcloudify.org/ [March 05, 2019]

  13. 13.

    Topology and Orchestration Specification for Cloud Applications, TOSCA, http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.1/TOSCA-Simple-Profile-YAML-v1.1.html [March 05, 2019]

  14. 14.

    Docker, http://www.docker.com [March 05, 2019]

  15. 15.

    Prometheus monitoring system, https://prometheus.io [March 05, 2019]

  16. 16.

    Kovacs J., Kacsuk P., Occopus: a multi-Cloud orchestrator to deploy and manage complex scientific infrastructures. Journal of Grid Computing, vol 16, issue1, pp 19–37, 2018

  17. 17.

    Prometheus exporters, https://prometheus.io/docs/instrumenting/exporters/ [March 05, 2019]

  18. 18.

    Official YAML Web Site, http://yaml.org [March 05, 2019]

  19. 19.

    Terraform, https://www.terraform.io [March 05, 2019]

  20. 20.

    Jinja2, http://jinja.pocoo.org/docs/2.10 [March 05, 2019]

  21. 21.

    Flask, http://flask.pocoo.org/ [March 05, 2019]

  22. 22.

    Kiss, T., Kacsuk, P.: Jozsef Kovacs et all: MiCADO—microservice-based Cloud application-level dynamic orchestrator. Future Generation Computer Systems, Volume. 94, 937–946, ISSN 0167-739X (2019). https://doi.org/10.1016/j.future.2017.09.050

  23. 23.

    Official documentation site of MiCADO, https://micado-scale.readthedocs.io/en/0.6.1 [March 05, 2019]

  24. 24.

    Prometheus Node Exporter, https://prometheus.io/docs/guides/node-exporter/ [March 05, 2019]

  25. 25.

    Prometheus CAdvisor, https://prometheus.io/docs/guides/cadvisor/ [March 05, 2019]

  26. 26.

    RabbitMQ exporter for Prometheus, https://github.com/kbudde/rabbitmq_exporter [March 05, 2019]

  27. 27.

    CQueue simple container queueing system, http://www.lpds.sztaki.hu/occo/user/html/tutorial-building-clusters.html#cqueue-cluster [March 05, 2019]

  28. 28.

    Chen, H.Y., Hsiung, M., Lee, H.C., Yen, E., Lin, S.C., Wu, Y.T.: GVSS: A High Throughput Drug Discovery Service of Avian Flu and Dengue Fever for EGEE and EUAsiaGrid. J Grid Computing. 8, 529–541 (2010). https://doi.org/10.1007/s10723-010-9159-7

Download references

Acknowledgements

This work was funded by the European COLA - Cloud Orchestration at the Level of Application project under grant No. 731574 (H2020-ICT-2016-1). We thank for the usage of MTA Cloud (https://cloud.mta.hu/) that significantly helped us achieving the results published in this paper.

Funding

Open access funding provided by MTA Institute for Computer Science and Control (MTA SZTAKI).

Author information

Correspondence to József Kovács.

Rights and permissions

Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Kovács, J. Supporting Programmable Autoscaling Rules for Containers and Virtual Machines on Clouds. J Grid Computing 17, 813–829 (2019). https://doi.org/10.1007/s10723-019-09488-w

Download citation

Keywords

  • Cloud
  • Virtual machine
  • Container
  • Docker
  • Autoscaling
  • Distributed monitoring