Mantenha a simplicidade

Concluído
Evite a engenharia excessiva do projeto de arquitetura, do código do aplicativo e das operações.

Muitas vezes, é o que você remove, em vez do que você adiciona, que leva às soluções mais confiáveis. A simplicidade reduz a área de superfície para controlo, minimizando ineficiências e potenciais erros de configuração ou interações inesperadas. Por outro lado, a simplificação excessiva pode introduzir pontos únicos de falha. Manter uma abordagem equilibrada.

Cenário de exemplo

A Contoso Travel está comprando e integrando uma pequena empresa iniciante com um popular aplicativo de viagens baseado na Web. A popularidade do aplicativo se deve ao seu modelo de negócios de negociação de descontos profundos com redes de hotéis e companhias aéreas, e ao uso das mídias sociais para fazer campanhas de marketing intensas e altamente direcionadas.

A versão existente do produto de inicialização foi desenvolvida em nodejs e está sendo executada em VMs hospedadas entre o data center local e a AWS.

Minimizar os componentes da carga de trabalho

Adicione componentes à sua arquitetura somente se eles ajudarem você a atingir os valores de negócios desejados. Mantenha o caminho crítico enxuto.

Projetar para requisitos de negócios pode levar a uma solução simples que é fácil de implementar e gerenciar. Evite ter muitos componentes críticos, porque cada um é um ponto significativo de falha.

O desafio da Contoso

  • Um dos componentes do aplicativo recém-adquirido facilita a coleta de feedback dos usuários diretamente no site depois que eles fizeram uma reserva. O recurso raramente é usado porque a maioria dos usuários simplesmente ignora ele. Há um forte mecanismo de feedback dos usuários que funciona através das contas de mídia social da empresa, que é muito usado para marketing da interação do usuário. Este mecanismo é usado significativamente com mais frequência do que a função de feedback do site.

Aplicação da abordagem e dos resultados

  • Como parte da versão inicial do aplicativo com a marca Contoso Travel, a equipe decide remover o componente de feedback do site da carga de trabalho.
  • Uma base de código menor reduz o custo de manutenção e operações. E, neste caso, não há impacto nos requisitos de negócios.

Padronize seu ciclo de vida de desenvolvimento de software

Estabeleça padrões na implementação, implantação e processos de código e documente-os. Identifique oportunidades para aplicar esses padrões usando validações automatizadas.

As normas proporcionam consistência e minimizam os erros humanos. Abordagens como convenções de nomenclatura padrão e guias de estilo de código podem ajudá-lo a manter a qualidade e facilitar a identificação de ativos durante a solução de problemas.

O desafio da Contoso

  • A equipe de desenvolvimento da startup não tem muitos padrões de desenvolvimento e processo definidos. Há várias bibliotecas sendo usadas que se sobrepõem na funcionalidade, os estilos de codificação não são impostos e os pipelines de liberação não têm portas de liberação formais que usam testes automatizados.
  • A equipe de carga de trabalho da Contoso percebe que o custo de manutenção da nova base de código é muito alto devido à falta de consistência nos estilos e às bibliotecas de uso e padrões de design inconsistentes.
  • Há incidentes frequentes após grandes atualizações na produção, às vezes exigindo reversões das atualizações ou hot-fixes no meio da implantação. A frequência desses tipos de problemas de implantação força a equipe a usar um modelo de suporte prático ao lançar atualizações para a produção. Para piorar a situação, os problemas frequentes estão afetando negativamente a reputação da Contoso por meio de uma experiência de usuário ruim.

Aplicação da abordagem e dos resultados

  • A equipe que assume o suporte do novo aplicativo faz um esforço para alcançar maior consistência, impondo estilos de codificação, padronizando um conjunto comum de bibliotecas e padrões de design e formalizando o uso de portas de liberação com base em testes automatizados.
  • Enquanto essas alterações estão sendo implementadas, a equipe de carga de trabalho adere aos seus requisitos de documentação padrão. Todas as novas ferramentas, padrões de design e estilos que estão sendo adotados são minuciosamente documentados, permitindo que a equipe compreenda e mantenha a carga de trabalho de forma mais eficiente no futuro. A equipe agora pode identificar mais facilmente desvios nos padrões ao realizar revisões de código.

Minimize a carga de operações e desenvolvimento

Aproveite os recursos fornecidos pela plataforma e os ativos pré-criados que podem ajudá-lo a atingir efetivamente as metas de negócios.

Essa abordagem minimiza o tempo de desenvolvimento. Ele também permite que você confie em práticas testadas e comprovadas que foram usadas com cargas de trabalho semelhantes.

O desafio da Contoso

  • Para a versão inicial sob a marca Contoso Travel, a solução nodejs será migrada de VMs para os Serviços de Aplicativo, para aproveitar os muitos recursos de confiabilidade nativos que o serviço oferece.
  • A versão implantada em VMs contém uma quantidade significativa de código personalizado necessário para instrumentação.

Aplicação da abordagem e dos resultados

  • Durante a migração inicial para os Serviços de Aplicativo, a equipe conseguiu remover todo o código de instrumentação personalizado implementando a autoinstrumentação do App Insights nos Serviços de Aplicativo.
  • A equipe também pode aproveitar várias outras funções nativas do Serviço de Aplicativo, como dimensionamento automático, integração do Key Vault e redundância zonal.

Verifique o seu conhecimento

1.

Por que você deve tentar minimizar o número de componentes em sua carga de trabalho?

2.

Que elementos do seu ciclo de vida de desenvolvimento de software devem ser padronizados?

3.

Como a mudança para os Serviços de Aplicativo do Azure ajudou a equipe da Contoso a simplificar sua carga de trabalho?