Comunidade
  • Termo

  • Categoria

  • Período

Arquitetura Contínua: Melhorando a Tomada de Decisão na Transformação

Postado em 01 de dez. de 2021 por Antonio Plais

Originalmente postado por Nick Reed*, no blog da BiZZdesign – Tradução autorizada

No panorama de negócios de hoje, a transformação efetiva é crítica para as empresas se manterem competitivas. Por definição, a transformação acontece o tempo todo. As empresas (ou alguma parte delas) possuem um estado atual que precisa mudar para melhor. Esta mudança – seja ela pequena ou grande – resulta em um estado futuro diferente. Com a adoção generalizada das práticas ágeis de trabalho e da entrega contínua DevOps, estas mudanças podem ser muito pequenas e muito frequentes.

Com as mudanças cada vez mais rápidas no mercado e o imperativo para as empresas se tornarem mais adaptativas, o estado futuro desejado também muda com maior frequência. Em outras palavras, assim que você inicia a viagem do estado atual A para o estado futuro desejado B, B já mudou para um estado futuro desejado C.

Além disso, A, B e C provavelmente nem são estados futuros para toda a empresa. Isso significa que existem vários estados futuros em diferentes níveis de detalhes e escopo, que estão evoluindo constantemente em paralelo. Existem também interdependências entre estes estados futuros.

A aumentar ainda mais a complexidade, a digitalização da empresa permite que dados operacionais e KPIs em tempo real informem a tomada de decisão arquitetural. Por exemplo, o número de incidentes em um serviço, a capacidade de uma API, e a vulnerabilidade de um componente de tecnologia podem todos contribuir para a tomada de decisão arquitetural.

Criando e gerenciando uma arquitetura dinâmica

Colocando tudo isso junto, não é difícil ver porque os métodos tradicionais de  arquitetura não são mais adequados. Os dias de “ferver o oceano” (modelar a empresa inteira na esperança de responder a todas as questões que possam surgir) já se foram há muito tempo. Modelar todos os estados atuais e futuros, bem como todos os roteiros, e manualmente mantê-los atualizados com todas as pequenas e frequentes mudanças é simplesmente inviável. Isso é especialmente verdadeiro quando você precisa manter uma comunidade heterogênea de partes interessadas informada sobre todos os pequenos detalhes em que elas possam estar interessadas de uma maneira oportuna.

O desafio para a arquitetura moderna é, desta forma, encontrar uma maneira de gerenciar uma arquitetura “dinâmica”, onde você pode acompanhar com confiança os estados atuais e futuros da arquitetura com todas as suas mudanças acontecendo em fluxos paralelos.

Uma abordagem leve para a arquitetura – geralmente descrita como “apenas suficiente, no tempo certo” – é essencial para minimizar o tempo para o valor e entregar um retorno frequente e iterativo para os investimentos na Arquitetura Corporativa.

Os frameworks de arquitetura tradicionalmente têm focado nos conjuntos de partes interessadas e nos pontos de vista que eles precisam em diferentes níveis de detalhes, cobrindo todos os domínios (tradicionais) da arquitetura. Com as abordagens leves mais modernas para a arquitetura, nós não queremos cobrir todos os domínios através da organização inteira (“ferver o oceano”), mas ao invés disso adotar uma abordagem mais adaptativa que habilite partes interessadas específicas a obter as visões específicas que eles precisam em tempo real. Estas organizações também precisam de uma solução de arquitetura que seja suficientemente flexível para acomodar novas partes interessadas e novas visões conforme necessário.

Felizmente, o mundo das mídias sociais tem lutado com desafios similares já algum tempo e desenvolveu algumas tecnologias bastante interessantes para lidar com isso.

Desagregando a arquitetura

O LinkedIn precisava lidar com uma enorme quantidade de atualizações vindas dos usuários (“escritas”) e uma enorme quantidade de usuários consumindo atualizações sobre as conexões e tópicos que eles seguem (“leitura”). O problema de manter o estado corrente de todos os dados que fossem válidos para todos forçou o LinkedIn a pensar diferente sobre como manter as coisas em sincronismo.

Eles desenvolveram duas inovações importantes que resolveram os seus problemas e habilitaram uma nova abordagem completamente nova para a arquitetura de sistemas:

  1.  Registrar todas as mudanças nos dados como um fluxo de “fatos” que não mudam com o tempo. Em outras palavras, todas as mudanças são registradas como um “fluxo imutável de eventos”. A grande vantagem desta abordagem é que ela preserva a história de todos os dados. Existe a noção distinta do tempo (uma entidade tem vários valores ao longo do tempo), em oposição a um banco de dados, onde geralmente você só tem o valor mais recente. Quando você precisa pesquisar os dados (ou, mais provável, um subconjunto particular dos dados), você deriva uma “visão” do conjunto de dados por meio do processamento de todas as mudanças que ocorreram até o momento atual (ou, de forma similar, derivar uma visão para um instantâneo histórico processando apenas as mudanças ocorridas até um certo momento no tempo). Nós chamamos isto de “visões materializadas” dos dados. Usualmente estas visões materializadas são persistentes e são facilmente mantidas em sincronismo, por meio da aplicação incremental de novos fatos que são escritos no fluxo.
  2. Usar o registro do fluxo de eventos como um amortecedor entre sistemas. Um produtor pode escrever dados sem saber quem irá consumir os dados. Isso poderia ser um consumidor, nenhum consumidor, ou vários consumidores. O produtor não sabe nada sobre estes sistemas, ele conhece apenas o registro do fluxo de eventos. Isso desacopla os sistemas tanto no tempo como no espaço. Se um sistema consumidor quebra, ou apresenta lentidão, isso não afeta o produtor.

Ao mudar o foco do estado atual dos dados para focar em todas as mudanças imutáveis no conjunto de dados, o próprio conceito de mudança se torna central para o sistema.

Você pode construir tantas visões quantas você deseje para tantos propósitos quanto você precise, usando qualquer tecnologia que melhor se encaixe no seu propósito, tais como bancos de dados orientados para documentos para pesquisa, um banco de dados gráfico para análise de redes, ou um bom e velho banco de dados relacional para relatórios e análises multidimensionais. Pense nisso como desagregando o banco de dados ou, em termos de arquitetura corporativa, desagregando a arquitetura.

É por isso que estamos adotando uma radicalmente nova abordagem para a arquitetura do gerenciamento da arquitetura.

O que isso significa para a plataforma da Bizzdesign

Na Bizzdesign nós construímos a nova geração do nosso produto em torno de um fluxo de eventos para permitir uma plataforma adaptativa, flexível e poderosa que pode se adaptar mais rápido que os sistemas tradicionais.

Esta abordagem, baseada em tecnologia moderna de ponta, permite que nós viremos o banco de dados pelo avesso, e mudemos a nossa taxa de inovação em novas funcionalidades por algumas ordens de magnitude. O conceito de fluxos de eventos tem aplicabilidade ampla, desde a integração com fontes de dados externas até a personalização de alimentadores de notícias. A mudança no paradigma passa de um modelo de solicitação-resposta para um modelo de subscrição-notificação. Isso representa uma mudança radical de pensamento, e modificou radicalmente a nossa abordagem de desenvolvimento de aplicativos.

Isso oferece vários benefícios para os nossos clientes, incluindo:

  • “Compatibilidade à frente” da nossa plataforma: nós podemos adicionar novas visões materializadas no futuro, usando qualquer subconjunto do fluxo de eventos. As visões materializadas que poderemos adicionar no futuro levarão todos os dados históricos em consideração.
  • Dados completos de trilha de auditoria que podem ser usados para múltiplos propósitos
  • Flexibilidade para usar novas tecnologias para novos casos de uso na medida em que eles emergem: nós já estamos usando uma gama de tecnologias de banco de dados para suportar diferentes casos de uso, tais como pesquisas, relatórios de inteligência de negócio, e nossas APIs, com muito mais a caminho.
  • Uma abordagem moderna e flexível para a integração: A Bizzdesign consume fluxos de eventos de fontes de dados externas e fornece fluxos de eventos para consumo por sistemas externos, permitindo flexibilidade em relação a como os dados são produzidos e consumidos através de todo o ecossistema.

É por isso que você continuará a ver novas funcionalidades sendo adicionadas à plataforma da Bizzdesign com uma quantidade e velocidades cada vez maiores. Fique ligado….

Referências:

https://www.confluent.io/blog/leveraging-power-database-unbundled/  

https://www.confluent.io/blog/turning-the-database-inside-out-with-apache-samza/  

https://www.confluent.io/blog/stream-data-platform-1/  

* Nick Reed é Diretor Estratégia da Bizzdesign, empresa líder em ferramentas para modelagem da arquitetura corporativa, representada no Brasil pela Centus Consultoria.

 

 

eBook
A Prática da Arquitetura Corporativa

Esta é uma versão eletrônica do livro A Prática da Arquitetura Corporativa, de Bas van Gils e Sven van Dijk, traduzido pela Centus Consultoria. Este livro não propõe um novo framework, teoria, ou abordagem para a Arquitetura Corporativa. Ao invés disto, os autores compartilham a experiência e as lições de vários projetos que conduziram ao […]

Solicite aqui sua cópia grátis
Voltar para a página inicial