Especialidade

Aplicações

A arquitetura de aplicações estrutura o desenho e o código de um software. Por meio dela a eficiência e a saúde do código aumentam, impactando positivamente o seu negócio.  Desenvolva aplicações que atendam às necessidades do mercado de forma rápida e eficiente.

Conheça todas as capacidades de Aplicações

Capacidade

Sistemas distribuídos (microsserviços)

A arquitetura de uma aplicação deve acompanhar os desejos de negócio e ser suficiente para acomodar a velocidade de mudança necessária. 

Dividir o sistema em múltiplos serviços traz muitos desafios. Porém, agrega o benefício de aumentar a autonomia dos times, influenciando no tempo de entrega considerando o desejo x entrega. É necessário cuidar muito bem dos perigos, que não são poucos, para que o benefício realmente se justifique. 

Pontos importantes sobre sistemas distribuídos (microsserviços):

  1. Cada serviço deve possuir o máximo de isolamento possível.

    Evite gerar acoplamento entre serviços que sejam custosos de manter. Acoplamento exagerado em uma base de código integrada é complicado. Este cenário em acoplamentos distribuídos eleva ainda mais o nível de dificuldade.
  2. Entenda o que é pertinente de existir dentro de cada serviço.

    O design estratégico do Domain Driven Design (DDD) pode ser muito inspirador para esta compreensão. Procure entender os principais contextos delimitados.
  3. Sistematização para delimitação de contextos de serviços.

    Evite que cada serviço novo nasça unicamente por conta do ponto de vista de uma determinada equipe.
  4. Mantenha uma comunicação eficiente.

    Aqui precisamos nos apoiar ainda mais firmemente no pilar de documentação e fazer com que a informação navegue pelas equipes de modo a manter o máximo de convergência com os princípios definidos para o produto.
  5. Gerencie o nível de liberdade na escolha de stacks para endereçar os problemas por serviço.

    Sugerimos ter um conjunto fechado de stacks que, de tempos em tempos, possa ser revisitado para entender se ainda atende o que é necessário.
  6. Tenha uma visão bem definida dos requisitos de performance, escalabilidade e de resiliência de cada integração entre os múltiplos serviços.
  7. Promova o debate para a tomada de decisão consciente a respeito da integração entre serviços.

    Além do protocolo, a definição entre síncrono e assíncrono carrega consigo muitos pontos, principalmente numa chamada assíncrona.
  8. Cuidado sobre como lidar com as transações.

    Transações num ambiente distribuído podem ser muito complicadas. Por isso, é importante tomar decisões relacionadas a este tópico que sejam bem embasadas. 
A StackSpot empodera o time de tecnologia com peças reutilizáveis como o Zup Studio: Cloud que garantem segurança, qualidade e eficiência.

Reduza a carga cognitiva do seu time

Este site utiliza cookies para proporcionar uma experiência de navegação melhor. Consulte nossa Política de Privacidade.