Quantcast
Channel: Azure Blog Ninja – Fabricio Catae
Viewing all articles
Browse latest Browse all 98

Criando a Arquitetura do ARDA

$
0
0

ARDA foi nosso projeto interno de 2016. Gastei inúmeras horas discutindo a arquitetura e as tecnologias envolvidas, mas o aprendizado aconteceu somente quando mergulhei na codificação.

O código-fonte está aqui: https://github.com/dxbrazIl/arda

Antes de começar a analisar o código, é importante dar um pouco mais de contexto. Afinal, eu nem disse para que serve o Arda!

Objetivo

ARDA é uma ferramenta de gestão do time técnico com o objetivo de acompanhar a distribuição de tarefas entre os colaboradores.

Simplificando o produto, queríamos algo semelhante ao Trello e ao VSTS – começamos com a ideia de um Kanban. Era importante criar um Dashboard (Reports) com todas as métricas do nosso ano fiscal, então adicionamos as classificações de Categoria, Complexidade da tarefa, Métricas do scorecard e Fiscal Year. Por fim, queríamos ter segurança, então adicionamos o conceito de usuários e permissões.

Arda-Architecture

Você deve pensar que é bem provável que essa ferramenta já exista no mercado ou que a própria Microsoft tenha uma também. Entretanto, nós somos técnicos. Nosso verdadeiro objetivo era aprender a fazer uma arquitetura baseada em Microservices e, portanto, seguimos em frente com nosso projeto.

Arquitetura baseada em Microserviços

Imagino que muitos projetos nascem exatamente da forma como fizemos:

  • Existe uma necessidade de negócio: gestão de tarefa em um time técnico
  • Há um viés por uma tecnologia: usar microserviços custe o que custar

Foi exatatamente isso que aconteceu no nosso time, resultando em diferentes visões de implementação.

Segundo algumas definições, microserviços são pequenos (micro) e autônomos. Por outro lado, a manutenção de serviços independentes gera complexidade desnecessária – veja o exemplo de tornar “Fiscal Year” como microserviço. Por que? Assim, seguiu nossa discussão:

  • Fabricio Catae (eu) queria uma arquiteutra composta por 1 microserviço (Arda Core!!!)
  • Fabricio Sanchez queria uma arquitetura composta por 10 microserviços (reports, kanban, workloads, backlogs, …)

Chamo isso de Problema do Fabricio^2. O tempo passa e nenhuma conclusão é feita para começar o projeto. Nem lembro o que as outras pessoas opinaram porque estava obcecado em MINHA arquitetura com 1 microserviço. Tenho certeza que o Sanchez estava concentrado somente em defender a ideia DELE. Enfim, a discussão era infinita e sem objetivo.

Solução do Problema do Fabricio^2

A solução para o impasse é fácil – basta adotar a estratégia de FAIL FAST: “Falhe. Mas falhe logo”.

No nosso caso, calculamos a média aritmética e chegamos a conclusão (muito empírico não?) de que precisávamos de 5~6 microserviços para resolver nosso problema. Fim de discussão sobre quem estava certo ou errado.

Logo que criamos os projetos no Visual Studio, começamos a nos dar conta de que seriam muitos e retiramos alguns deles. A discussão se tornou técnica.

arda-solution

No final, nossa arquitetura ficou da seguinte forma:

arda-schema

Isso significa que chegamos a um consenso e adotamos 4 microserviços. Isso resolveu o problema do Fabricio^2.

 

Conclusão

Cuidado com as discussões infinitas. Já cansei de ver Arquitetos de Solução defendendo a arquitetura ideal da aplicação com todo o racional baseado no Visio ou Powerpoint, mas sem sequer colocar a mão na massa e mostrar algo concreto. Infelizmente não acredito em nada disso. Uma boa arquitetura requer planejamento e parte desse plano precisa de uma prova de conceito.

Repetindo a frase com que comecei: gastei inúmeras horas discutindo a arquitetura e as tecnologias envolvidas, mas o aprendizado aconteceu somente quando mergulhei na codificação.

Logo, "menos PPT, mais código".

 

Referência

Vale a pena visitar os artigos do Fabricio Sanchez, que explica o projeto Arda e as considerações iniciais em detalhe. Essa é a versão bonita da nossa história de arquitetura:

http://fabriciosanchez.azurewebsites.net/3/arda-primeiros-passos-com-microservicos/

Recomendo que você faça uma leitura rápida para se familiarizar sobre o projeto. Nos próximos posts começaremos a detalhar o código e o banco de dados.

 

 


Viewing all articles
Browse latest Browse all 98

Trending Articles


Re:Mutton Pies (lleechef)


Sapos para colorear


Break up Quotes Tagalog Love Quote – Broken Hearted Quotes Tagalog


Patama Quotes : Tagalog Inspirational Quotes


Pamatay na Banat and Mga Patama Love Quotes


5 Tagalog Relationship Rules


INUMAN QUOTES


Vimeo 10.7.0 by Vimeo.com, Inc.


Vimeo 10.7.1 by Vimeo.com, Inc.


Girasoles para colorear


Tagalog Quotes About Crush – Tagalog Love Quotes


OFW quotes : Pinoy Tagalog Quotes


Long Distance Relationship Tagalog Love Quotes


Tagalog Quotes To Move on and More Love Love Love Quotes


BARKADA TAGALOG QUOTES


Best Crush Tagalog Quotes And Sayings 2017


FORECLOSURE OF REAL ESTATE MORTGAGE



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>