O SCCM da Microsoft e vários outros produtos farão isso. No entanto, eles permitem que você faça a tarefa específica: Instale o software. A grande questão é como você coordena isso?
Em "A Prática de Administração de Sistemas e Redes" existe um capítulo que recomenda as seguintes metodologias:
-
"um, alguns, muitos" - Atualize sua própria máquina e teste por alguns dias. Atualize um pouco mais (digamos, os outros administradores de seu time). Em seguida, implemente "muitos": grupos maiores e maiores.
-
"canary" - Atualize um a cada [período de tempo] até terminar.
-
"exponencial" - Atualize 1, depois 2 mais, depois mais 4 e depois 8 mais. O tamanho do grupo dobra a cada vez.
-
"risco-adverso passado" - Divida a organização em grupos e faça a maior aceitação de risco primeiro, o mais desfavorável ao risco. Por exemplo, pode haver um grupo que se orgulhe de ser inovador e que se ofereça em primeiro lugar (o departamento de TI, o departamento de engenharia). Pode haver um grupo que é muito suspeito de upgrades e eles vão por último (departamento de contabilidade, os executivos, etc.) Os grupos menores provavelmente devem ir primeiro também.
Não importa o quanto você agrupa as atualizações, as atualizações devem ser testadas primeiro e.
Após cada "grupo" de atualizações, faça uma série de testes. Se algum teste falhar ou se forem relatados problemas, pare de fazer atualizações. Reverta para a versão anterior, se possível (ou segura).
Os upgrades não devem começar até que você tenha feito seus próprios testes. Por exemplo, em um laboratório ou em sua própria máquina. Testes mais estruturados incluiriam a tentativa de atualização em um de cada tipo de máquina, um de cada versão do sistema operacional e assim por diante. Os testes devem incluir iniciar e parar o software, bem como executar suas principais funções (desde que você mencionou o Flash: tente reproduzir um vídeo, executar um jogo em flash e assim por diante). É bom manter uma página wiki que documente quais combinações foram testadas e quais testes foram executados. A próxima vez que você atualizar este pacote, você terá uma boa lista de testes para usar. Se um problema for relatado durante as atualizações, adicione um teste à lista para evitar esse problema no futuro. Desde que você mencionou o Flash, recentemente encontrei um problema com o aplicativo rastreador de alimentos do Vigilante do Peso e uma certa versão do Flash. Adicionamos o URL desse aplicativo à lista de testes e agora sabemos que novos upgrades em Flash precisam ser testados antes de lançá-lo.
Entre cada "grupo" de atualizações, faça uma pausa por algum tempo para ver se os erros aparecem. Se isso é um dia ou uma semana depende de muitos fatores: isso é uma grande mudança? As atualizações anteriores do grupo foram bem-sucedidas? Monitore seus tickets do Helpdesk para relatos de problemas relacionados à atualização. Se você tem assistentes de helpdesk em tempo integral, mantenha-os informados sobre quais atualizações estão em andamento para que eles estejam à procura de problemas.
Se você usa "um, alguns, muitos" ou outras metodologias depende de muitos fatores. "Um, alguns, muitos" é bom em ambientes menores. "Exponencial" é bom em um grande ambiente de desktop, onde centenas de máquinas são controladas centralmente. "Anúncios de risco últimos" é bom quando você pode dividir seus usuários em grupos específicos que têm diferentes "personalidades". "Canary" é usado em web farms e grid computing, onde você tem centenas ou milhares de máquinas, todas com a mesma configuração.
O mais importante é fazer boas anotações. Se você teve que fazer uma boa atualização uma vez, você terá que fazer mais atualizações no futuro. Você quer que o processo se torne repetível e manter uma lista de testes realizados é fundamental para isso. Da próxima vez que você fizer uma atualização similar, haverá menos raciocínio a ser feito, o que significa menos erros ("oops, esqueci de testar o blá-blá-blá") e será mais rápido. Na verdade, se você apenas mantiver a documentação básica, poderá delegá-la ao novo sysadmin junior que você contratou. Ele ou ela pode repetir seu processo, adicioná-lo e melhorá-lo. Você pode se concentrar em treiná-los e verificar seu trabalho. Enquanto isso, você pode trabalhar em outros projetos.