98 research outputs found
An In-Switch Architecture for Low-Latency Microservices
In recent time, there is has been a movement away from standard monolithic architecture in cloud and web services towards what is known as a microservice architecture. Microservice architecture decomposes the previous monolithic architecture into multiple independent services called "microservices". Examples of applications that use a microservice architecture include Netflix and Amazon. These applications typically send large numbers of microservice requests, which go through the OSI network layers to establish a client server connection. This trend towards microservices has developed interest by other researchers to make improvements in this field, due to the growing reliance importance on such architectures by consumers. There have been studies regarding the security of these microservices, performance analysis of various applications, and the use of these microservice applications in cloud technology. Any improvements in the speed, security, or organization of such network architecture would be very beneficial of these popular API's, and their user base. This project's objective is to investigate the potential of moving some of the processing that is done for these microservices within a network switch, and as a result the performance at the application level, by alleviating network communication. We formulate a high-level design for an in-switch architecture for low-latency microservice leveraging existing programmable-switches support. We investigate the implementation of NetCache as a microservice in our model and predict a significant latency reduction and subsequent performance increase
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
Creation of a Cloud-Native Application: Building and operating applications that utilize the benefits of the cloud computing distribution approach
Dissertation presented as the partial requirement for obtaining a Master's degree in Information Management, specialization in Information Systems and Technologies ManagementVMware is a world-renowned company in the field of cloud infrastructure and digital workspace technology which supports organizations in digital transformations. VMware accelerates digital transformation for evolving IT environments by empowering clients to adopt a software-defined strategy towards their business and information technology. Previously present in the private cloud segment, the company has recently focused on developing offers related to the public cloud.
Comprehending how to devise cloud-compatible systems has become increasingly crucial in the present times. Cloud computing is rapidly evolving from a specialized technology favored by tech-savvy companies and startups to the cornerstone on which enterprise systems are constructed for future growth. To stay competitive in the current market, both big and small organizations are adopting cloud architectures and methodologies.
As a member of the technical pre-sales team, the main goal of my internship was the design, development, and deployment of a cloud native application and therefore this will be the subject of my internship report. The application is intended to interface with an existing one and demonstrates in question the possible uses of VMware's virtualization infrastructure and automation offerings. Since its official release, the application has already been presented to various existing and prospective customers and at conferences. The purpose of this work is to provide a permanent record of my internship experience at VMware. Through this undertaking, I am able to retrospect on the professional facets of my internship experience and the competencies I gained during the journey. This work is a descriptive and theoretical reflection, methodologically oriented towards the development of a cloud-native application in the context of my internship in the system engineering team at VMware. The scientific content of the internship of the report focuses on the benefits - not limited to scalability and maintainability - to move from a monolithic architecture to microservices
Data Mesh: concepts and principles of a paradigm shift in data architectures
Inherent to the growing use of the most varied forms of software (e.g., social applications), there is the creation and storage of data that, due to its characteristics (volume, variety, and velocity), make the concept of Big Data emerge. Big Data Warehouses and Data Lakes are concepts already well established and implemented by several organizations, to serve their decision-making needs. After analyzing the various problems demonstrated by those monolithic architectures, it is possible to conclude about the need for a paradigm shift that will make organizations truly data-oriented. In this new paradigm, data is seen as the main concern of the organization, and the pipelining tools and the Data Lake itself are seen as a secondary concern. Thus, the Data Mesh consists in the implementation of an architecture where data is intentionally distributed among several Mesh nodes, in such a way that there is no chaos or data silos, since there are centralized governance strategies and the guarantee that the core principles are shared throughout the Mesh nodes. This paper presents the motivation for the appearance of the Data Mesh paradigm, its features, and approaches for its implementation.- (undefined
Develop a generic Rules Engine to quality control a CV database
This bachelor’s thesis presents a software solution to enhance Bouvet’s quality control process
for employee CVs. By implementing a generic rule engine with extended functionalities, we
identified that 90% of the CVs at Bouvet did not meet the company’s business standards.
Using Scrum with Extreme Programming as our project management system, we developed a
scalable and maintainable pilot, employing Microservices, Event-Driven, and Command and
Query Responsibility Segregation architecture. Our pilot allows for future modifications using
create, read, update and delete operations. The software solution presented in this thesis can
be extended to a production-ready state by implementing an Role-based access control and
an API-Gateway. When the event bus project by another group at Bouvet is completed, our
implementation will be able to notify employees about their CVs’ status, further improving
the quality control process. Overall, our results demonstrate the our software solution and
project management system in enhancing the quality control of employee CVs at Bouvet.This bachelor’s thesis presents a software solution to enhance Bouvet’s quality control process
for employee CVs. By implementing a generic rule engine with extended functionalities, we
identified that 90% of the CVs at Bouvet did not meet the company’s business standards.
Using Scrum with Extreme Programming as our project management system, we developed a
scalable and maintainable pilot, employing Microservices, Event-Driven, and Command and
Query Responsibility Segregation architecture. Our pilot allows for future modifications using
create, read, update and delete operations. The software solution presented in this thesis can
be extended to a production-ready state by implementing an Role-based access control and
an API-Gateway. When the event bus project by another group at Bouvet is completed, our
implementation will be able to notify employees about their CVs’ status, further improving
the quality control process. Overall, our results demonstrate the our software solution and
project management system in enhancing the quality control of employee CVs at Bouvet
Scalability Benchmarking of Cloud-Native Applications Applied to Event-Driven Microservices
Cloud-native applications constitute a recent trend for designing large-scale software systems. This thesis introduces the Theodolite benchmarking method, allowing researchers and practitioners to conduct empirical scalability evaluations of cloud-native applications, their frameworks, configurations, and deployments. The benchmarking method is applied to event-driven microservices, a specific type of cloud-native applications that employ distributed stream processing frameworks to scale with massive data volumes. Extensive experimental evaluations benchmark and compare the scalability of various stream processing frameworks under different configurations and deployments, including different public and private cloud environments. These experiments show that the presented benchmarking method provides statistically sound results in an adequate amount of time. In addition, three case studies demonstrate that the Theodolite benchmarking method can be applied to a wide range of applications beyond stream processing
The Development of a Service Oriented Architecture for Digital Services on Maritime Vessels.
Mechanical and Mechatronic Engineerin
Develop a generic Rules Engine to quality control a CV database
This bachelor’s thesis presents a software solution to enhance Bouvet’s quality control process
for employee CVs. By implementing a generic rule engine with extended functionalities, we
identified that 90% of the CVs at Bouvet did not meet the company’s business standards.
Using Scrum with Extreme Programming as our project management system, we developed a
scalable and maintainable pilot, employing Microservices, Event-Driven, and Command and
Query Responsibility Segregation architecture. Our pilot allows for future modifications using
create, read, update and delete operations. The software solution presented in this thesis can
be extended to a production-ready state by implementing an Role-based access control and
an API-Gateway. When the event bus project by another group at Bouvet is completed, our
implementation will be able to notify employees about their CVs’ status, further improving
the quality control process. Overall, our results demonstrate the our software solution and
project management system in enhancing the quality control of employee CVs at Bouvet.This bachelor’s thesis presents a software solution to enhance Bouvet’s quality control process
for employee CVs. By implementing a generic rule engine with extended functionalities, we
identified that 90% of the CVs at Bouvet did not meet the company’s business standards.
Using Scrum with Extreme Programming as our project management system, we developed a
scalable and maintainable pilot, employing Microservices, Event-Driven, and Command and
Query Responsibility Segregation architecture. Our pilot allows for future modifications using
create, read, update and delete operations. The software solution presented in this thesis can
be extended to a production-ready state by implementing an Role-based access control and
an API-Gateway. When the event bus project by another group at Bouvet is completed, our
implementation will be able to notify employees about their CVs’ status, further improving
the quality control process. Overall, our results demonstrate the our software solution and
project management system in enhancing the quality control of employee CVs at Bouvet
Development of an e-portfolio social network using emerging web technologies
Dissertação de mestrado em Informatics EngineeringDigital portfolios (also known as e-Portfolios) can be described as digital collections of artifacts, being both a
product (a digital collection of artifacts) and a process (reflecting on those artifacts and what they represent). It
is an extension of the traditional Curriculum Vitae, which tells the educational and professional milestones of
someone, while the portfolio proves and qualifies them (e.g.: annually thousands of students finish a Master
degree on Informatics, but only one has built Vue, Twitter or Facebook – the Portfolio goes beyond the CV
milestones by specifying the person’s output throughout life and distinguishing them). e-Portfolios augment this
by introducing new digital representations and workflows, exposed to a community, being both a product and
a process. This approach can be useful for individual self-reflection, education or even job markets, where
companies seek talented individuals, because it expands the traditional CV concept and empowers individual
merit. There have been many studies, theories, and methodologies related with e-Portfolios, but transpositions
to web applications have been unsuccessful, untuitive and too complex (in opposition to the CV format, which
had success in various applications, for example LinkedIn).
This project aims to study new approaches and develop an exploratory web/mobile application of this method ology, by exploring the potential of social networks to promote them, augmented by emergent web technologies.
Its main output is the prototype of a new product (a social network of e-Portfolio) and its design decisions, with
new theoretical approaches applied to web development. By the end of this project, we will have idealized a web
infrastructure for interacting with networks of users, their skills, and communities seeking them.
The approach to the development of this platform will be to integrate emerging technologies like WebAssembly
and Rust in its development cycle and document our findings. At the end of this project, in addition to the
prototype of a new product, we hope to have contributed to the State of the Art of Web Engineering and to be
able to answer questions regarding new emerging web development ecosystems.Os portfólios digitais (também conhecidos como e-Portfolios) podem ser descritos como coleções digitais de
artefatos, sendo tanto um produto (uma coleção digital de artefatos) quanto um processo (refletindo sobre esses
artefatos e o que eles representam). É uma extensão do tradicional Curriculum Vitae, onde o primeiro conta os
marcos educacionais e profissionais de alguém, enquanto que o segundo, o Portfólio, comprova-os e qualifica-os
(e.g.: anualmente milhares de alunos concluem graduações em Informática, no entanto apenas um consebeu
o Vue, o Twitter ou o Facebook - o Portfólio vai além dos indicadores quantitativos do CV, especificando e
qualificando a produção da pessoa ao longo da vida e distinguindo-a). Os e-Portfolios expandem este conceito
com a introdução de novas representações digitais e fluxos de trabalho, expostos a uma comunidade, sendo
tanto um produto como um processo. Esta abordagem pode ser útil para a autorreflexão individual, educação ou
mesmo mercados de trabalho, onde as empresas procuram indivÃduos talentosos, porque expande o conceito
tradicional de CV e potencializa o mérito individual. Existem muitos estudos, teorias e metodologias relacionadas
com os e-Portfolios, mas as transposições para aplicações web têm sido mal sucedidas, pouco intuitivas e muito
complexas (em oposição ao formato CV, que tem tido sucesso em várias aplicações, por exemplo no LinkedIn).
Este projeto visa estudar novas abordagens neste domÃnio e desenvolver uma aplicação exploratória web/mobile que melhor exprima os e-Portfolios, explorando o potencial das redes sociais para os promover em conjunto
com tecnologias web emergentes. As principais produções esperadadas deste trabalho são um protótipo de
um novo produto (uma rede social de e-Portfolio) e documentar novas abordagens teóricas aplicadas ao desenvolvimento web. No final deste projeto, teremos idealizado uma infraestrutura web para interagir com redes de
utilizadores, as suas competências e comunidades que os procurem.
A abordagem ao desenvolvimento desta plataforma será integrar tecnologias emergentes como WebAssembly e Rust no seu ciclo de desenvolvimento e documentar as nossas descobertas e decisões. No final deste
projeto, para além do protótipo de uma plataforma, esperamos ter contribuido para o Estado da Arte da Engenharia Web e responder a questões sobre novos ecossistemas emergentes de desenvolvimento web
RADON: Rational decomposition and orchestration for serverless computing
Emerging serverless computing technologies, such as function as a service (FaaS), enable developers to virtualize the internal logic of an application, simplifying the management of cloud-native services and allowing cost savings through billing and scaling at the level of individual functions. Serverless computing is therefore rapidly shifting the attention of software vendors to the challenge of developing cloud applications deployable on FaaS platforms. In this vision paper, we present the research agenda of the RADON project (http://radon-h2020.eu), which aims to develop a model-driven DevOps framework for creating and managing applications based on serverless computing. RADON applications will consist of fine-grained and independent microservices that can efficiently and optimally exploit FaaS and container technologies. Our methodology strives to tackle complexity in designing such applications, including the solution of optimal decomposition, the reuse of serverless functions as well as the abstraction and actuation of event processing chains, while avoiding cloud vendor lock-in through models
- …