422 research outputs found

    Microservices-based IoT Applications Scheduling in Edge and Fog Computing: A Taxonomy and Future Directions

    Full text link
    Edge and Fog computing paradigms utilise distributed, heterogeneous and resource-constrained devices at the edge of the network for efficient deployment of latency-critical and bandwidth-hungry IoT application services. Moreover, MicroService Architecture (MSA) is increasingly adopted to keep up with the rapid development and deployment needs of the fast-evolving IoT applications. Due to the fine-grained modularity of the microservices along with their independently deployable and scalable nature, MSA exhibits great potential in harnessing both Fog and Cloud resources to meet diverse QoS requirements of the IoT application services, thus giving rise to novel paradigms like Osmotic computing. However, efficient and scalable scheduling algorithms are required to utilise the said characteristics of the MSA while overcoming novel challenges introduced by the architecture. To this end, we present a comprehensive taxonomy of recent literature on microservices-based IoT applications scheduling in Edge and Fog computing environments. Furthermore, we organise multiple taxonomies to capture the main aspects of the scheduling problem, analyse and classify related works, identify research gaps within each category, and discuss future research directions.Comment: 35 pages, 10 figures, submitted to ACM Computing Survey

    MicroFog: A Framework for Scalable Placement of Microservices-based IoT Applications in Federated Fog Environments

    Full text link
    MicroService Architecture (MSA) is gaining rapid popularity for developing large-scale IoT applications for deployment within distributed and resource-constrained Fog computing environments. As a cloud-native application architecture, the true power of microservices comes from their loosely coupled, independently deployable and scalable nature, enabling distributed placement and dynamic composition across federated Fog and Cloud clusters. Thus, it is necessary to develop novel microservice placement algorithms that utilise these microservice characteristics to improve the performance of the applications. However, existing Fog computing frameworks lack support for integrating such placement policies due to their shortcomings in multiple areas, including MSA application placement and deployment across multi-fog multi-cloud environments, dynamic microservice composition across multiple distributed clusters, scalability of the framework, support for deploying heterogeneous microservice applications, etc. To this end, we design and implement MicroFog, a Fog computing framework providing a scalable, easy-to-configure control engine that executes placement algorithms and deploys applications across federated Fog environments. Furthermore, MicroFog provides a sufficient abstraction over container orchestration and dynamic microservice composition. The framework is evaluated using multiple use cases. The results demonstrate that MicroFog is a scalable, extensible and easy-to-configure framework that can integrate and evaluate novel placement policies for deploying microservice-based applications within multi-fog multi-cloud environments. We integrate multiple microservice placement policies to demonstrate MicroFog's ability to support horizontally scaled placement, thus reducing the application service response time up to 54%

    Adaptive microservice scaling for elastic applications

    Get PDF
    Today, Internet users expect web applications to be fast, performant and always available. With the emergence of Internet of Things, data collection and the analysis of streams have become more and more challenging. Behind the scenes, application owners and cloud service providers work to meet these expectations, yet, the problem of how to most effectively and efficiently auto-scale a web application to optimise for performance whilst reducing costs and energy usage is still a challenge. In particular, this problem has new relevance due to the continued rise of Internet of Things and microservice based architectures. A key concern, that is often not addressed by current auto-scaling systems, is the decision on which microservice to scale in order to increase performance. Our aim is to design a prototype auto-scaling system for microservice based web applications which can learn from past service experience. The contributions of the work can be divided into two parts (a) developing a pipeline for microservice auto-scaling and (b) evaluating a hybrid sequence and supervised learning model for recommending scaling actions. The pipeline has proven to be an effective platform for exploring auto-scaling solutions, as we will demonstrate through the evaluation of our proposed hybrid model. The results of hybrid model show the merit of using a supervised model to identify which microservices should be scaled up more

    Performance Evaluation of Microservices Architectures using Containers

    Get PDF
    Microservices architecture has started a new trend for application development for a number of reasons: (1) to reduce complexity by using tiny services; (2) to scale, remove and deploy parts of the system easily; (3) to improve flexibility to use different frameworks and tools; (4) to increase the overall scalability; and (5) to improve the resilience of the system. Containers have empowered the usage of microservices architectures by being lightweight, providing fast start-up times, and having a low overhead. Containers can be used to develop applications based on monolithic architectures where the whole system runs inside a single container or inside a microservices architecture where one or few processes run inside the containers. Two models can be used to implement a microservices architecture using containers: master-slave, or nested-container. The goal of this work is to compare the performance of CPU and network running benchmarks in the two aforementioned models of microservices architecture hence provide a benchmark analysis guidance for system designers.Comment: Submitted to the 14th IEEE International Symposium on Network Computing and Applications (IEEE NCA15). Partially funded by European Research Council (ERC) under the European Union's Horizon 2020 research and innovation programme (grant agreement No 639595) - HiEST Projec

    Developing A Multi Application Real-Time Platform Using Cloud Serverless Technologies

    Get PDF
    Magycal Interactive is a software company that has produced a significant impact in the Portuguese television sector. Magycal is Magycal Interactive’s cloud based server-side framework that was developed to standardize common services (chats, polls, authentication) provided by applications such as Viva Ronaldo, Secret Story e SPORT TV Digital Hub. As popularity and success of each application increases, Magycal becomes more technically outdated. Its monolithic architecture, which previously allowed for easy development is becoming a development bottleneck. Scaling the server is increasing in cost as the platform grows, and developing updates and new features is more difficult since services are becoming more tightly coupled with each release. In this work, we propose an architectural shift for Magycal where we decouple services for better scalability, development and deployment. After a study of existing architectural options, we have concluded that the most suitable candidate architecture that meets the demands of Magycal is the microservices architecture. To test our hypothesis and determine the feasibility of the architectural change, we have selected a service of Magycal that was implemented following a microservice-oriented design. Our implementation was validated via API calls to ensure the modifications maintained correct behavior of the framework. The new service had its implementation benchmarked and compared to the corresponded Magycal existing service. We concluded that the changes to Magycal yield a more robust framework with reduced costs of maintaining, development and deployment.A Magycal Interactive é uma empresa de software que produz um impacto significativo no setor televisivo português. Magycal é a plataforma servidor da empresa na cloud desenvolvida para padronizar serviços comuns (canais de conversa, votações, autenticação) fornecidos por aplicações como Viva Ronaldo, Secret Story e SPORT TV Digital Hub. À medida que a popularidade e o sucesso de cada aplicação aumenta, o Magycal tornase tecnicamente mais desatualizado. A sua arquitetura monolítica, que anteriormente permitia desenvolvimento fácil, torna-se um problema. O custo de escalabilidade do servidor está a aumentar à medida que a plataforma cresce, e o desenvolvimento de atualizações e novos recursos é mais difícil, pois os serviços tornam-se mais fortemente acoplados a cada nova versão. Neste trabalho, propomos uma mudança de arquitetura para o Magycal, onde dissociamos os serviços para melhor escalabilidade, desenvolvimento e deployment. Após um estudo das opções arquiteturais existentes, concluímos que a arquitetura candidata mais adequada às necessidades do Magycal é a arquitetura de microserviços. Para testar nossa hipótese e determinar a viabilidade da mudança arquitetural, selecionamos um serviço do Magycal que foi implementados seguindo um design orientado a microsserviços. A nossa implementação foi validada com chamadas API para garantir que as modificações mantiveram o comportamento correto da estrutura. O novo serviço teve a sua implementação medida e comparadas ao serviço existente no Magycal. Foi concluído que as mudanças no Magycal produzem uma estrutura mais robusta, com custos reduzidos de manutenção, desenvolvimento e implementação
    corecore