Manifesto Reativo para Sistemas Reativos

Os requisitos não funcionais mudaram muito nos últimos anos. Até pouco tempo  atrás, aplicações rodavam em dezenas de servidores, o tempo de resposta era na casa de alguns segundos, algumas horas de tolerância offline e dados na casa dos gigabytes. Atualmente, em compasso com a evolução tecnológica, esses mesmos requisitos não funcionais desenvolveram-se para aplicações…

Microservices

A definição mais simplória de microservices seria a de uma abordagem para desenvolvimento de aplicações compostas por uma série de pequenos serviços. Ao pensar rapidamente sobre essa descrição, a arquitetura SOA ressurge na mente como uma arquitetura intimamente ligada a abordagem de microservices. De fato, microservices é uma evolução do pensamento orientado a serviço tradicional…

Modelagem ágil com AMDD

A revista Engenharia de Software magazine deste mês traz um artigo meu sobre agilidade na modelagem arquitetural. A AMDD pode desempenhar um papel fundamental para melhorar o cenário atual de produtividade no desenvolvimento e na manutenção do software. Esse artigo é útil, uma vez que a AMDD possibilita, durante a implementação do software, além de…

Como executar comandos no Linux a partir do Java

Há muito tempo o sistema operacional Linux se tornou o principal SO rodando em servidores corporativos. Considerando a importância dessa plataforma e o número elevado de soluções rodando sob o Linux, é comum aparecerem diversas necessidades em termos de integração para execução de comandos no Linux a partir de alguma ferramenta de implementação. Recentemente fui…

Conformação arquitetural: sincronizando o código e a arquitetura do projeto

A edição de abril de 2015 da Revista Java Magazine trás um artigo meu sobre Conformação Arquitetural. Ao longo do tempo a arquitetura planejada para um software tende a se distanciar do que foi inicialmente projetado. A representação do projeto por meio de diagramas UML em documentos de arquitetura de software perdem total conexão com o código fonte…

Arquitetura de software com tempo de expiração e modularidade

Provavelmente você já deve ter ouvido muitas vezes que a solução para algum sistema, cuja manutenção tenha se tornado um grande problema, é jogar toda a base de código no lixo e reescrever tudo de novo, repensando e reformulando sua arquitetura. Martin Fowler escreveu recentemente sobre isso em seu blog, num post intitulado “Sacrificial Architecture”…

Replicação de sessão e balanceamento de carga em ambientes distribuídos (Tomcat, NGinx e Java)

A edição de outubro de 2014 da Revista easy Java Magazine trás um artigo meu sobre cluster e replicação de sessão com Tomcat, NGinx e Java, abordando diversos conceitos relacionados à computação distribuída e oferecendo uma introdução aos principais tópicos da disciplina como base para a aplicação prática de um cluster, implementado com o servidor HTTP NGinx como…

Technology Radar: tendências em desenvolvimento de software

A Thought Works publica ocasionalmente o relatório Technology Radar, um relatório contendo um posicionamento de tecnologias e práticas de desenvolvimento de software, comentários de práticas que estão emergindo e sugestões do que adotar, experimentar e evitar. Todos os relatórios são desenvolvidos com a contribuição de diversos especialistas, inclusive Martin Fowler, e discutem técnicas, plataformas, linguagens e…