O que é a implantação de software?

Concluído

De acordo com a Wikipédia, a “implantação de software” é composta de todas as atividades que disponibilizam um sistema de software para uso. O processo geral de implantação consiste de várias atividades inter-relacionadas com possíveis transições entre elas. Todo sistema de software é exclusivo; portanto, a "implantação" deve ser interpretada como um processo geral que precisa ser personalizado de acordo com características ou requisitos específicos.

Alguns usam os termos "implantação" e "instalação" de maneira intercambiável, mas a instalação do software é apenas uma parte do processo de implantá-lo. A implantação envolve muito mais. As atividades de implantação podem incluir:

  • "Encaixar e empilhar" um servidor.
  • Implantar uma parte atualizada do software no servidor em questão.
  • Usar opções como scripts e infraestrutura como código.
  • Ou até mesmo andar pelo escritório com uma unidade USB, instalando o software nos computadores manualmente.

A implantação manual de software é muito trabalhosa e não é adequada para ser escalada. A automação torna mais fácil e econômico garantir a coerência quando você distribui um novo software ou atualiza o software existente em uma organização.

Nosso foco, como parte deste roteiro de aprendizagem, é como implantar melhor o software para obter confiabilidade. Esse módulo aborda não apenas a implantação do software, mas também a implantação da infraestrutura de nuvem. As referências à implantação de um serviço ou uma solução podem significar a implantação de software, a infraestrutura de nuvem, a configuração e todas as tarefas que são necessárias para disponibilizar o uso de um sistema de software de maneira confiável.

Cenário: A implantação épica

A palavra épico significa "grande, monumental ou vasto". Mas no contexto dessa conversa, não tem um significado positivo. O termo "épico" foi cunhado por Jez Humble no livro Entrega contínua: versões de software confiáveis por meio de build, teste e automação da implantação por representar um grande empreendimento (e intensamente perturbador). Veja um exemplo de como isso normalmente acontece:

  • Uma organização desenvolve um aplicativo relacionado a vendas. Esse aplicativo é atualizado exatamente duas vezes por ano.
  • Durante essas atualizações, todos os novos recursos, correções de bug (grandes e pequenas) e atualizações de dependências são implantados.
  • A primeira implantação do ano está agendada para acontecer durante o fim de semana do Dia do Trabalho nos EUA e a segunda acontece após o Dia de Ação de Graças.
  • Cada atualização é uma situação que exigirá o empenho de todos. A equipe de aplicativos, a equipe de suporte, a equipe de infraestrutura, a gerência: todos estão envolvidos na implantação.
  • Os serviços ficarão temporariamente offline enquanto a implantação estiver em andamento.
  • A história mostrou que a implantação está sempre repleta de problemas, engenharia sob demanda, solução de problemas e alterações no gerenciamento de configuração.
  • São raras as vezes em que tudo corre bem e, quando é concluída, geralmente, ela parece ter sido corrigida de maneira irreproduzível.

Essa não é uma boa situação de implantação. O método de implantação épica é uma tarefa manual intensa que apresenta vários problemas:

  • É complexo.
  • É tenso.
  • É arriscado.
  • É lento.
  • Não é reproduzível devido a todas as etapas complexas.
  • Geralmente, são necessários vários especialistas individuais para concluir a implantação.

Como esse processo é longo e árduo, às vezes, ele precisa ser agendado, o que causará uma interrupção mínima da produtividade do usuário, indicando os horários que podem ser inconvenientes para a equipe de implantação, como fins de semana e feriados.

Os membros da equipe podem se sentir pressionados a executar a operação colossal dentro do prazo, fazendo com que cometam erros de configuração. Além disso, o longo tempo decorrido entre as implantações pode fazer com que você esqueça como as coisas funcionam exatamente.

O dilema da implantação

A implantação de software é uma tarefa complexa, e quando “acumula” várias alterações, correções e adições de recursos importantes para implantá-las todas de uma vez, você aumenta a complexidade e, portanto, a probabilidade de algo dar errado. Além disso, quando as coisas dão errado, essa complexidade dificulta o rastreamento do que exatamente causou o problema.

A complexidade também pode criar problemas para os usuários finais, já que poderão precisar lidar com a tarefa de aprender muitos novos recursos e muitas alterações de uma só vez, sem mencionar os bugs introduzidos pela complexidade de uma implantação épica.

Deveria existir uma maneira melhor, e de fato existe. A boa notícia é que a estratégia de implantação épica tradicional não é a única opção. Vamos aprender uma maneira melhor de usar esse processo na próxima unidade.

Verificar seu conhecimento

1.

Qual é uma das características da “implantação épica”?