3 research outputs found

    Mitigating Resource Management and Continuous Integration Obstacles in Heavy Traffic Systems Using Containerization and Orchestration Tools

    Get PDF
    In this paper I covered virtualization technologies, including Virtual Machines and Containerization engines analyzing their advantages and drawbacks. After reviewing possible container application areas, I introduce Kubernetes, an orchestration tool that manages a cluster of containers on autopilot given correct configurations. After that, I give more details on how an orchestration framework functions, communicates with containers, and keeps the containers up. Moreover, I propose CI/CD tools and compare their efficiency through a designed experiment built using a cluster of nodes provided by the accessible version of Google Cloud Platform and deployed containers via Google Kubernetes Engine. At the end of the experiment, I give a comprehensive analysis of the results. To summarize, both containers and virtual machine technologies allow users to describe and develop their software environments before running them on top of multiple resources in a portable, repeatable manner. With containers, it is possible to construct scalable architecture composed of a large number of services (microservices). Also, the integration of new features can be done more efficiently if deployed in a continuous manner using the proposed CI/CD tools. Nevertheless, there are open questions to be researched, such as how the various tools respond when something goes wrong in the pipelines and the best policies for reverting to previous versions to ensure high availability

    Leveraging Kubernetes for adaptive and cost-efficient resource management

    No full text
    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.status: Published onlin

    Plataforma colaborativa, distribuida, escalable y de bajo costo basada en microservicios, contenedores, dispositivos m贸viles y servicios en la Nube para tareas de c贸mputo intensivo

    Get PDF
    A la hora de resolver tareas de c贸mputo intensivo de manera distribuida y paralela, habitualmente se utilizan recursos de hardware x86 (CPU/GPU) e infraestructura especializada (Grid, Cluster, Nube) para lograr un alto rendimiento. En sus inicios los procesadores, coprocesadores y chips x86 fueron desarrollados para resolver problemas complejos sin tener en cuenta su consumo energ茅tico. Dado su impacto directo en los costos y el medio ambiente, optimizar el uso, refrigeraci贸n y gasto energ茅tico, as铆 como analizar arquitecturas alternativas, se convirti贸 en una preocupaci贸n principal de las organizaciones. Como resultado, las empresas e instituciones han propuesto diferentes arquitecturas para implementar las caracter铆sticas de escalabilidad, flexibilidad y concurrencia. Con el objetivo de plantear una arquitectura alternativa a los esquemas tradicionales, en esta tesis se propone ejecutar las tareas de procesamiento reutilizando las capacidades ociosas de los dispositivos m贸viles. Estos equipos integran procesadores ARM los cuales, en contraposici贸n a las arquitecturas tradicionales x86, fueron desarrollados con la eficiencia energ茅tica como pilar fundacional, ya que son mayormente alimentados por bater铆as. Estos dispositivos, en los 煤ltimos a帽os, han incrementado su capacidad, eficiencia, estabilidad, potencia, as铆 como tambi茅n masividad y mercado; mientras conservan un precio, tama帽o y consumo energ茅tico reducido. A su vez, cuentan con lapsos de ociosidad durante los per铆odos de carga, lo que representa un gran potencial que puede ser reutilizado. Para gestionar y explotar adecuadamente estos recursos, y convertirlos en un centro de datos de procesamiento intensivo; se dise帽贸, desarroll贸 y evalu贸 una plataforma distribuida, colaborativa, el谩stica y de bajo costo basada en una arquitectura compuesta por microservicios y contenedores orquestados con Kubernetes en ambientes de Nube y local, integrada con herramientas, metodolog铆as y pr谩cticas DevOps. El paradigma de microservicios permiti贸 que las funciones desarrolladas sean fragmentadas en peque帽os servicios, con responsabilidades acotadas. Las pr谩cticas DevOps permitieron construir procesos automatizados para la ejecuci贸n de pruebas, trazabilidad, monitoreo e integraci贸n de modificaciones y desarrollo de nuevas versiones de los servicios. Finalmente, empaquetar las funciones con todas sus dependencias y librer铆as en contenedores ayud贸 a mantener servicios peque帽os, inmutables, portables, seguros y estandarizados que permiten su ejecuci贸n independiente de la arquitectura subyacente. Incluir Kubernetes como Orquestador de contenedores, permiti贸 que los servicios se puedan administrar, desplegar y escalar de manera integral y transparente, tanto a nivel local como en la Nube, garantizando un uso eficiente de la infraestructura, gastos y energ铆a. Para validar el rendimiento, escalabilidad, consumo energ茅tico y flexibilidad del sistema, se ejecutaron diversos escenarios concurrentes de transcoding de video. De esta manera se pudo probar, por un lado, el comportamiento y rendimiento de diversos dispositivos m贸viles y x86 bajo diferentes condiciones de estr茅s. Por otro lado, se pudo mostrar c贸mo a trav茅s de una carga variable de tareas, la arquitectura se ajusta, flexibiliza y escala para dar respuesta a las necesidades de procesamiento. Los resultados experimentales, sobre la base de los diversos escenarios de rendimiento, carga y saturaci贸n planteados, muestran que se obtienen mejoras 煤tiles sobre la l铆nea de base de este estudio y que la arquitectura desarrollada es lo suficientemente robusta para considerarse una alternativa escalable, econ贸mica y el谩stica, respecto a los modelos tradicionales.Facultad de Inform谩tic
    corecore