Mantenha a simplicidade
- 15 minutos
|
|
|---|
Muitas vezes é o que você tira em vez do que você adiciona que torna as soluções mais confiáveis. Manter as coisas simples ajuda a evitar problemas de controle, reduz as ineficiências e impede configurações incorretas ou problemas inesperados. Mas a simplificação excessiva pode introduzir pontos únicos de falha. É tudo sobre encontrar um equilíbrio.
Cenário de exemplo
A Contoso Travel está adquirindo e integrando uma pequena startup que tem um aplicativo de viagens popular na web. O aplicativo é popular porque obtém ótimos negócios com hotéis e companhias aéreas e usa as mídias sociais para marketing direcionado.
O aplicativo da startup foi criado usando Node.js e é executado em VMs (máquinas virtuais) hospedadas em seu datacenter e na AWS (Amazon Web Services).
Manter os componentes da carga de trabalho simples
Adicione apenas componentes à sua configuração se eles ajudarem você a atingir suas metas de negócios. Concentre-se no essencial.
O design para requisitos de negócios pode levar a uma solução simples que seja fácil de operar e gerenciar. Evite ter muitas partes críticas, pois cada uma pode ser um ponto de falha em potencial.
O desafio da Contoso
- Um componente do novo aplicativo permite que os usuários façam comentários no site depois que fizerem uma reserva. A maioria dos usuários ignora esse recurso. Em vez disso, preferem usar as mídias sociais da empresa para comentários, que são usados com mais frequência para marketing e interação do usuário.
Aplicando a abordagem e os resultados
Como parte do lançamento inicial da versão da marca Contoso Travel do aplicativo, a equipe remove o recurso de comentários do site.
Uma base de código menor significa custos de manutenção e operação mais baixos. E isso não afeta os requisitos de negócios.
Padronizar seu ciclo de vida de desenvolvimento de software
Defina padrões claros para codificação, implantação e processos e documente-os. Use verificações automatizadas para impor esses padrões.
Os padrões ajudam a manter as coisas consistentes e a reduzir erros humanos. Usar convenções de nomenclatura padrão e guias de estilo de código pode manter a qualidade e facilitar a identificação de ativos para solução de problemas.
O desafio da Contoso
A equipe de desenvolvimento da startup não tem padrões definidos. Eles usam bibliotecas sobrepostas, não impõem estilos de codificação e seus pipelines de lançamento não têm portões de teste formais e automatizados.
A equipe da Contoso acha difícil manter a nova base de código devido a estilos inconsistentes e ao uso da biblioteca.
Há muitos problemas após grandes atualizações na produção. Às vezes, a equipe precisa reverter as atualizações ou aplicar correções urgentes durante o deployment. Devido a esses problemas frequentes, toda a equipe precisa ajudar sempre que liberam atualizações para produção. Para piorar as coisas, esses problemas estão prejudicando a reputação da Contoso e dando aos usuários uma experiência ruim.
Aplicando a abordagem e os resultados
A equipe que dá suporte ao novo aplicativo trabalha para impor estilos de codificação, padronizar bibliotecas e padrões de design e formalizar portões de lançamento em testes automatizados.
Eles documentam todas as novas ferramentas, padrões de design e estilos para que seja mais fácil manter a carga de trabalho e detectar desvios durante as revisões de código.
Minimizar as operações e a carga de desenvolvimento
Use recursos fornecidos pela plataforma e ativos predefinidos para atender efetivamente às metas de negócios.
Essa abordagem economiza tempo de desenvolvimento e se baseia em práticas comprovadas usadas em projetos semelhantes.
O desafio da Contoso
Para a versão inicial do aplicativo da marca Contoso Travel, a equipe move a solução Node.js de VMs para o Serviço de Aplicativo do Azure para se beneficiar de seus recursos de confiabilidade internos.
A versão da VM tem um monte de código personalizado para instrumentação.
Aplicando a abordagem e os resultados
Durante a migração inicial para o Serviço de Aplicativo, a equipe remove todo o código de instrumentação personalizado usando a autoinstrumentação do Application Insights.
Eles também aproveitam outras funções do Serviço de Aplicativo, como dimensionamento automático, integração do Azure Key Vault e redundância zonal.