Gerenciando a integração entre sistemas em plataformas digitais

Gabriel Kohlrausch

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

Evolução e modernização de aplicações para suportar mudanças de escala.

Manual do Arquiteto de Software

Discutindo conceitos, técnicas, tecnologias, padrões e procedimentos para a boa prática de arquitetura de software.
Tech Trusted Advisor, Fundador e CEO da EximiaCo

NOVOS HORIZONTES PARA O SEU NEGÓCIO

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

Entre em contato e vamos juntos utilizar a tecnologia do jeito certo para gerar mais resultados.

Insights EximiaCo

Confira os conteúdos de negócios e tecnologia desenvolvidos pelos nossos consultores:

Segurança da Informação

Desafios de segurança da informação em fintechs: protegendo dados financeiros sensíveis

Especialista em Segurança da Informação
Engenharia de Software

O seu time de engenharia atua de forma colaborativa para atender os objetivos do negócio?

Arquiteto de Software com experiência executiva em Tecnologia
Infraestrutura e Nuvem

As principais operações da sua empresa já estão rodando na nuvem?

Engenheiro de nuvem, arquiteto de software e especialista em Containers e Devops

Acesse nossos canais

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

EximiaCo 2022 – Todos os direitos reservados

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

Gerenciando a integração entre sistemas em plataformas digitais

Para se candidatar nesta turma aberta, preencha o formulário a seguir:

Condição especial de pré-venda: R$ 14.000,00 - contratando a mentoria até até 31/01/2023 e R$ 15.000,00 - contratando a mentoria a partir de 01/02/2023, em até 12x com taxas.

Tenho interesse nessa capacitação

Para solicitar mais informações sobre essa capacitação para a sua empresa, preencha o formulário a seguir:

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.

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 nessa solução

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse neste serviço

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

× Precisa de ajuda?