Arquivos do Blog

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.

Marcado com: , ,
Publicado em Microsserviços

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.

Marcado com: , ,
Publicado em Microsserviços

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.

Marcado com: , , ,
Publicado em Microsserviços

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.

Marcado com: , , ,
Publicado em Microsserviços

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.

Marcado com: , , ,
Publicado em Microsserviços

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.

Marcado com: , , ,
Publicado em Microsserviços

Microsserviços – Parte III

Organizado em Torno de Capacidades de Negócio

Ao buscar a divisão de uma grande aplicação em partes, o gerenciamento se foca na camada de tecnologia, dividindo em equipes de interface com o usuário, equipes de lógica de negócio, e equipes de bancos de dados. Quando os times são separados seguindo essa linha, mesmo as mudanças mais simples podem se transformar em um projeto envolvendo vários equipes, que tomará tempo e que precisará de aprovação de orçamento. Um time esperto vai tentar otimizar e dar a volta, escolhendo a escolha menos pior – forçar a lógica na aplicação a que tiver acesso. Em outras palavras, a lógica se espalha por todo lugar. É um exemplo da Lei de Conway [5] em ação.

Marcado com: , , ,
Publicado em Microsserviços