O que é a implantação de software?
- 3 minutos
A implantação de software inclui todas as atividades que disponibilizam um sistema de software para uso. O processo de implantação geral consiste em várias atividades interrelacionadas, com possíveis transições entre elas. Cada sistema de software é exclusivo, portanto, a implantação é um processo geral que precisa ser personalizado para requisitos ou características específicas.
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 mais do que se imagina. As atividades de implantação podem incluir:
- "Encaixar e empilhar" um servidor.
- Implantar uma parte atualizada do software no servidor em questão.
- Usar coisas como scripts e infraestrutura como código.
- Ou até mesmo andar pelo escritório com uma unidade USB, instalando o software nos computadores manualmente.
Implantar software manualmente é trabalhoso e não é escalável. 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.
Este roteiro de aprendizagem se concentra em como implantar melhor o software para 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 épica significa "grande, monumental ou vasta", mas no contexto desta discussão, não é uma coisa boa. Jez Humble e David Farley usam o termo em seu livro Entrega Contínua: Lançamentos de Software Confiáveis por meio da Automação de Build, Teste e Implantação, porque representa um empreendimento massivo (e massivamente disruptivo). Aqui está 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 exige o envolvimento de todos. A equipe de aplicativos, a equipe de suporte, a equipe de infraestrutura e o gerenciamento estão todos 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.
- Raramente corre bem e, quando concluída, geralmente parece improvisada de uma forma irreproduzível.
Esta não é uma boa situação de implementaçã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, ele precisa ser agendado para momentos que causem a menor interrupção da produtividade do usuário, o que significa horários que provavelmente serão inconvenientes para a equipe de implantação, como finais 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 haver uma maneira melhor, e há. A boa notícia é que a estratégia de implantação épica tradicional não é a única opção. Você aprenderá uma maneira melhor de realizar esse processo na próxima unidade.