Byron

an Event-Driven Microservices Framework

Trabalho de Conclusão de Curso

Bacharelado em Ciência da Computação

Instituto de Matemática e Estatística

Universidade de São Paulo

2019

Prof. Dr. Alfredo Goldman - IME-USP

Leonardo Lana Violin Oliveira

Autores:

B. Renato Cordeiro - IME-USP

Prof. Dr. Eduardo Guerra - INPE

Orientadores:

João Francisco Lino Daniel

introdução

Byron - an Event-Driven Microservices Framework

essenciais para sistemas online:

  • disponibilidade
  • confiabilidade

sistemas mais complexos

  • maiores chances de falhas
  • acoplamento entre partes

questões de pesquisa

Byron - an Event-Driven Microservices Framework

Q1 - É possível propor uma arquitetura que entregue consistência de dados a um componente de sistema, mesmo que seja consistência eventual?

Q2 - Assumindo a arquitetura proposta e considerando mais de um componente, ela sustenta a consistência eventual entre todos os componentes?

Q3 - A arquitetura proposta fornece desacoplamento entre as partes, tal que em caso de falha de uma, as demais não falhem também?

proposta

Byron - an Event-Driven Microservices Framework

Criar o Byron, um framework

reativo

lida com o problema de demanda, regulando os tempos de resposta e a comunicação interna

nativo à nuvem

construído pensando em infraestrutura automatizada e gerida externamente

fast-data

lida com dados como fluxos infinitos tratando assim que chegam à aplicação

contexto

Byron - an Event-Driven Microservices Framework

the system

componente

Byron - an Event-Driven Microservices Framework

estudo de caso

Byron - an Event-Driven Microservices Framework

Estudo de caso

consistência interna dos dados de um único componente

consistência dos dados de múltiplos componentes

desacoplamento de vários componentes com um falhando

Perses, sistema de gerenciamento de ICs em escolas

três cenários

estudo de caso

Byron - an Event-Driven Microservices Framework

consistência interna dos dados de um único componente

consistência dos dados de múltiplos componentes

desacoplamento de vários componentes com um falhando

Q1 - É possível propor uma arquitetura que entregue consistência de dados a um componente de sistema, mesmo que seja consistência eventual?

Q2 - Assumindo a arquitetura proposta e considerando mais de um componente, ela sustenta a consistência eventual entre todos os componentes?

Q3 - A arquitetura proposta fornece desacoplamento entre as partes, tal que em caso de falha de uma, as demais não falhem também?

conclusão

Byron - an Event-Driven Microservices Framework

  • Análises positivas¹
  • Como prova de conceito, Byron funciona

consistência interna dos dados de um único componente

consistência dos dados de múltiplos componentes

desacoplamento de vários componentes com um falhando

Os cenários

linha do tempo

Byron - an Event-Driven Microservices Framework

proposta

desenvolvimento da v1

teste com devs @ dev.camp()

TDD para desenvolvimento da v2

estudo de caso

monografia e documentos finais

abr

abr

jul

jul

jul

out

out

nov

nov

trabalhos futuros

Byron - an Event-Driven Microservices Framework

P1 - developer experience - Como as abstrações e o workflow do Byron beneficiam os times que o utilizam?

P2 - benchmarking - Como se comporta o gasto de tempo de troca de mensagens e, com isso, a consistência eventual de dados?

P3 - evolução técnica - Implementação de novas funcionalidades¹

Obrigado

repositório: gitlab.com/byron-framework/cli

documentação: byron.netlify.com

NPM: npmjs.com/package/@byronframework/cli

Byron

an Event-Driven Microservices Framework

Byron

By João Daniel

Byron

  • 1,066