Stef Verreydt, Emad Heydari Beni, E. Truyen, B. Lagaisse, W. Joosen
Software providers face the challenge of minimizing the amount of resources used while still meeting their customer's requirements. Several frameworks to manage resources and applications in a distributed environment are available, but their development is still ongoing and the state of the art is rapidly evolving, making it a challenge to use such frameworks and their features effectively in practice. The goal of this paper is to research how applications can be enhanced with adaptive performance management by relying on the capabilities of Kubernetes, a popular framework for container orchestration. In particular, horizontal as well as vertical scaling concepts of Kubernetes may prove useful to support adaptive resource allocation. Moreover, concepts for oversubscription as a way to simulate vertical scaling without having to reschedule applications, are evaluated. Through a series of experiments involving multiple applications and workloads, the effects of different configurations and combinations of horizontal and vertical scaling in Kubernetes are explored. Both the resource utilization of the nodes and the applications' performance are taken into account. In brief, the resource management concepts of Kubernetes allow to simulate vertical scaling without a negative effect on performance. The effectiveness of the default horizontal autoscaler, however, depends on the type of application and the user workload at hand.
{"title":"Leveraging Kubernetes for adaptive and cost-efficient resource management","authors":"Stef Verreydt, Emad Heydari Beni, E. Truyen, B. Lagaisse, W. Joosen","doi":"10.1145/3366615.3368357","DOIUrl":"https://doi.org/10.1145/3366615.3368357","url":null,"abstract":"Software providers face the challenge of minimizing the amount of resources used while still meeting their customer's requirements. Several frameworks to manage resources and applications in a distributed environment are available, but their development is still ongoing and the state of the art is rapidly evolving, making it a challenge to use such frameworks and their features effectively in practice. The goal of this paper is to research how applications can be enhanced with adaptive performance management by relying on the capabilities of Kubernetes, a popular framework for container orchestration. In particular, horizontal as well as vertical scaling concepts of Kubernetes may prove useful to support adaptive resource allocation. Moreover, concepts for oversubscription as a way to simulate vertical scaling without having to reschedule applications, are evaluated. Through a series of experiments involving multiple applications and workloads, the effects of different configurations and combinations of horizontal and vertical scaling in Kubernetes are explored. Both the resource utilization of the nodes and the applications' performance are taken into account. In brief, the resource management concepts of Kubernetes allow to simulate vertical scaling without a negative effect on performance. The effectiveness of the default horizontal autoscaler, however, depends on the type of application and the user workload at hand.","PeriodicalId":190852,"journal":{"name":"Proceedings of the 5th International Workshop on Container Technologies and Container Clouds","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129142987","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
We consider the problem of scheduling serverless-computing instances such as Amazon Lambda functions. Instead of a quota per tenant/customer, we assume demand for Lambda functions is modulated by token-bucket mechanisms per tenant. Such quotas are due to, e.g., limited resources (as in a fog/edge-cloud context) or to prevent excessive unauthorized invocation of numerous instances by malware. Based on an upper bound on the stationary number of active "Lambda servers" considering the execution-time distribution of Lambda functions, we describe an approach that the cloud could use to overbook Lambda functions for improved utilization of IT resources. An earlier bound for a single service tier is extended to multiple service tiers.
{"title":"Overbooking Lambda Functions in the Cloud","authors":"G. Kesidis","doi":"10.1145/3366615.3368351","DOIUrl":"https://doi.org/10.1145/3366615.3368351","url":null,"abstract":"We consider the problem of scheduling serverless-computing instances such as Amazon Lambda functions. Instead of a quota per tenant/customer, we assume demand for Lambda functions is modulated by token-bucket mechanisms per tenant. Such quotas are due to, e.g., limited resources (as in a fog/edge-cloud context) or to prevent excessive unauthorized invocation of numerous instances by malware. Based on an upper bound on the stationary number of active \"Lambda servers\" considering the execution-time distribution of Lambda functions, we describe an approach that the cloud could use to overbook Lambda functions for improved utilization of IT resources. An earlier bound for a single service tier is extended to multiple service tiers.","PeriodicalId":190852,"journal":{"name":"Proceedings of the 5th International Workshop on Container Technologies and Container Clouds","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128038923","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Edwin F. Boza, Cristina L. Abad, S. Narayanan, Bharath Balasubramanian, Minsung Jang
Cloud-native applications are increasingly adopting microservices architectures that support the development agility required by modern software. These applications deploy their components in containers that enable microservices to be deployed across different platforms, supporting the independent scaling of the different components. However, the operational complexity of microservices presents significant challenges in maintaining the performance of such applications, especially in clouds with performance variability and unpredictability. While virtual machine based deployment of applications has been well studied---with sophisticated orchestrators in the literature and practice---there has been little such studies on the opportunity in improving application performance using performance-aware deployment strategies for containers. In this paper, we consider both the runtime and initialization time performance of containerized applications and show that default placement strategies provided by orchestrators are often insufficient. Our experiments on multiple services show that a performance-aware approach is able to outperform the default placement strategy by up to factor of 2x and 2.21x for the 50th and 99th percentiles.
{"title":"A Case for Performance-Aware Deployment of Containers","authors":"Edwin F. Boza, Cristina L. Abad, S. Narayanan, Bharath Balasubramanian, Minsung Jang","doi":"10.1145/3366615.3368355","DOIUrl":"https://doi.org/10.1145/3366615.3368355","url":null,"abstract":"Cloud-native applications are increasingly adopting microservices architectures that support the development agility required by modern software. These applications deploy their components in containers that enable microservices to be deployed across different platforms, supporting the independent scaling of the different components. However, the operational complexity of microservices presents significant challenges in maintaining the performance of such applications, especially in clouds with performance variability and unpredictability. While virtual machine based deployment of applications has been well studied---with sophisticated orchestrators in the literature and practice---there has been little such studies on the opportunity in improving application performance using performance-aware deployment strategies for containers. In this paper, we consider both the runtime and initialization time performance of containerized applications and show that default placement strategies provided by orchestrators are often insufficient. Our experiments on multiple services show that a performance-aware approach is able to outperform the default placement strategy by up to factor of 2x and 2.21x for the 50th and 99th percentiles.","PeriodicalId":190852,"journal":{"name":"Proceedings of the 5th International Workshop on Container Technologies and Container Clouds","volume":"1999 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128254058","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Linux containers are key enablers for building microservices. The application's microservices fall broadly under two categories, the core-microservices implementing the business logic and the utility-microservices implementing middleware functionalities. Such functionalities include vulnerability scanning, monitoring, telemetry, etc. Segregating the utility-microservices in separate containers from the core-microservice containers may prevent them from achieving their functionality. This is due to the strong isolation between containers. By diffusing the boundaries between containers we can fuse them together and enable close collaboration. However, this raises several security concerns, especially that the utility-microservices may include vulnerabilities that threaten the entire application. In this paper, we analyze the different techniques to enhance the security of container fusion and present an automated solution based on Kubernetes to configure utility-microservices containers to fuse with core-microservices containers.
{"title":"Can Container Fusion Be Securely Achieved?","authors":"Sahil Suneja, A. Kanso, C. Isci","doi":"10.1145/3366615.3368356","DOIUrl":"https://doi.org/10.1145/3366615.3368356","url":null,"abstract":"Linux containers are key enablers for building microservices. The application's microservices fall broadly under two categories, the core-microservices implementing the business logic and the utility-microservices implementing middleware functionalities. Such functionalities include vulnerability scanning, monitoring, telemetry, etc. Segregating the utility-microservices in separate containers from the core-microservice containers may prevent them from achieving their functionality. This is due to the strong isolation between containers. By diffusing the boundaries between containers we can fuse them together and enable close collaboration. However, this raises several security concerns, especially that the utility-microservices may include vulnerabilities that threaten the entire application. In this paper, we analyze the different techniques to enhance the security of container fusion and present an automated solution based on Kubernetes to configure utility-microservices containers to fuse with core-microservices containers.","PeriodicalId":190852,"journal":{"name":"Proceedings of the 5th International Workshop on Container Technologies and Container Clouds","volume":"62 2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123234340","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Edge computing is a recent tendency in the IoT domain that contributes to reduce the reliance on Cloud. This is due to the cost efficiency and the improvement of the system responsivity since services are deployed close to the data source as well as actuator nodes. However, IoT services are created on the top of a diverse and heterogeneous stack of technologies in terms of their representative hardware components. Thus, leading to some kind of barrier to accomplish system interoperability. To mitigate this heterogeneity issue, lightweight virtualization techniques such as containers have been widely adopted for IoT service deployment. However, edge devices (e.g., gateway devices) are likely to be resource-constrained, which in some cases limits their abilities to support the deployment of multiple containers. In fact, this raises the need for an effective management of resources at the edge devices. To achieve that, tools for monitoring resources consumption of container based IoT systems at the network edge level, and to launch notifications in case of any change that requires intervention are of utmost necessity. However, the current efficient monitoring tools are greedy for computing and storage resources; especially when a considerable number of IoT microservices are needed to be deployed on the same gateway. Therefore, they do not meet the constraint of limited resources when scalability is required. This work proposes a lightweight rule-based monitoring approach, taking into consideration resources needed for the monitoring process, especially with the increased number of containers deployed on IoT gateways. Our evaluation shows a significant reduction in the communication of monitoring metrics.
{"title":"Rule based lightweight approach for resources monitoring on IoT Edge devices","authors":"Ahmed Bali, Abdelouahed Gherbi","doi":"10.1145/3366615.3368358","DOIUrl":"https://doi.org/10.1145/3366615.3368358","url":null,"abstract":"Edge computing is a recent tendency in the IoT domain that contributes to reduce the reliance on Cloud. This is due to the cost efficiency and the improvement of the system responsivity since services are deployed close to the data source as well as actuator nodes. However, IoT services are created on the top of a diverse and heterogeneous stack of technologies in terms of their representative hardware components. Thus, leading to some kind of barrier to accomplish system interoperability. To mitigate this heterogeneity issue, lightweight virtualization techniques such as containers have been widely adopted for IoT service deployment. However, edge devices (e.g., gateway devices) are likely to be resource-constrained, which in some cases limits their abilities to support the deployment of multiple containers. In fact, this raises the need for an effective management of resources at the edge devices. To achieve that, tools for monitoring resources consumption of container based IoT systems at the network edge level, and to launch notifications in case of any change that requires intervention are of utmost necessity. However, the current efficient monitoring tools are greedy for computing and storage resources; especially when a considerable number of IoT microservices are needed to be deployed on the same gateway. Therefore, they do not meet the constraint of limited resources when scalability is required. This work proposes a lightweight rule-based monitoring approach, taking into consideration resources needed for the monitoring process, especially with the increased number of containers deployed on IoT gateways. Our evaluation shows a significant reduction in the communication of monitoring metrics.","PeriodicalId":190852,"journal":{"name":"Proceedings of the 5th International Workshop on Container Technologies and Container Clouds","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133661204","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
M. Kaminski, E. Truyen, Emad Heydari Beni, B. Lagaisse, W. Joosen
Resource management concepts of container orchestration platforms such as Kubernetes can be used to achieve multi-tenancy with quality of service differentiation between tenants. However, to support cost-effective enforcement of Service Level Objectives (SLOs) about response time or throughput, an automated resource optimization approach is needed for mapping custom SLOs of different tenants to cost-efficient resource allocation policies. We propose a versatile tool for cost-effective SLO tuning, named k8-resource-optimizer, that relies on black-box performance tuning algorithms. We illustrate and validate the tool for optimizing different resource configuration properties of a simple job processing application. Our experiments showed that k8-resource-optimizer can find near-optimal configurations for different multi-tenant deployment settings and different types of resource parameters. However an open research challenge is that, when the number of parameters increases, the total tuning cost may also increase beyond what is acceptable for contemporary cloud-native applications. We shortly discuss three possible complementary solutions to tackle this challenge.
{"title":"A framework for black-box SLO tuning of multi-tenant applications in Kubernetes","authors":"M. Kaminski, E. Truyen, Emad Heydari Beni, B. Lagaisse, W. Joosen","doi":"10.1145/3366615.3368352","DOIUrl":"https://doi.org/10.1145/3366615.3368352","url":null,"abstract":"Resource management concepts of container orchestration platforms such as Kubernetes can be used to achieve multi-tenancy with quality of service differentiation between tenants. However, to support cost-effective enforcement of Service Level Objectives (SLOs) about response time or throughput, an automated resource optimization approach is needed for mapping custom SLOs of different tenants to cost-efficient resource allocation policies. We propose a versatile tool for cost-effective SLO tuning, named k8-resource-optimizer, that relies on black-box performance tuning algorithms. We illustrate and validate the tool for optimizing different resource configuration properties of a simple job processing application. Our experiments showed that k8-resource-optimizer can find near-optimal configurations for different multi-tenant deployment settings and different types of resource parameters. However an open research challenge is that, when the number of parameters increases, the total tuning cost may also increase beyond what is acceptable for contemporary cloud-native applications. We shortly discuss three possible complementary solutions to tackle this challenge.","PeriodicalId":190852,"journal":{"name":"Proceedings of the 5th International Workshop on Container Technologies and Container Clouds","volume":"50 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115283385","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Containerized clusters of machines at scale that provision Cloud services are encountering substantive difficulties with stragglers -- whereby a small subset of task execution negatively degrades system performance. Stragglers are an unsolved challenge due to a wide variety of root-causes and stochastic behavior. While there have been efforts to mitigate their effects, few works have attempted to empirically ascertain how system operational scenarios precisely influence straggler occurrence and severity. This challenge is further compounded with the difficulties of conducting experiments within real-world containerized clusters. System maintenance and experiment design are often error-prone and time-consuming processes, and a large portion of tools created for workload submission and straggler injection are bespoke to specific clusters, limiting experiment reproducibility. In this paper we propose PRISM, a framework that automates containerized cluster setup, experiment design, and experiment execution. Our framework is capable of deployment, configuration, execution, performance trace transformation and aggregation of containerized application frameworks, enabling scripted execution of diverse workloads and cluster configurations. The framework reduces time required for cluster setup and experiment execution from hours to minutes. We use PRISM to conduct automated experimentation of system operational conditions and identify straggler manifestation is affected by resource contention, input data size and scheduler architecture limitations.
{"title":"PRISM: An Experiment Framework for Straggler Analytics in Containerized Clusters","authors":"Dominic Lindsay, S. S. Gill, P. Garraghan","doi":"10.1145/3366615.3368353","DOIUrl":"https://doi.org/10.1145/3366615.3368353","url":null,"abstract":"Containerized clusters of machines at scale that provision Cloud services are encountering substantive difficulties with stragglers -- whereby a small subset of task execution negatively degrades system performance. Stragglers are an unsolved challenge due to a wide variety of root-causes and stochastic behavior. While there have been efforts to mitigate their effects, few works have attempted to empirically ascertain how system operational scenarios precisely influence straggler occurrence and severity. This challenge is further compounded with the difficulties of conducting experiments within real-world containerized clusters. System maintenance and experiment design are often error-prone and time-consuming processes, and a large portion of tools created for workload submission and straggler injection are bespoke to specific clusters, limiting experiment reproducibility. In this paper we propose PRISM, a framework that automates containerized cluster setup, experiment design, and experiment execution. Our framework is capable of deployment, configuration, execution, performance trace transformation and aggregation of containerized application frameworks, enabling scripted execution of diverse workloads and cluster configurations. The framework reduces time required for cluster setup and experiment execution from hours to minutes. We use PRISM to conduct automated experimentation of system operational conditions and identify straggler manifestation is affected by resource contention, input data size and scheduler architecture limitations.","PeriodicalId":190852,"journal":{"name":"Proceedings of the 5th International Workshop on Container Technologies and Container Clouds","volume":"110 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123180376","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
In the era of Internet of Things, there is an increasing demand for networked computing to support the requirements of time-constrained, compute-intensive distributed applications. We present a container orchestration architecture for dispersed computing, and its implementation in an open source software called Jupiter. The system automates the distribution of computational tasks for complex computational applications described as an Directed Acyclic Graph (DAG) to efficiently distribute the tasks among a set of networked compute nodes and orchestrates the execution of the DAG thereafter. This Kubernetes based container-orchestration system supports both centralized and decentralized scheduling algorithms for optimally mapping the tasks based on information from a range of profilers: network profilers, resource profilers, and execution time profilers.
{"title":"Container Orchestration for Dispersed Computing","authors":"Pradipta Ghosh, Quynh Nguyen, B. Krishnamachari","doi":"10.1145/3366615.3368354","DOIUrl":"https://doi.org/10.1145/3366615.3368354","url":null,"abstract":"In the era of Internet of Things, there is an increasing demand for networked computing to support the requirements of time-constrained, compute-intensive distributed applications. We present a container orchestration architecture for dispersed computing, and its implementation in an open source software called Jupiter. The system automates the distribution of computational tasks for complex computational applications described as an Directed Acyclic Graph (DAG) to efficiently distribute the tasks among a set of networked compute nodes and orchestrates the execution of the DAG thereafter. This Kubernetes based container-orchestration system supports both centralized and decentralized scheduling algorithms for optimally mapping the tasks based on information from a range of profilers: network profilers, resource profilers, and execution time profilers.","PeriodicalId":190852,"journal":{"name":"Proceedings of the 5th International Workshop on Container Technologies and Container Clouds","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114908097","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Proceedings of the 5th International Workshop on Container Technologies and Container Clouds","authors":"","doi":"10.1145/3366615","DOIUrl":"https://doi.org/10.1145/3366615","url":null,"abstract":"","PeriodicalId":190852,"journal":{"name":"Proceedings of the 5th International Workshop on Container Technologies and Container Clouds","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127212137","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}