422 research outputs found
Microservices-based IoT Applications Scheduling in Edge and Fog Computing: A Taxonomy and Future Directions
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
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
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
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
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
- …