Event-Driven Architecture

Martin Fowler explica Event-Driven Architecture, suas consequências e 4 padrões comumente presentes quando se fala no assunto.

Anúncios

Quebrando um software monolito: Microsserviços vs. Sistemas Autocontidos

Texto de Olga Annenko, disponível em: http://www.elastic.io/breaking-down-monolith-microservices-and-self-contained-systems/ As publicações e discussões recentes de TI estão cheias de termos como "transformação digital", "TI bimodal", "desenvolvimento contínuo" e "agilidade". Não há necessidade de discutir que arquiteturas monolíticas e aplicações monolíticas devem se tornar coisas do passado, cedo ou tarde - de preferência, cedo, é claro. E de fato os departamentos de TI são encorajadas a se afastar dos monolitos por causa de inúmeras razões perceptíveis e compreensíveis: manutenção complicada, muitas dependências, dificuldades de teste e implantação (o monolito só pode ser implantado como um todo.) Os monolitos são como o Triângulo das Bermudas para qualquer iniciativa ágil de TI.

Esculpindo o monolito JavaEE em microsserviços: prefira verticais, não camadas

O texto original é de Christian Posta, e está disponível em: http://blog.christianposta.com/microservices/carving-the-java-ee-monolith-into-microservices-perfer-verticals-not-layers/ O monolito que explorarei nesses artigos será do tutorial Ticket Monster, que tem sido um exemplo canônico há muito tempo sobre como construir uma aplicação impressionante com JavaEE e as tecnologias RedHat. Usaremos o Ticket Monster porque é uma aplicação bem escrita situada entre o "não-trivial" e o "complexo demais para um exemplo". É perfeito para propósitos ilustrativos e podemos apontar algumas coisas dele concretamente e discutir prós e contras de algumas abordagens com código de verdade.

Uma Cartilha Rápida sobre Microsserviços

Microsserviços são um tipo de arquitetura de software onde grandes aplicações são feitas de unidades pequenas trabalhando juntos por meio de APIs que não são dependentes em uma linguagem específica. Cada serviço tem um escopo limitado, se concentra em uma tarefa específica e é altamente independente. Esse arranjo permite que os gerentes de TI e desenvolvedores construam sistemas de forma modular. No seu livro "Construindo Microsserviços", Sam Newman disse que microsserviços são componentes pequenos e focados, construídos para fazer uma coisa muito bem.

Microsserviços – Parte VI

Desenhe para falhar Uma consequência de usar serviços como componentes é que as aplicações devem ser desenhadas para tolerar falhas nos serviços. Qualquer chamada de serviço pode falhar devido a indisponibilidade do fornecedor, o cliente tem que lidar com isso o mais graciosamente possível. É uma desvantagem comparado com o desenho monolítico porque introduz uma complexidade adicional. A consequência é que os times de microsserviços constantemente refletem sobre como as falhas dos serviços afetam a experiência do usuário. O Exército Símio do Netflix induz falhas de serviços e até de datacenters durante o expediente para testar a resiliência e o monitoramento das aplicações.

Microsserviços – Parte V

Gerenciamento de Dados Descentralizado Decentralização do gerenciamento de dados se apresenta de inúmeras formas diferentes. No nível mais abstrato, significa que um modelo conceitual do mundo será diferente entre sistemas. Isso é um problema comum ao integrar uma grande empresa, a visão de vendas de um cliente será diferente da visão de suporte. Algumas coisas chamadas de "clientes" na visão de vendas podem nem aparecer na visão de suporte. As coisas que existem em comum podem ter atributos diferentes, ou pior, atributos em comum mas com semânticas diferentes.

Microsserviços – Parte IV

Endpoints Inteligentes e Vias Ignorantes Ao construir estruturas de comunicação entre os processos, vimos vários produtos e abordagens que enfatizam colocar uma quantidade significativa de inteligência no próprio mecanismo de comunicação. Um bom exemplo disso é o Barramento de Serviço Corporativo (Enterprise Service Bus - ESB), onde os ESBs incluem facilidades sofisticadas para roteamento de mensagem, coreografia, transformação e aplicação de regras de negócio.