5,856 research outputs found
The impact of microservices: an empirical analysis of the emerging software architecture
Dissertação de mestrado em Informatics EngineeringThe applications’ development paradigm has faced changes in recent years, with modern development being
characterized by the need to continuously deliver new software iterations. With great affinity with those principles,
microservices is a software architecture which features characteristics that potentially promote multiple quality
attributes often required by modern, large-scale applications. Its recent growth in popularity and acceptance in
the industry made this architectural style often described as a form of modernizing applications that allegedly
solves all the traditional monolithic applications’ inconveniences. However, there are multiple worth mentioning
costs associated with its adoption, which seem to be very vaguely described in existing empirical research, being
often summarized as "the complexity of a distributed system". The adoption of microservices provides the
agility to achieve its promised benefits, but to actually reach them, several key implementation principles have
to be honored. Given that it is still a fairly recent approach to developing applications, the lack of established
principles and knowledge from development teams results in the misjudgment of both costs and values of this
architectural style. The outcome is often implementations that conflict with its promised benefits. In order to
implement a microservices-based architecture that achieves its alleged benefits, there are multiple patterns and
methodologies involved that add a considerable amount of complexity. To evaluate its impact in a concrete and
empirical way, one same e-commerce platform was developed from scratch following a monolithic architectural
style and two architectural patterns based on microservices, featuring distinct inter-service communication and
data management mechanisms. The effort involved in dealing with eventual consistency, maintaining a communication
infrastructure, and managing data in a distributed way portrayed significant overheads not existent in the
development of traditional applications. Nonetheless, migrating from a monolithic architecture to a microservicesbased
is currently accepted as the modern way of developing software and this ideology is not often contested,
nor the involved technical challenges are appropriately emphasized. Sometimes considered over-engineering,
other times necessary, this dissertation contributes with empirical data from insights that showcase the impact
of the migration to microservices in several topics. From the trade-offs associated with the use of specific patterns,
the development of the functionalities in a distributed way, and the processes to assure a variety of quality
attributes, to performance benchmarks experiments and the use of observability techniques, the entire development
process is described and constitutes the object of study of this dissertation.O paradigma de desenvolvimento de aplicações tem visto alterações nos últimos anos, sendo o desenvolvimento
moderno caracterizado pela necessidade de entrega contĂnua de novas iterações de software. Com
grande afinidade com esses princĂpios, microsserviços sĂŁo uma arquitetura de software que conta com caracterĂsticas
que potencialmente promovem múltiplos atributos de qualidade frequentemente requisitados por aplicações
modernas de grandes dimensões. O seu recente crescimento em popularidade e aceitação na industria
fez com que este estilo arquitetural se comumente descrito como uma forma de modernizar aplicações que
alegadamente resolve todos os inconvenientes apresentados por aplicações monolĂticas tradicionais. Contudo,
existem vários custos associados à sua adoção, aparentemente descritos de forma muito vaga, frequentemente
sumarizados como a "complexidade de um sistema distribuĂdo". A adoção de microsserviços fornece a agilidade
para atingir os seus benefĂcios prometidos, mas para os alcançar, vários princĂpios de implementação
devem ser honrados. Dado que ainda se trata de uma forma recente de desenvolver aplicações, a falta de
princĂpios estabelecidos e conhecimento por parte das equipas de desenvolvimento resulta em julgamentos
errados dos custos e valores deste estilo arquitetural. O resultado geralmente são implementações que entram
em conflito com os seus benefĂcios prometidos. De modo a implementar uma arquitetura baseada em
microsserviços com os benefĂcios prometidos existem mĂşltiplos padrões que adicionam considerável complexidade.
De modo a avaliar o impacto dos microsserviços de forma concreta e empĂrica, foi desenvolvida uma
mesma plataforma e-commerce de raiz segundo uma arquitetura monolĂtica e duas arquitetura baseadas em
microsserviços, contando com diferentes mecanismos de comunicação entre os serviços. O esforço envolvido
em lidar com consistĂŞncia eventual, manter a infraestrutura de comunicação e gerir os dados de uma forma distribuĂda
representaram desafios não existentes no desenvolvimento de aplicações tradicionais. Apesar disso, a
ideologia de migração de uma arquitetura monolĂtica para uma baseada em microsserviços Ă© atualmente aceite
como a forma moderna de desenvolver aplicações, não sendo frequentemente contestada nem os seus desafios
técnicos são apropriadamente enfatizados. Por vezes considerado overengineering, outras vezes necessário,
a presente dissertação visa contribuir com dados práticos relativamente ao impacto da migração para arquiteturas
baseadas em microsserviços em diversos tópicos. Desde os trade-offs envolvidos no uso de padrões
especĂficos, o desenvolvimento das funcionalidades de uma forma distribuĂda e nos processos para assegurar
uma variedade de atributos de qualidade, até análise de benchmarks de performance e uso de técnicas de
observabilidade, todo o desenvolvimento é descrito e constitui o objeto de estudo da dissertação
Performance Evaluation of Serverless Applications and Infrastructures
Context. Cloud computing has become the de facto standard for deploying modern web-based software systems, which makes its performance crucial to the efficient functioning of many applications. However, the unabated growth of established cloud services, such as Infrastructure-as-a-Service (IaaS), and the emergence of new serverless services, such as Function-as-a-Service (FaaS), has led to an unprecedented diversity of cloud services with different performance characteristics. Measuring these characteristics is difficult in dynamic cloud environments due to performance variability in large-scale distributed systems with limited observability.Objective. This thesis aims to enable reproducible performance evaluation of serverless applications and their underlying cloud infrastructure.Method. A combination of literature review and empirical research established a consolidated view on serverless applications and their performance. New solutions were developed through engineering research and used to conduct performance benchmarking field experiments in cloud environments.Findings. The review of 112 FaaS performance studies from academic and industrial sources found a strong focus on a single cloud platform using artificial micro-benchmarks and discovered that most studies do not follow reproducibility principles on cloud experimentation. Characterizing 89 serverless applications revealed that they are most commonly used for short-running tasks with low data volume and bursty workloads. A novel trace-based serverless application benchmark shows that external service calls often dominate the median end-to-end latency and cause long tail latency. The latency breakdown analysis further identifies performance challenges of serverless applications, such as long delays through asynchronous function triggers, substantial runtime initialization for coldstarts, increased performance variability under bursty workloads, and heavily provider-dependent performance characteristics. The evaluation of different cloud benchmarking methodologies has shown that only selected micro-benchmarks are suitable for estimating application performance, performance variability depends on the resource type, and batch testing on the same instance with repetitions should be used for reliable performance testing.Conclusions. The insights of this thesis can guide practitioners in building performance-optimized serverless applications and researchers in reproducibly evaluating cloud performance using suitable execution methodologies and different benchmark types
High performance computing of explicit schemes for electrofusion jointing process based on message-passing paradigm
The research focused on heterogeneous cluster workstations comprising of a number of CPUs in single and shared architecture platform. The problem statements under consideration involved one dimensional parabolic equations. The thermal process of electrofusion jointing was also discussed. Numerical schemes of explicit type such as AGE, Brian, and Charlies Methods were employed. The parallelization of these methods were based on the domain decomposition technique. Some parallel performance measurement for these methods were also addressed. Temperature profile of the one dimensional radial model of the electrofusion process were also given
Tackling Exascale Software Challenges in Molecular Dynamics Simulations with GROMACS
GROMACS is a widely used package for biomolecular simulation, and over the
last two decades it has evolved from small-scale efficiency to advanced
heterogeneous acceleration and multi-level parallelism targeting some of the
largest supercomputers in the world. Here, we describe some of the ways we have
been able to realize this through the use of parallelization on all levels,
combined with a constant focus on absolute performance. Release 4.6 of GROMACS
uses SIMD acceleration on a wide range of architectures, GPU offloading
acceleration, and both OpenMP and MPI parallelism within and between nodes,
respectively. The recent work on acceleration made it necessary to revisit the
fundamental algorithms of molecular simulation, including the concept of
neighborsearching, and we discuss the present and future challenges we see for
exascale simulation - in particular a very fine-grained task parallelism. We
also discuss the software management, code peer review and continuous
integration testing required for a project of this complexity.Comment: EASC 2014 conference proceedin
On the Behaviour of General-Purpose Applications on Cloud Storages
Managing data over cloud infrastructures raises novel challenges with respect to existing and well studied approaches such as ACID and long running transactions. One of the main requirements is to provide availability and partition tolerance in a scenario with replicas and distributed control. This comes at the price of a weaker consistency, usually called eventual consistency. These weak memory models have proved to be suitable in a number of scenarios, such as the analysis of large data with Map-Reduce. However, due to the widespread availability of cloud infrastructures, weak storages are used not only by specialised applications but also by general purpose applications. We provide a formal approach, based on process calculi, to reason about the behaviour of programs that rely on cloud stores. For instance, one can check that the composition of a process with a cloud store ensures `strong' properties through a wise usage of asynchronous message-passing
- …