No entanto, implementar esses princípios de forma consistente e com uma abordagem escalável e sustentável é desafiador.
As abordagens tradicionais voltadas para a tecnologia para abordar esses princípios incluíam Enterprise Service Bus (ESB) e Message-Oriented Middleware (MOM). Embora essas soluções ofereçam um bom conjunto de recursos, o principal desafio foi a arquitetura monolítica e o forte acoplamento tecnológico entre a lógica de negócios e a plataforma.
À medida que o cloud, containers e os orquestradores de containers (Kubernetes) se tornaram populares, surgiram novas soluções para abordar esses princípios. Por exemplo, o Knative para entrega, service meshes para rede e Camel-K para ligação e integração.
Com essa abordagem, a lógica de negócios (denominada "micrológica") forma o núcleo da aplicatção e podem ser criados poderosos componentes sidecar "mecha" disponíveis para utilizar.
Esse desacoplamento de componentes micrológicos e mecha, pode melhorar as operações do dia seguinte como correções e atualizações, e ajudar a manter a manutenção coesa ao longo prazo das unidades da lógica de negócios .
Criar boas aplicações distribuídas não é uma tarefa fácil: tais sistemas geralmente seguem os princípios de aplicações e microservices de 12 fatores. Precisam ser stateless, escalonáveis, configuráveis, liberados independentemente, distribuídos em containers, automatizáveis ​​e, às vezes, controlados por eventos e serverless. Uma vez criados, devem ser acessíveis e fáceis de atualizar a longo prazo. Encontrar um bom equilíbrio entre esses requisitos concorrentes com a tecnologia de hoje ainda é um empreendimento difícil.
Neste artigo, vou explorar como as plataformas distribuídas estão evoluindo para permitir esse equilíbrio e o mais importante, o que mais precisa acontecer na evolução dos sistemas distribuídos para facilitar a criação de arquiteturas distribuídas sustentáveis. Se você quiser me ver falando ao vivo sobre esse tópico, junte-se a mim na QCon London em março.