Key points are not available for this paper at this time.
Cloud computing is a relatively new type of Internet-based computing that becomes more and more popular. Using methods like virtualization, adopting architectures based on microservices, automation of building and deployment processes, Cloud could provide on-demand resources and scale them accordingly to a Service Level Agreement (SLA). Even if there are a lot of Cloud computing providers (like Amazon AWS, Microsoft Azure, IBM, Google etc.), many of them providing advanced services, already deployed technologies, auto-scaling and monitoring tools, on the long run a private Cloud could cost less than a public Cloud. On the other hand, a private Cloud has the disadvantage of lacking hardware resources for scaling an unexpected spike of usage or periodical growths in the number of requests. This problem could be solved using a public Cloud provider API for extending the hardware by buying and selling resources, using a pay-per-use or a pay-as-you-go model. This paper describes and evaluates a private Cloud architecture capable of on demand deployment of microservices based applications, monitoring every instance using CPU, memory, networking and disk data collectors' software, monitoring every task queue and horizontally auto-scaling the number of instances per service. Using Cloud monitoring data, SLA and budget constraints we decide if a new instance should be spawned or terminated in the private Cloud or in a public Cloud. From the customer point of view the process of auto-scaling across the hybrid Cloud is transparent, but requires a horizontally scalable service. We will illustrate our work running an application packaged as microservices in containers in a Kubernetes private Cloud that will be extended using public resources from AWS. The results of the paper offers an architectural model that can be used to build an in-house, scalable Cloud.
Crecana et al. (Mon,) studied this question.