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 evita configurações incorretas ou problemas inesperados. Mas a simplificação excessiva pode introduzir pontos únicos de falha. É tudo uma questão de encontrar um equilíbrio.
Cenário de exemplo
A Contoso Travel está comprando e integrando uma pequena empresa iniciante que tem um popular aplicativo de viagens baseado na Web. O aplicativo é popular porque recebe ótimas ofertas 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 máquinas virtuais (VMs) hospedadas em seu datacenter e na Amazon Web Services (AWS).
Simplifique os componentes da carga de trabalho
Adicione componentes à sua configuração apenas se eles o ajudarem a atingir os seus objetivos de negócio. Concentre-se no essencial.
Projetar para requisitos de negócios pode levar a uma solução simples que é fácil de executar e gerenciar. Evite ter muitas partes críticas, porque cada uma pode ser um potencial ponto de falha.
O desafio da Contoso
- Um componente do novo aplicativo permite que os usuários deem feedback sobre o site depois de fazerem uma reserva. A maioria dos usuários ignora esse recurso. Em vez disso, eles preferem usar as mídias sociais da empresa para feedback, que é usado com mais frequência para marketing e interação com o usuário.
Aplicação da abordagem e dos resultados
Como parte da versão inicial da versão do aplicativo com a marca Contoso Travel, a equipe remove o recurso de comentários do site.
Uma base de código menor significa menores custos de manutenção e operação. E isso não afeta os requisitos de negócios.
Padronize 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 aplicar essas normas.
As normas ajudam a manter a consistência e a reduzir os erros humanos. O uso de 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 carece de padrões definidos. Eles usam bibliotecas sobrepostas, não impõem estilos de codificação e seus pipelines de liberação não têm portas de teste formais e automatizadas.
A equipe da Contoso considera a nova base de código difícil de manter 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 hot-fixes durante a implantação. Por causa desses problemas frequentes, toda a equipe precisa ajudar sempre que lançar atualizações para a produção. Para piorar a situação, esses problemas estão prejudicando a reputação da Contoso e dando aos usuários uma experiência ruim.
Aplicação da abordagem e dos 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 portas de liberação 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 identificar desvios durante as revisões de código.
Minimize a carga de operações e desenvolvimento
Use recursos fornecidos pela plataforma e ativos pré-criados para atingir as metas de negócios de forma eficaz.
Essa abordagem economiza tempo de desenvolvimento e depende de 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 internos de confiabilidade.
A versão VM tem muito código personalizado para instrumentação.
Aplicação da abordagem e dos 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 Cofre de Chaves do Azure e redundância zonal.