223 research outputs found
GA-Par: Dependable Microservice Orchestration Framework for Geo-Distributed Clouds
Recent advances in composing Cloud applications have been driven by deployments of inter-networking heterogeneous microservices across multiple Cloud datacenters. System dependability has been of the upmost importance and criticality to both service vendors and customers. Security, a measurable attribute, is increasingly regarded as the representative example of dependability. Literally, with the increment of microservice types and dynamicity, applications are exposed to aggravated internal security threats and externally environmental uncertainties. Existing work mainly focuses on the QoS-aware composition of native VM-based Cloud application components, while ignoring uncertainties and security risks among interactive and interdependent container-based microservices. Still, orchestrating a set of microservices across datacenters under those constraints remains computationally intractable. This paper describes a new dependable microservice orchestration framework GA-Par to effectively select and deploy microservices whilst reducing the discrepancy between user security requirements and actual service provision. We adopt a hybrid (both whitebox and blackbox based) approach to measure the satisfaction of security requirement and the environmental impact of network QoS on system dependability. Due to the exponential grow of solution space, we develop a parallel Genetic Algorithm framework based on Spark to accelerate the operations for calculating the optimal or near-optimal solution. Large-scale real world datasets are utilized to validate models and orchestration approach. Experiments show that our solution outperforms the greedy-based security aware method with 42.34 percent improvement. GA-Par is roughly 4× faster than a Hadoop-based genetic algorithm solver and the effectiveness can be constantly guaranteed under different application scales
Split and Migrate: Resource-Driven Placement and Discovery of Microservices at the Edge
Microservices architectures combine the use of fine-grained and independently-scalable services with lightweight communication protocols, such as REST calls over HTTP. Microservices bring flexibility to the development and deployment of application back-ends in the cloud.
Applications such as collaborative editing tools require frequent interactions between the front-end running on users\u27 machines and a back-end formed of multiple microservices. User-perceived latencies depend on their connection to microservices, but also on the interaction patterns between these services and their databases. Placing services at the edge of the network, closer to the users, is necessary to reduce user-perceived latencies. It is however difficult to decide on the placement of complete stateful microservices at one specific core or edge location without trading between a latency reduction for some users and a latency increase for the others.
We present how to dynamically deploy microservices on a combination of core and edge resources to systematically reduce user-perceived latencies. Our approach enables the split of stateful microservices, and the placement of the resulting splits on appropriate core and edge sites. Koala, a decentralized and resource-driven service discovery middleware, enables REST calls to reach and use the appropriate split, with only minimal changes to a legacy microservices application. Locality awareness using network coordinates further enables to automatically migrate services split and follow the location of the users. We confirm the effectiveness of our approach with a full prototype and an application to ShareLatex, a microservices-based collaborative editing application
Atlas: Hybrid Cloud Migration Advisor for Interactive Microservices
Hybrid cloud provides an attractive solution to microservices for better
resource elasticity. A subset of application components can be offloaded from
the on-premises cluster to the cloud, where they can readily access additional
resources. However, the selection of this subset is challenging because of the
large number of possible combinations. A poor choice degrades the application
performance, disrupts the critical services, and increases the cost to the
extent of making the use of hybrid cloud unviable. This paper presents Atlas, a
hybrid cloud migration advisor. Atlas uses a data-driven approach to learn how
each user-facing API utilizes different components and their network footprints
to drive the migration decision. It learns to accelerate the discovery of
high-quality migration plans from millions and offers recommendations with
customizable trade-offs among three quality indicators: end-to-end latency of
user-facing APIs representing application performance, service availability,
and cloud hosting costs. Atlas continuously monitors the application even after
the migration for proactive recommendations. Our evaluation shows that Atlas
can achieve 21% better API performance (latency) and 11% cheaper cost with less
service disruption than widely used solutions.Comment: To appear at EuroSys 202
Innovative techniques for deployment of microservices in cloud-edge environment
PhD ThesisThe evolution of microservice architecture allows complex applications to be structured
into independent modular components (microservices) making them easier to develop
and manage. Complemented with containers, microservices can be deployed across
any cloud and edge environment. Although containerized microservices are getting
popular in industry, less research is available specially in the area of performance
characterization and optimized deployment of microservices.
Depending on the application type (e.g. web, streaming) and the provided functionalities
(e.g. ltering, encryption/decryption, storage), microservices are heterogeneous
with speci c functional and Quality of Service (QoS) requirements. Further, cloud
and edge environments are also complex with a huge number of cloud providers and
edge devices along with their host con gurations. Due to these complexities, nding
a suitable deployment solution for microservices becomes challenging.
To handle the deployment of microservices in cloud and edge environments, this thesis
presents multilateral research towards microservice performance characterization,
run-time evaluation and system orchestration. Considering a variety of applications,
numerous algorithms and policies have been proposed, implemented and prototyped.
The main contributions of this thesis are given below:
Characterizes the performance of containerized microservices considering various
types of interference in the cloud environment.
Proposes and models an orchestrator, SDBO for benchmarking simple webapplication
microservices in a multi-cloud environment. SDBO is validated using
an e-commerce test web-application.
Proposes and models an advanced orchestrator, GeoBench for the deployment of
complex web-application microservices in a multi-cloud environment. GeoBench
is validated using a geo-distributed test web-application.
- i -
Proposes and models a run-time deployment framework for distributed streaming
application microservices in a hybrid cloud-edge environment. The model is
validated using a real-world healthcare analytics use case for human activity
recognition.
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
Docker Layer Placement for On-Demand Provisioning of Services on Edge Clouds
Driven by the increasing popularity of the microservice architecture, we see an increase in services with unknown demand pattern located in the edge network. Pre-deployed instances of such services would be idle most of the time, which is economically infeasible. Also, the finite storage capacity limits the amount of deployed instances we can offer. Instead, we present an on-demand deployment scheme using the Docker platform. In Docker, service images consist of layers, each layer adding specific functionality. This allows different services to reuse layers, avoiding cluttering the storages with redundant replicas. We propose a layer placement method which allows users to connect to a server, retrieve all necessary layers-possibly from multiple locations- and deploy an instance of the requested service within the desired response time. We search for the best layer placement which maximizes the satisfied demand given the storage and delay constraints. We developed an iterative optimization heuristic which is less exhaustive by dividing the global problem in smaller subproblems. Our simulation results show that our heuristic is able to solve the problem with less system resources. Last, we present interesting use-cases to use this approach in real-life scenarios
Leveraging Cloud-based NFV and SDN Platform Towards Quality-Driven Next-Generation Mobile Networks
Network virtualization has become a key approach for Network Service Providers (NSPs) to mitigate the challenge of the continually increasing demands for network services. Tightly coupled with their software components, legacy network devices are difficult to upgrade or modify to meet the dynamically changing end-user needs. To virtualize their infrastructure and mitigate those challenges, NSPs have started to adopt Software Defined Networking (SDN) and Network Function Virtualization (NFV). To this end, this thesis addresses the challenges faced on the road of transforming the legacy networking infrastructure to a more dynamic and agile virtualized environment to meet the rapidly increasing demand for network services and serve as an enabler for key emerging technologies such as the Internet of Things (IoT) and 5G networking. The thesis considers different approaches and platforms to serve as an NFV/SDN based cloud applications while closely considering how such an environment deploys its virtualized services to optimize the network and reducing their costs. The thesis starts first by defining the standards of adopting microservices as architecture for NFV. Then, it focuses on the latency-aware deployment approach of virtual network functions (VNFs) forming service function chains (SFC) in a cloud environment. This approach ensures that NSPs still meet their strict quality of service and service level agreements while considering both functional and non-functional constraints of the NFV-based applications such as, delay, resource allocation, and intercorrelation between VNF instances. In addition, the thesis proposes a detailed approach on recovering and handling of those instances by optimizing the decision of migrating or re-instantiating the virtualized services upon a sudden event (failure/overload…). All the proposed approaches contribute to the orchestration of NFV applications to meet the requirements of the IoT and NGNs era
Detection of microservice smells through static analysis
A arquitetura de microsserviços é um modelo arquitetural promissor na área de software,
atraindo desenvolvedores e empresas para os seus princÃpios convincentes. As suas vantagens
residem no potencial para melhorar a escalabilidade, a flexibilidade e a agilidade, alinhando se com as exigências em constante evolução da era digital. No entanto, navegar entre as
complexidades dos microsserviços pode ser uma tarefa desafiante, especialmente à medida
que este campo continua a evoluir.
Um dos principais desafios advém da complexidade inerente aos microsserviços, em que o seu
grande número e interdependências podem introduzir novas camadas de complexidade. Além
disso, a rápida expansão dos microsserviços, juntamente com a necessidade de aproveitar as
suas vantagens de forma eficaz, exige uma compreensão mais profunda das potenciais
ameaças e problemas que podem surgir. Para tirar verdadeiramente partido das vantagens
dos microsserviços, é essencial enfrentar estes desafios e garantir que o desenvolvimento e a
adoção de microsserviços sejam bem-sucedidos.
O presente documento pretende explorar a área dos smells da arquitetura de microsserviços
que desempenham um papel tão importante na dÃvida técnica dirigida à área dos
microsserviços.
Embarca numa exploração de investigação abrangente, explorando o domÃnio dos smells de
microsserviços. Esta investigação serve como base para melhorar um catálogo de smells de
microsserviços. Esta investigação abrangente obtém dados de duas fontes primárias:
systematic mapping study e um questionário a profissionais da área. Este último envolveu 31
profissionais experientes com uma experiência substancial no domÃnio dos microsserviços.
Além disso, são descritos o desenvolvimento e o aperfeiçoamento de uma ferramenta
especificamente concebida para identificar e resolver problemas relacionados com os
microsserviços. Esta ferramenta destina-se a melhorar o desempenho dos programadores
durante o desenvolvimento e a implementação da arquitetura de microsserviços.
Por último, o documento inclui uma avaliação do desempenho da ferramenta. Trata-se de
uma análise comparativa efetuada antes e depois das melhorias introduzidas na ferramenta.
A eficácia da ferramenta será avaliada utilizando o mesmo benchmarking de microsserviços
utilizado anteriormente, para além de outro benchmarking para garantir uma avaliação
abrangente.The microservices architecture stands as a beacon of promise in the software landscape,
drawing developers and companies towards its compelling principles. Its appeal lies in the
potential for improved scalability, flexibility, and agility, aligning with the ever-evolving
demands of the digital age. However, navigating the intricacies of microservices can be a
challenging task, especially as this field continues to evolve.
A key challenge arises from the inherent complexity of microservices, where their sheer
number and interdependencies can introduce new layers of intricacy. Furthermore, the rapid
expansion of microservices, coupled with the need to harness their advantages effectively,
demands a deeper understanding of the potential pitfalls and issues that may emerge. To
truly unlock the benefits of microservices, it is essential to address these challenges head-on
and ensure a successful journey in the world of microservices development and adoption.
The present document intends to explore the area of microservice architecture smells that
play such an important role in the technical debt directed to the area of microservices.
It embarks on a comprehensive research exploration, delving into the realm of microservice
smells. This research serves as the cornerstone for enhancing a microservice smell catalogue.
This comprehensive research draws data from two primary sources: a systematic mapping
research and an industry survey. The latter involves 31 seasoned professionals with
substantial experience in the field of microservices.
Moreover, the development and enhancement of a tool specifically designed to identify and
address issues related to microservices is described. This tool is aimed at improving
developers' performance throughout the development and implementation of microservices
architecture.
Finally, the document includes an evaluation of the tool's performance. This involves a
comparative analysis conducted before and after the tool's enhancements. The tool's
effectiveness will be assessed using the same microservice benchmarking as previously
employed, in addition to another benchmark to ensure a comprehensive evaluation
- …