Implantação de software

Da Wikipédia, a enciclopédia livre
Ir para a navegação Saltar para pesquisar

A implantação de software é todas as atividades que tornam um sistema de software disponível para uso. [1]

O processo de implantação geral consiste em várias atividades inter-relacionadas com possíveis transições entre elas. Essas atividades podem ocorrer do lado do produtor , do lado do consumidor ou de ambos. Como cada sistema de software é único, os processos ou procedimentos precisos dentro de cada atividade dificilmente podem ser definidos. Portanto, "implantação" deve ser interpretada como um processo geral que deve ser customizado de acordo com requisitos ou características específicas. [2]

História

Quando os computadores eram extremamente grandes, caros e volumosos ( mainframes e minicomputadores ), o software era frequentemente empacotado junto com o hardware pelos fabricantes. Se o software de negócios precisar ser instalado em um computador existente, isso poderá exigir uma visita cara e demorada de um arquiteto de sistemas ou consultor . Para instalação local complexa de software corporativo hoje, isso ainda pode ser o caso.

No entanto, com o desenvolvimento de software de mercado de massa para a nova era dos microcomputadores na década de 1980, surgiram novas formas de distribuição de software  – primeiro os cartuchos , depois os cassetes compactos , depois os disquetes , depois (na década de 1990 e posteriormente) a mídia óptica , a internet e Pen drives. Isso significava que a implantação de software poderia ser deixada para o cliente. No entanto, também foi cada vez mais reconhecido ao longo do tempo que a configuração do software pelo cliente era importante e que isso deveria idealmente ter uma interface amigável (em vez de, por exemplo, exigir que o cliente editasse entradas de registro no Windows).

Nas implantações de software pré-internet, as implantações (e seus primos próximos, os novos lançamentos de software) eram necessariamente caros, infrequentes e volumosos. É discutível, portanto, que a disseminação da internet tornou possível o desenvolvimento ágil de software de ponta a ponta . De fato, o advento da computação em nuvem e do software como serviço significava que o software poderia ser implantado para um grande número de clientes em minutos, pela Internet. Isso também significava que, normalmente, os cronogramas de implantação agora eram determinados pelo fornecedor do software, não pelos clientes. Tal flexibilidade levou ao surgimento da entrega contínua como uma opção viável, especialmente para aplicações web menos arriscadas .

Atividades de implantação

Lançamento
A atividade de liberação segue o processo de desenvolvimento concluído e às vezes é classificada como parte do processo de desenvolvimento em vez do processo de implantação. Inclui todas as operações para preparar um sistema para montagem e transferência para o(s) sistema(s) de computador em que será executado em produção. Portanto, às vezes envolve determinar os recursos necessários para o sistema operar com desempenho e planejamento toleráveis ​​e/ou documentar as atividades subsequentes do processo de implantação.
Instalação e ativação
Para sistemas simples, a instalação envolve o estabelecimento de alguma forma de comando , atalho, script ou serviço para execução do software (manual ou automaticamente). Para sistemas complexos, pode envolver a configuração do sistema – possivelmente fazendo perguntas ao usuário final sobre seu uso pretendido, ou perguntando diretamente como eles gostariam que fosse configurado – e/ou tornando todos os subsistemas necessários prontos para uso. Ativação é a atividade de iniciar o componente executável do software pela primeira vez (não confundir com o uso comum do termo ativação referente a uma licença de software, que é uma função do Gerenciamento de Direitos Digitaissistemas.)
Em implantações de software maiores em servidores , a cópia principal do software a ser usada pelos usuários - "produção" - pode ser instalada em um servidor de produção em um ambiente de produção. Outras versões do software implantado podem ser instaladas em um ambiente de teste, ambiente de desenvolvimento e ambiente de recuperação de desastres.
Em ambientes complexos de entrega contínua e/ou sistemas de software como serviço , versões do sistema configuradas de forma diferente podem até existir simultaneamente no ambiente de produção para diferentes clientes internos ou externos (isso é conhecido como arquitetura multi-tenant ), ou até mesmo ser implementado gradualmente em paralelo para diferentes grupos de clientes, com a possibilidade de cancelar uma ou mais implantações paralelas. Por exemplo, o Twitter é conhecido por usar a última abordagem para testes A/B de novos recursos e interface do usuárioalterar. Um grupo "oculto ao vivo" também pode ser criado em um ambiente de produção, consistindo em servidores que ainda não estão conectados ao balanceador de carga de produção , para fins de implantação azul-verde .
Desativação
A desativação é o inverso da ativação e refere-se ao desligamento de quaisquer componentes já em execução de um sistema. A desativação geralmente é necessária para realizar outras atividades de implantação, por exemplo, um sistema de software pode precisar ser desativado antes que uma atualização possa ser executada. A prática de remover do serviço sistemas pouco usados ​​ou obsoletos é frequentemente chamada de desativação de aplicativos ou desativação de aplicativos.
Desinstalação
A desinstalação é o inverso da instalação. É a remoção de um sistema que não é mais necessário. Também pode envolver alguma reconfiguração de outros sistemas de software para remover as dependências do sistema desinstalado .
Atualizar
O processo de atualização substitui uma versão anterior de todo ou parte de um sistema de software por uma versão mais recente. Geralmente consiste em desativação seguida de instalação. Em alguns sistemas, como no Linux ao usar o gerenciador de pacotes do sistema , a versão antiga de um aplicativo de software normalmente também é desinstalada como parte automática do processo. (Isso ocorre porque os gerenciadores de pacotes do Linux normalmente não suportam a instalação de várias versões de um aplicativo de software ao mesmo tempo, a menos que o pacote de software tenha sido projetado especificamente para contornar essa limitação.)
Atualização integrada
Os mecanismos de instalação de atualizações são incorporados em alguns sistemas de software (ou, no caso de alguns sistemas operacionais, como Linux , Android e iOS , no próprio sistema operacional). A automação desses processos de atualização varia de totalmente automática a iniciada e controlada pelo usuário. O Norton Internet Security é um exemplo de sistema com um método semiautomático para recuperar e instalar atualizações para as definições de antivírus e outros componentes do sistema. Outros produtos de software fornecem mecanismos de consulta para determinar quando as atualizações estão disponíveis.
Acompanhamento de versão
Os sistemas de rastreamento de versão ajudam o usuário a encontrar e instalar atualizações nos sistemas de software. Por exemplo: O Catálogo de Software armazena a versão e outras informações para cada pacote de software instalado em um sistema local. Um clique em um botão abre uma janela do navegador para a página da Web de atualização do aplicativo, incluindo o preenchimento automático do nome de usuário e senha para sites que exigem login. No Linux, Android e iOS, esse processo é ainda mais fácil porque um processo padronizado para rastreamento de versão (para pacotes de software instalados da maneira oficialmente suportada) é integrado ao sistema operacional, portanto, não são necessárias etapas separadas de login, download e execução - portanto, o processo pode ser configurado para ser totalmente automatizado. Alguns softwares de terceiros também oferecem suporte ao rastreamento e atualização automatizados de versões para determinados pacotes de software do Windows.

Funções de implantação

A complexidade e a variabilidade dos produtos de software estimularam o surgimento de funções especializadas para coordenar e projetar o processo de implantação. Para sistemas de desktop, os usuários finais frequentemente também se tornam os "implantadores de software" quando instalam um pacote de software em sua máquina. A implantação de software corporativo envolve muito mais funções, e essas funções normalmente mudam à medida que o aplicativo progride do teste (pré-produção) para os ambientes de produção. As funções típicas envolvidas em implantações de software para aplicativos corporativos podem incluir:

Veja também

Referências

  1. ^ Roger S. Pressman Engenharia de software: abordagem de um praticante (oitava edição)
  2. ^ Rees-Carter, Stephen (13 de julho de 2018). "Como instalar e configurar o Ansible no Ubuntu 18.04" . DigitalOcean . Arquivado a partir do original em 9 de junho de 2019 . Recuperado em 8 de junho de 2019 . Os sistemas de gerenciamento de configuração são projetados para facilitar o controle de um grande número de servidores para administradores e equipes de operações. Eles permitem que você controle muitos sistemas diferentes de forma automatizada a partir de um local central.

Links externos