66 research outputs found
Recommended from our members
Leveraging Distributed Tracing and Container Cloning for Replay Debugging of Microservices
Microservice architectures have gained prominence in recent years for building large-scale industrial distributed systems. However, microservice architectures make the usage of replay debugging, a powerful technique for finding root causes of faults, very challenging because of the polyglot (written in several languages) services, large accumulated state of services, and tight latency limits imposed by long hop-chains. This work attempts to provide a framework for enabling replay debugging in production microservice applications. We study 25 real-world faults in microservice systems collected from diverse sources, categorize these faults by fault symptoms, and create 15 application agnostic mutation operators for microservices. We then propose a language agnostic replay debugging framework for microservice applications that uses a distributed tracing system to record network requests and enables replay of those requests on cloned service containers running in a debug environment. A key component of this framework is an anomaly detector that uses span-level and container-level monitoring to detect fault symptoms found in our study and localizes faults to trace level so that faulty traces can be easily replayed to find the root cause. An open-source microservices application injected successively with the mutation operators is used for an evaluation that shows that our framework is upto an order of magnitude lighter-weight than language-specific recording tools such as Chrome DevTools or VisualVM and can help in finding root causes of 9 out of 15 mutations at a line or function level
Evolving legacy enterprise systems with microservices-based architecture in cloud environments
Many legacy enterprise systems suffer from a number of common and critical problems. Such systems have often been implemented in the past with hardware and software technologies which are now out of date. Furthermore, they have often been modified in piecemeal so as to allow them to cope with changed requirements, and the need for new functionalities, which have come to light since their initial implementation. Thus, they are often ‘messy’ in their implementations and difficult to use: the modules are no longer well-structured, and many dependencies exist across module boundaries; also some new functionalities may prove impossible to incorporate within them. The old-fashioned technologies on which they are based frequently are unable to deliver the speed and throughput required by the business environment, and such technologies usually do not offer the ease of modification provided by modern service oriented and networked systems. Further, new technologies are often available on a much wider range of platforms and are generally more scalable and flexible – leading to much greater ease of use. Therefore, there is a need to migrate legacy systems to the newer technologies and in this process to construct the more well-structured systems. One path by which this can be done is to migrate the system to the Cloud-based technology, and in the course of this migration, to re-structure it into a microservices-based architecture. By doing so, the hope is that the resultant system will be easier to modify, offer higher performance, and offer other benefits as well, such as better security. To attain these hoped-for benefits, it is vital that the migration is performed in an appropriate approach. The contributions of this thesis are to propose and validate an approach to the migration of a legacy system to a microservice-oriented architecture and Cloud based system. This approach is predicated on the creation and use of two sets of rules: a set of feature-driven microservice transformation rules and a set of feature-driven cloud migration rules. It is hypothesized that the correct interpretation of, and the appropriate adherence to, these rules will lead to the implementation of a new microservices-oriented and Cloud based system, which will replace the functionality of the legacy system, improve the QoS offered by this, in terms of non-functional requirements, and be far easier to modify in the future in order to cope with further functional and other requirements which may emerge. To verify that the proposed approach and its associated rules are fit for the above purpose, two case studies are embarked upon. One involves the comprehensive conversion of a legacy system, via the rules, into a Cloud and microservices architecture based system implemented within a container technology environment – an environment which, according to the literature, is the one best suited to this purpose. The testing and implementation involved with that case study is focused on the microservice-oriented system’s compliance with non-functional requirements such as throughput. The second case study is analysis-intensive, focusing on how a much more complex and much larger legacy system could be migrated in the same way. This latter case study is focused on interoperability, testability, maintainability, availability, and scalability. The results from these case studies verify the validity and efficacy of the approach and the rules which are developed for it, and lead to some insightful suggestions for future research
Towards predictive runtime modelling of Kubernetes microservices
Kubernetes is one of the major container management platforms utilised by Cloud Service Providers offering to host applications and services. As cloud based services become more prevalent, platform providers are faced with an increasingly complex problem of trying to meet contracted performance levels. Providers must strike a balance between management of resource allocations and contractual obligations to ensure that their service is profitable, while offering competitive pricing rates for contracts. This research explores performance modelling of microservice application tenants within the Kubernetes container management platform. We present a self-adaptive architecture to achieve modelling at runtime. We establish the potential for automated classification of cloud systems, and utilise a hybridised modelling approach to verify system properties and evaluate performance. We achieve this through the modelling of components as Extended Finite State Machines in WATERS, from which we automate the generating of performance models using the PEPA syntax
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.
Automated Testing for Provisioning Systems of Complex Cloud Products
Context: The proliferation of cloud computing enabled companies to shift their approach
regarding infrastructure provisioning. The uprising of cloud provisioning enabled
by virtualisation technologies sprouted the rise of the Infrastructure as a Service
(IaaS) model. OutSystems takes advantage of the IaaS model to spin-up infrastructure
on-demand while abstracting the infrastructure management from the end-users.
Problem: OutSystems’ orchestrator system handles the automated orchestration of the
clients’ infrastructure, and it must be thoroughly tested. Problems arise because infrastructure
provisioning takes considerable amounts of time, which dramatically increases
the feedback loop for the developers. Currently, the duration of the orchestrator tests
hinder the ability to develop and deliver new features at a desirable pace.
Objectives: The goals of this work include designing an efficient testing strategy that
considers a microservices architecture with infrastructure provisioning capabilities while
integrating it in a Continuous Integration (CI)/Continuous Deployment (CD) pipeline.
Methods: The solution applies multiple testing techniques that target different portions
of the system and follow a pre-determined test distribution to guarantee a balanced
test suite. The strategy was tested against a set of prototypes to evaluate its adequacy and
efficiency. The strategy definition focuses on mapping the type of errors that each test
level should tackle and is, therefore, independent of the employed technologies.
Results: The devised strategy is integrated in a CI/CD pipeline and is capable of
comprehensively test the created prototypes while maintaining a short feedback loop. It
also provides support for testing against commonly found errors in distributed systems
in a deterministic way.
Conclusions: The work developed in this dissertation met the outlined objectives, as
the developed strategy proved its adequacy against the developed prototypes. Moreover,
this work provides a solid starting point for the migration of the orchestrator system to a
microservices architecture
ICSEA 2021: the sixteenth international conference on software engineering advances
The Sixteenth International Conference on Software Engineering Advances (ICSEA 2021), held on October 3 - 7, 2021 in Barcelona, Spain, continued a series of events covering a broad spectrum of software-related topics.
The conference covered fundamentals on designing, implementing, testing, validating and maintaining various kinds of software. The tracks treated the topics from theory to practice, in terms of methodologies, design, implementation, testing, use cases, tools, and lessons learnt. The conference topics covered classical and advanced methodologies, open source, agile software, as well as software deployment and software economics and education.
The conference had the following tracks:
Advances in fundamentals for software development
Advanced mechanisms for software development
Advanced design tools for developing software
Software engineering for service computing (SOA and Cloud)
Advanced facilities for accessing software
Software performance
Software security, privacy, safeness
Advances in software testing
Specialized software advanced applications
Web Accessibility
Open source software
Agile and Lean approaches in software engineering
Software deployment and maintenance
Software engineering techniques, metrics, and formalisms
Software economics, adoption, and education
Business technology
Improving productivity in research on software engineering
Trends and achievements
Similar to the previous edition, this event continued to be very competitive in its selection process and very well perceived by the international software engineering community. As such, it is attracting excellent contributions and active participation from all over the world. We were very pleased to receive a large amount of top quality contributions.
We take here the opportunity to warmly thank all the members of the ICSEA 2021 technical program committee as well as the numerous reviewers. The creation of such a broad and high quality conference program would not have been possible without their involvement. We also kindly thank all the authors that dedicated much of their time and efforts to contribute to the ICSEA 2021. We truly believe that thanks to all these efforts, the final conference program consists of top quality contributions.
This event could also not have been a reality without the support of many individuals, organizations and sponsors. We also gratefully thank the members of the ICSEA 2021 organizing committee for their help in handling the logistics and for their work that is making this professional meeting a success.
We hope the ICSEA 2021 was a successful international forum for the exchange of ideas and results between academia and industry and to promote further progress in software engineering research
A Design Framework for Aggregation in a System of Digital Twins
Mechanical and Mechatronic Engineerin
- …