“Planejando a migração para Software Livre” Definição: “Migração (subs): Movimento de determinado ambiente ou plataforma operacional para outro. Para muitos esta palavra é sinônimo de dores de cabeça... :)” Existe uma receita prática para migração? Não, porém existem procedimentos e metodologias que permitem que o processo de migração se dê de forma segura causando o mínimo de trauma possível. “Mas se está tudo funcionando, por que migrar?” Afinal, que podemos chamar de "migração de sucesso"? Podemos dizer que um caso de migração foi bem sucedido quando não apenas é feita a substituição de uma plataforma por outra, mas sim quando esta traz consigo melhorias no ambiente, tais como novas funcionalidades, mais segurança, estabilidade, aumento de produtividade, redução de paradas para manutenção, redução de custos e o principal: tornar a vida do usuário mais simples. :) Antes de começar... "Se conheces o inimigo e conheces a ti mesmo, não precisas de temer o resultado de cem batalhas. Se conheces a ti mesmo, mas não conheces o inimigo, por cada vitória sofrerás também uma derrota. Se não conheces a ti mesmo nem conheces o inimigo, perderás todas as batalhas" Sun Tzu, A Arte da Guerra Alguns aspectos importantes... - É realmente possível migrar? Existe documentação da infra-estrutura atual? Existe o domínio da tecnologia a ser utilizada? Dispomos de recursos humanos necessários? Usuário, o centro de tudo: O usuário não deve ser visto como um problema, mas sim como a parte mais importante de todo o processo de migração. Seu sucesso dependerá única e exclusivamente dele e por isso este deve ser visto como o ponto central deste processo. Tipos possíveis de migração: Podemos classificar o processo de migração basicamente em dois tipos: aquele em que existe um impacto direto nas nas atividades e tarefas quotidianas dos usuários - o qual se dá muitas vezes pela falta de planejamento - e aquele que não causa impacto. Não existe mágica, nem receita. A palavra chave para isso se chama "Organização". :) Situações possíveis de migração: - Serviços de rede Aplicações legadas Bancos de dados Servidores de aplicação Ambiente Desktop e aplicações Suíte de Aplicativos Office É possível também que durante o processo de migração sejam necessárias mudanças estruturais na arquitetura física da rede. Muitas vezes se faz necessária a implementação de serviços (e consequentemente servidores...) com a finalidade de trazer melhorias ao ambiente (aumento de performance, maior escalabilidade, segurança, entre outros). Estes tipo de mudança geralmente traz consigo a necessidade da implementação de serviços em alta-disponibilidade para garantir o funcionamento de sistemas críticos. Estágios do processo migratório: - Definição de objetivos Levantamento de ambiente Estudo de viabilidade Busca e escolha de soluções adequadas Homologação das soluções escolhidas Implementação de um projeto piloto Redação do projeto de migração Implementação do projeto Realização de testes e correção de erros Treinamento de usuários Documentação de procedimentos e ambiente Organização de estrutura de suporte Definição de objetivos: Existe um ditado que diz que "Antes de partir é preciso saber onde se quer chegar". O ponto de partida em um processo de migração é definir o que deverá ser migrado, e como se dará este processo. Vários fatores devem ser levados em conta neste ponto, tais como se a migração é realmente viável - e não uma utopia - e se realmente vale a pena migrar, tendo em vista os possíveis problemas que poderão ocorrer e os custos do processo. Levantamento de ambiente: O levantamento detalhado do ambiente deve ser feito para que exista um melhor entendimento sobre a situação. É importante analisar o ambiente e entendê-lo em suas partes assim como um todo. Podemos considerar este passo como um dos mais importantes de todo o processo, visto que um pequeno detalhe que seja esquecido ou deixado de lado pode tornar o projeto completamente inviável. Deve ser feito um levantamento detalhado de: - Hardware utilizado em servidores e estações de trabalho Impressoras e outros dispositivos utilizados Topologia das redes envolvidas no processo Equipamentos de conectividade utilizados Política de segurança atual Sistemas operacionais utilizados Serviços de rede utilizados Aplicações de uso geral utilizadas Aplicações legadas ou sistemas de uso específico Tipos de documentos utilizados e mantidos por usuários Base de usuários e outras informações importantes Rotinas diárias dos usuários do ambiente Rotinas diárias dos administradores O levantamento das rotinas diária dos usuários e de administradores de rede é de vital importância, visto que com base nestas informações serão modelados o futuro ambiente de trabalho e também treinamentos. É importante salientar que um bom entendimento da rotina de usuários e administradores ajudará na hora da definição de quais soluções a serem adotadas, e que quando menor forem as mudanças no ambiente, menor será o impacto causado por este na rotina diária dos usuários. Lembre-se sempre que o usuário é o ponto central de todo o processo, e que o seu sucesso depende dele! :) Estudo de viabilidade: Antes de continuar, deve ser feita uma análise minunciosa dos dados levantados, com a finalidade de descobrir se realmente é possível migrar. Deve-se levar em conta todos os possíveis riscos e problemas que poderão ocorrer em decorrência da migração, e qual será o impacto causado por esta na rotina diária dos usuários, fator que pode reduzir a produtividade do ambiente. Um processo de migração pode trazer consigo diversos riscos que devem ser avaliados pois em grande parte dos casos poderão ocorrer problemas diversos* e possíveis paradas deverão ser levadas em conta. O planejamento deverá prever estas situações para que estas não tragam danos ao ambiente. * Popularmente conhecido como “Lei de Murphy” Busca e escolha de soluções adequadas: - Pesquisa por soluções livres Pesquisa por soluções proprietárias Escolha de soluções (preferencialmente mais de uma) Verificar questões de licenças de software Homologação das soluções escolhidas: - Análise de soluções encontradas - Testes de homologação para verificar a mais adequada Implementação de um projeto piloto: Deve ser feita em um ambiente menor do que o real. Tem como finalidade servir para a detecção de possíveis erros que possam vir à acontecer e para corrigí-los antes da implementação do projeto propriamente dito. Neste ponto deve ser feito um acompanhamento das tarefas e rotinas do ambiente de testes para verificar se os objetivos iniciais podem ser cumpridos, e se vale a pena prosseguir. Redação do projeto de migração: Tendo como base a experiência adquirida no projeto piloto, deve-se redigir um projeto detalhado especificando fases e definindo metas. O projeto deverá estipular também o cronograma de implantação, checkpoints e testes, que deverão ser seguidos durante a implementação. Um projeto dividido em fases torna a implementação mais simples e segura. É necessário especificar um checklist para o final de cada fase do projeto assim como um para sua conclusão. Implementação do projeto: Após a elaboração do projeto de migração é hora de colocá-lo em prática. É importante que a implementação obedeça todos os detalhes especificados no projeto pois todos os passos definidos por este serão decisivos para o sucesso da migração. Realização de testes e correção de erros: Durante a implementação do projeto são previstos checkpoints e testes de funcionamento para que possíveis erros sejam verificados e corrigidos. Ao término de cada fase deve ser realizado o checklist, com a finalidade de verificar se todos os passos especificados foram cumpridos corretamente e se o objetivo inicial foi alcançado. Treinamento de usuários e administradores: Após a implementação é chegada a hora de começar a trabalhar no novo ambiente. Por mais que se queira, é praticamente impossível que um ambiente seja reproduzido em todos os detalhes. Sempre algo irá mudar e por isso se faz necessário que os usuários e administradores sejam devidamente treinados e instruídos sobre o funcionamento do novo ambiente. Dependendo da infra-estrutura disponível (local para treinamento, material didático, instrutores, disponibilidade de horários, etc) esta fase do projeto pode ser executada em paralelo com outras. Neste caso, a maior vantagem é que não se faz necessário que o usuário pare suas atividades para ser treinado e consequentemente que não ocorra uma redução na produção. Documentação de procedimentos e ambiente: É muito importante que durante a implementação cada fase seja detalhadamente documentada, assim como ao término do projeto sejam escritos documentos com referência explicando como o ambiente funciona. Essa documentação será utizada por aqueles que irão manter o novo ambiente e deve sempre ser mantida e atualizada sempre que uma nova mudança seja feita no futuro. Organização de estrutura de suporte: A mudança de ambiente necessitará de uma reestruturação no sistema de suporte. Dependendo o tamanho do ambiente se faz necessária a organização de uma equipe para tratar de problemas específicos do processo de transição entre os ambientes antigo e o novo. Um recurso interessante que pode ser facilmente implementado é a uma Intranet e a elaboração de uma documentação online para usuários e administradores. O que pode causar problemas? - Erros durante o levantamento de ambiente. Utilização de softwares sem prévia homologação Falhas durante a análise e elaboração do projeto Falhas de dimensionamento de recursos de hardware Problemas de aceitação por parte de usuários Problemas com o software legado Problemas com terceiros durante a implantação Um processo de migração sem planejamento pode causar: - Gastos desnecessários Paradas desnecessárias Diminuição de produtividade Falhas de segurança Perda de tempo Demissões dos responsáveis* * Neste caso pode ser você... Algumas dicas úteis: - Ser o mais detalhista possível durante o levantamento de informações Tomar muito cuidado com dimensionamentos de hardware e serviços Utilizar apenas soluções homologadas durante a migração Acompanhar o trabalho dos usuários para entender sua realidade Elaborar um projeto e tentar segui-lo sempre que possível Obedecer metodologia na implementação de projetos Consultar a opinião de outras pessoas em caso de decisões difíceis Qual sequência de migração poderia ser sugerida? - Aplicações Servidores e serviços de rede Suite de Aplicativos Office Sistema Operacional para estações Desktop Considerações finais... Lembre-se que nada serve para tudo. Esta apresentação foi foi desenvolvida com a finalidade de servir como referência para a explanação de procedimentos necessários para a elaboração de um plano de migração para um ambiente genérico. É provável que esta apresentação possa servir para diversos ambientes, porém haverão casos em que isso não seja possível, sendo necessário que algumas alterações sejam feitas nos passos e procedimentos descritos ao longo desta. Perguntas? Agradecimentos: Empresas/Órgãos Públicos: - Conectiva S/A INMETRO RJ Netcom Soluções em Informática Prefeitura Municipal de Caxias do Sul Aos amigos: - Fábio Olivé Leite Rodrigo Missiagia Vagner Farias Marcos Polidoro Luis Claudio Gonçalves Marcelo Martins Rodrigo Stulzer Marcelo Gondin Nielsen de Moraes Leonardo Menezes Vaz <[email protected]> Muito obrigado por sua atenção!