Gerenciando a integração entre sistemas em plataformas digitais

Um software especialista, que funciona isolado no mundo, costuma ser importante apenas em períodos curtos e eventuais. Nos ensinamentos de Gregor Hohpe e Bobby Woolf, aplicativos interessantes raramente operam isolados. Então a Integração entre sistemas, principalmente quando lidamos com plataformas digitais, certamente irão acontecer, seja de forma explícita, com esforço do time de desenvolvimento ou implícitas, acontecendo à revelia. 

Garantir a qualidade “interna” do nosso software não é suficiente, pois pouco importará se suas integrações com outros softwares apresentarem falhas. Falhas nas integrações entre softwares, colocam em risco os objetivos de negócio, restrições e atributos de qualidade de um software. Quanto antes desenvolvermos familiaridade com as integrações necessárias, maiores são as chances de sucesso do software. 

Seguem aqui algumas dicas para iniciar essa jornada:

Explicitando as relações de um software

Explicitar as integrações que precisam ser suportadas por um software é uma das práticas mais fundamentais da arquitetura de software. Um bom arquiteto deve conduzir esse processo orquestrando um diálogo entre negócio e tecnologia. Embora pareça uma atividade muito simples, sua execução normalmente tem se revelado desafiadora. Muitas organizações têm dificuldade em relacionar quem são os sistemas “acionadores”e “acionados” dentro das plataformas.

Criar um modelo, utilizando uma  ADL (Architectural Description Language) com notação mais informal, facilita a comunicação entre as áreas “não ténicas”. A notação visual C4Model é uma ótima escolha para começar! O primeiro nível do C4 elabora uma visão de contextos da solução proposta, explicitando quem são as “pessoas” ou outros artefatos que estão conectados com o software sob análise. Ideal para facilitar a comunicação com as equipes de negócio.

Ao final, o modelo deve auxiliar a deixar mais claro os objetivos de negócio, restrições e atributos de qualidade sob a perspectiva das integrações necessárias. Cuidado, modelos com muito nível de detalhe podem gerar ruído no propósito de explicitar as integrações entre sistemas.

Aspectos arquiteturais para tomada de decisão

Nem toda integração entre sistemas nasce com a “supervisão” do time dono do software em questão. Integrações que nascem de forma orgânica, muitas vezes como iniciativas shadow IT, se tornam um problema para o futuro da solução. Integrações sem supervisão, muitas vezes, ficam desalinhadas com atributos de qualidade por não considerar aspectos arquiteturais.

Considerar a forma de comunicação, necessidade de consistência e coordenação no planejamento das integrações, impactam diretamente em atributos de qualidade e até mesmo objetivos de negócio. Por exemplo, decisões arquiteturais sobre a forma de comunicação entre sistemas, impactam atributos de qualidade como segurança, resiliência, escalabilidade e desempenho. Já, decisões sobre consistência (eventual ou atômica), podem impactar objetivos de negócio, considerando que um negócio exija atomicidade.

Cabe ao arquiteto garantir que, para cada integração, decisões sobre os aspectos arquiteturais da integração sejam tomadas e registradas. 

Não subestime os desafios comuns em integrações

Integrações vão apresentar falhas. É questão de quando e não de se. Não raro, softwares apresentam instabilidade por falhas em suas integrações. Por exemplo, um sistema de venda de ingressos, que apresenta instabilidade por falhas na integração com sistemas de cobranças, ou em acessar inventário de lugares.

Desconsiderar alguns desafios comuns em integração entre sistemas é receita para o fracasso. Ao planejar as integrações considere: 

  1. Rede não é confiável e é lenta; 
  2. Toda aplicação é diferente (e única) e;
  3. Mudança é inevitável. 

Estratégias distintas devem ser planejadas para mitigar estes desafios. Por exemplo, falhas de rede podem ser mitigadas com chamadas idempotentes, handshakes, políticas de retentivas e circuit-breakers. Registrar as estratégias a serem adotadas em ADRs (Architectural Decision Records) cria alinhamento de propósito, aumenta a autonomia de atuação do time e as chances de sucesso do software.

Integração entre sistemas: Por onde devo começar?

Utilize o modelo C4 para representar as integrações e familiarizar todos os envolvidos. Considere com cuidado os aspectos arquiteturais e o impacto na estratégia (objetivos de negócio, restrições e atributos de qualidade) para uma tomada de decisão mais assertiva. Assuma que integrações irão falhar, sendo apenas uma questão de tempo e crie planos para mitigar os impactos destas falhas.

Está precisando de ajuda para avançar na integração de sistemas? A EximiaCo oferece a alocação de um Arquiteto de Software em sua empresa para orientar seu time no uso das melhores práticas de arquitetura para projetar a evolução consistente de suas aplicações. Conheça nossa solução de Software Architect as a Service que atua na modernização de sistemas garantindo a qualidade de entrega e maximizando resultados.

Compartilhe este insight:

Comentários

Participe deixando seu comentário sobre este artigo a seguir:

Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments

AUTOR

Gabriel Kohlrausch
Arquiteto de software com experiência executiva e especialista no desenvolvimento de aplicações corporativas complexas.

SOLUÇÕES EXIMIACO

Arquitetura de Software

ESTRATÉGIA & EXECUÇÃO EM TI

Simplificamos, potencializamos 
aceleramos resultados usando a tecnologia do jeito certo.

Software Architect as a Service

Modernização de sistemas garantindo a qualidade de entrega e maximizando resultados

A EximiaCo oferece a alocação de um Arquiteto de Software em sua empresa para orientar seu time no uso das melhores práticas de arquitetura para projetar a evolução consistente de suas aplicações.

INSIGHTS EXIMIACO

Confira outros insights de nossos consultores relacionados a esta solução de negócio:

23/06/2022
Bruno Joaquim
Desenvolvedor .NET com experiência em Startups e grandes empresas
23/06
2022
31/12/2021
Bruno Joaquim
Desenvolvedor .NET com experiência em Startups e grandes empresas
31/12
2021
30/09/2021
Gabriel Kohlrausch
Arquiteto de Software com experiência executiva em Tecnologia
30/09
2021

NOVOS HORIZONTES PARA O SEU NEGÓCIO

Nosso time está preparado para superar junto com você grandes desafios tecnológicos.

Agende um bate papo e descubra de que forma podemos ajudar você a gerar ainda mais resultado usando a tecnologia do jeito certo.

NOVOS HORIZONTES PARA O SEU NEGÓCIO

Nosso time está preparado para superar junto com você grandes desafios tecnológicos.

Agende um bate papo e descubra de que forma podemos ajudar você a gerar ainda mais resultado usando a tecnologia do jeito certo.

0
Queremos saber a sua opinião, deixe seu comentáriox
()
x

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

O seu insight foi excluído com sucesso!

O seu insight foi excluído e não está mais disponível.

O seu insight foi salvo com sucesso!

Ele está na fila de espera, aguardando ser revisado para ter sua publicação programada.