BT

Microservices orientados a eventos na conferência de arquitetura de software da O'Reilly em NY

| por Mark Little Seguir 13 Seguidores , traduzido por Marcelo Costa Seguir 33 Seguidores em 12 jul 2018. Tempo estimado de leitura: 3 minutos |

Conforme relatado por Joab Jackson, na O'Reilly Software Architecture Conference, em Nova York, este ano havia um foco especial sobre microservices orientados a eventos. Como discutido por Joab, Chris Richardson proferiu um keynote sobre "Eventos no lado de fora, no lado de dentro e como core" e neste keynote explicou que:

Mesmo os sistemas corporativos atuais são orientados a eventos. Uma companhia aérea atrasa um voo, uma farmácia preenche uma receita. Uma entrega está agendada. Alguns eventos são baseados em tempo: por exemplo, uma fatura que não foi paga na data. Os eventos permitem que aplicações separadas colaborem entre si: qualquer alteração de estado dentro de uma aplicação pode, na verdade, ser um evento que pode ser consumido por outra aplicação. Um serviço de monitoramento pode analisar um fluxo de eventos emitidos por outra aplicação, verificando para garantir que o padrão de eventos esteja normal. O design orientado a eventos é uma maneira de estender aplicações sem modificá-las, explicou Richardson.

No passado, já cobrimos microservices orientados a eventos, por exemplo, quando Marius Bogoevici falou sobre streaming em nuvem nativa e microservices orientados a eventos, ou quando Satyajit Ranjeev fez uma retrospectiva sobre como colocá-los em prática. O acordo geral parece ser que as arquiteturas orientadas a eventos representam o próximo passo certo para microservices, mas introduzem outro nível de complexidade. Conforme Joab relata:

Inicialmente, a mudança para uma arquitetura baseada em eventos parece fácil, mas requer uma certa mudança na mentalidade da arquitetura, observou Cornelia Davis, diretora sênior de tecnologia da Pivotal e autora do livro Cloud Native, em sua palestra de abertura. Microservices, por sua própria natureza, são uma forma extrema de computação distribuída, disse Davis.

Christian Posta escreveu sobre alguns dos prós e contras há alguns anos atrás e mais recentemente voltou a falar sobre este assunto durante uma de nossas sessões de painéis virtuais:

Eu acredito que à medida que você escala sistemas com microservices, eles tendem a exibir características que vemos em outros Sistemas Adaptativos Complexos (mercados de ações, ACS, comunidades), a saber: agentes autônomos, tomada de decisão independente, aprendizagem/adaptação por feedback, interação não-linear, etc. Em sistemas como esses, eventos, passagem de mensagens e tempo são todos ativadores críticos que tendem a se parecer com o modelo "assíncrono". IMHO fazer o tempo o ponto focal entre esses sistemas (bem como o fato de nossos canais de comunicação não serem totalmente confiáveis) nos forçam a lidar com a realidade a frente e fazer um modelo que sabemos que é capaz de escalar em outras aplicações.

Davis ainda abordou o tema de sistemas distribuídos assíncronos sugerindo que tempos de espera e novas tentativas, usados com êxito em sistemas tradicionais baseados em RPC, podem não ser a abstração correta:

Em um ambiente de sistemas distribuídos inerentemente não confiáveis, a abstração de promessas pode ser mais adequada do que tentativas. Vários componentes geram seus próprios eventos, que preenchem uma visão materializada do servidor Web por meio de um fluxo serializado de eventos ou alterações. "Você pode pensar em promessas como manipuladores de eventos", disse Davis. Um manipulador de eventos completará uma etapa "se e quando eu precisar", disse ela.

Em um leve aparte, mas aqueles que estão interessados em entender alguns dos problemas inerentes aos sistemas assíncronos devem ler o artigo de Fischer, Lynch e Paterson sobre "Impossibilidade do consenso distribuído com um processo defeituoso".

Claramente, o foco atual em torno de funções como serviço também tem uma sobreposição aqui. Como já relatamos no passado, essas arquiteturas são inerentemente orientadas a eventos e também estão sendo vistas como uma evolução natural para a construção de microservices. Na verdade, Joab relata que Davis tinha isto a dizer sobre o assunto:

"Eventos podem desencadear funções, e essa é uma maneira muito natural de executar funções como serviço".

Para finalizar, parece que estamos nos movendo para uma era em que os microservices orientados a eventos estão se tornando a abordagem arquitetural a ser usada primeiro e devemos esperar mais conferências e workshops sobre este assunto, além de abordar as melhores práticas, os melhores frameworks e stacks e exemplos de sucesso e fracassos.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT