BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Microservices orientados a eventos na conferência de arquitetura de software da O'Reilly em NY

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

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

Conteúdo educacional

BT