Dissertação

{en_GB=Execution of Speculative Workflows in Microservice-Based Systems} {} EVALUATED

{pt=Nos cada vez mais populares sistemas empresariais baseados em microserviços, uma unica chamada ao sistema pode implicar a execução coordenada de dezenas de tarefas individuais. Tirando inspiração dos processadores em pipeline, este processo pode ser optimizado executando estas sequencias de tarefas (workflows) de forma especulativa. Algumas tarefas, ou sub-sequencias delas, podem ser executadas em paralelo se não tiverem dependencias de dados entre elas, apesar de poderem ter dependencias lógicas. Execução especulativa de workflows requer o desenvolvimento de uma infraestrutura apropriada que possibilite a coordenação entre microserviços, garantindo a consistencia do sistema. Lidar com os problemas associados a este tipo de execução, aumenta o esforço de implementação, obrigando a re-alocação de recursos de outras areas importantes ligadas à lógica do negócio. Esta dissertação propõe uma framework para ajudar a reduzir o esforço necessário para a execução especulativa de workflows em sistemas de microserviços. Ela executa estes workflows, oferecendo garantias de rollback atómico e recuperação de falhas de forma a assegurar a consistencia do sistema em situações criticas. Isto é conseguido através do uso de standards e tecnologias específicas que permitem lidar com os problemas que rodeiam execucões especulativas. É provado com sucesso que modelos especulativos representam uma optimização em relação aos originais. A framework proposta funciona como esperado, mantendo consistencia para diferentes cenarios, incluindo situações de rollback e conflitos de concorrencia de dados. Esta framework permite aos programadores focar-se nos objetivos de negocio do sistema. Oferece uma plataforma para execução de workflows especulativos, promovendo simultaneamente princípios fundamentais de sistemas de microserviços., en=In today's increasingly popular microservice-based enterprise solutions, a single request to a system can implicate the coordinated execution of dozens of individual, fine-grained tasks. Taking inspiration from pipelined processors, this process could be optimized by executing task sequences, or workflows, speculatively. Some tasks, or entire sub-sequences of them, are executed in parallel if they have no data dependencies, even though they might have logical ones. Speculative workflow execution requires an appropriate infrastructure be developed to coordinate between different microservices while maintaining the system in a consistent state. Dealing with the various issues arising from speculative executions increases implementation efforts, diverting resources from the planning of the actual business logic. This dissertation proposes a framework to help reduce the effort required for running speculative workflows in microservice based systems. It executes these workflows, providing atomic rollback mechanisms and crash recovery guarantees in order to ensure the system's state remains consistent in critical scenarios. It achieves this by using state of the art modules, standards and technologies to handle the problems surrounding speculative executions. It is successfully proven that speculative models are an optimization of their sequential counterparts. The proposed framework is shown to meet its operational requirements, maintaining consistency for different scenarios, including task rollback situations and data concurrency conflicts. Using this framework allows developers to focus their efforts on the business rules and end goals of the system. It provides a platform for transparently running speculative workflows while promoting core microservice tenants, such as loose-coupling between services and component reusability.}
{pt=Fluxos Especulativos, Microserviços, Saga, Reversão de Transações, en=Speculative Workflows, Microservices, Saga, Rollback}

novembro 21, 2019, 9:0

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

João Nuno De Oliveira e Silva

Departamento de Engenharia Electrotécnica e de Computadores (DEEC)

Professor Auxiliar