Início
topics
Application Migration
A migração de aplicativos é o processo de mover um aplicativo de software de um ambiente de computação para outro. Você pode, por exemplo, migrar um aplicativo de um data center para outro, de um servidor no local para o ambiente de um provedor de cloud ou de um ambiente de cloud pública para a privada.
Como os aplicativos normalmente são desenvolvidos para serem executados em sistemas operacionais em arquiteturas de rede específicas, ou desenvolvidos para uma única plataforma de cloud, mover um aplicativo para um novo ambiente pode representar uma série de desafios. Geralmente é mais fácil migrar aplicativos de arquiteturas virtualizadas ou baseadas em serviços do que migrar aqueles executados em hardware bare metal.
Definir uma estratégia geral de migração de aplicativos envolve considerar todas as dependências do aplicativo e os requisitos técnicos, bem como as restrições de custo, de conformidade e de segurança da sua empresa.
Diferentes aplicativos podem ser transferidos para a cloud de formas distintas, mesmo dentro do mesmo ambiente de tecnologia. Desde o início da cloud computing, os desenvolvedores referiam-se a esses padrões de migração de aplicativos com nomes que começam com a letra "R".
Rehost (rehospedar): conhecida também como lift-and-shift, é uma estratégia comum em que a empresa move o aplicativo de um servidor no local para uma máquina virtual na cloud sem fazer mudanças significativas. A hospedagem de aplicativos é geralmente mais rápida do que outras estratégias de migração e pode reduzir significativamente os custos de migração. A desvantagem é que sem modificação, os aplicativos não vão aproveitar os benefícios dos recursos de computação nativos de cloud e os custos a longo prazo, de executá-los na cloud, podem ser ainda maiores.
Refactor ou re-architect (refatorar ou rearquitetar): refatorar refere-se a fazer alterações bastante significativas nos aplicativos para que suas escalas sejam ajustadas ou tenham um desempenho melhor em um ambiente da cloud. Isso pode envolver reescrever grandes partes dos aplicativos para que possam aproveitar melhor os recursos nativos de cloud, como a reestruturação de um aplicativo monolítico em um conjunto de microsserviços ou modernizando o armazenamento de dados do SQL ao NoSQL.
Replataform (redefinir plataforma): um meio termo entre lift-and-shift e re-arquitetar, a redefinição da plataforma de um aplicativo envolve fazer pequenas mudanças no aplicativo para que ele possa aproveitar melhor os benefícios da arquitetura da cloud. Os exemplos podem incluir fazer o upgrade do aplicativo para que ele seja compatível com um banco de dados gerenciado nativo de cloud, mudar os sistemas operacionais ou o middleware com os quais ele irá trabalhar, ou colocar o aplicativo em contêiner.
Retire/replace (desativar/substituir): em alguns casos, faz mais sentido desatribuir o aplicativo. Isso pode ocorrer porque seu valor é limitado, porque seus recursos são duplicados em outro lugar em seu ambiente, ou porque é mais econômico substituí-lo por uma nova solução, muitas vezes uma plataforma de Software como serviço (SaaS), do que migrar o aplicativo.
Para desenvolver a melhor estratégia para migração de aplicativos que seja mais adequada para o ambiente de TI exclusivo e para as necessidades de negócios de sua empresa, será necessário entender exatamente o que está em seu portfólio de aplicativos, as especificidades de seus requisitos de segurança e conformidade, os recursos da cloud que você está utilizando atualmente e como são suas infraestruturas locais de armazenamento, de computação e de rede.
Para que a migração para a cloud seja bem-sucedida, também será necessário ter clareza sobre os principais impulsionadores de negócios que a motivam e alinhar sua estratégia com esses impulsionadores. Você vai querer saber por que está migrando para a cloud e o que espera alcançar com a transição.
Os stakeholders podem temer que as migrações de aplicativos possam causar interrupções nos negócios ou resultar em custos inesperados. Os riscos mais comuns incluem o seguinte:
A realização de uma avaliação cuidadosa e detalhada dos riscos e benefícios associados a rehospedar, rearquitetar/redefinir plataforma, ou desativar cada aplicativo em seu portfólio pode ajudar a minimizar os riscos gerais associados à migração de aplicativos. Em particular, é importante comparar os custos de departamento com o custo total para a empresa e avaliar o custo total de propriedade (TCO) de qualquer hardware que será necessário conservar para manter os aplicativos nas instalações.
Nos anos anteriores, as empresas geralmente procuravam mover aplicativos para a cloud porque queriam a flexibilidade, a escalabilidade ou a estrutura pré-paga previsível que os provedores de cloud oferecem.
Atualmente, porém, as empresas também estão buscando ambientes que permitirão a inovação. Quer isso signifique acesso aos processadores de alto desempenho necessários para alimentar algoritmos de deep learning ou aplicativos em contêineres que permitem que as equipes de desenvolvimento melhorem as experiências digitais dos clientes rapidamente, implementando mudanças rapidamente, as tecnologias da cloud permitem que as empresas experimentem, testem novas ideias e "falhem mais rapidamente". Em muitos casos, tecnologias compatíveis com a cloud, como a conteinerização, possibilitam oferecer aos usuários finais experiências melhores do que as máquinas virtuais que elas podem substituir.
De um modo geral, o processo de planejamento de migração de aplicativos pode ser dividido em três estágios. Em cada um deles, é fundamental considerar os custos de todas as opções disponíveis, incluindo a opção de reter algumas cargas de trabalho no local.
Identificação e avaliação de aplicativos. Nesta fase inicial de descoberta, deve-se começar garantindo ter um catálogo abrangente de todos os aplicativos em seu portfólio. Em seguida, você categorizará os aplicativos de acordo com sua importância crítica ou não crítica para os negócios, se o valor desses é estratégico ou não estratégico e o que você espera da migração de cada um para a cloud. Deve-se se esforçar para entender o valor de cada aplicativo em termos dessas características:
Em seguida, você desejará realizar uma avaliação de afinidade da cloud para cada aplicativo que está pensando em migrar. Durante esse processo, é possível determinar quais aplicativos estão prontos para funcionar como estão e quais precisariam de mudanças significativas antes de estarem prontos para a cloud.
Também é possível empregar ferramentas de descoberta de dependência de aplicativos para ajudar a determinar a viabilidade de migrar uma carga de trabalho específica para fora de seu ambiente atual.
Avaliação de custo total de propriedade (TCO). Determinar o custo total de um projeto de migração para a cloud pode ser uma tarefa complexa. Será necessário comparar os cenários "what-if" para manter os aplicativos e a infraestrutura no local com aqueles associados à sua migração para a cloud. Isso significa que você terá que calcular os custos de compra, operação e manutenção do hardware que você manteria no local em qualquer um dos cenários e os custos de licenciamento de software.
Você vai desejar comparar a fatura mensal que receberia de seu provedor da cloud em qualquer um dos cenários e os custos da migração em si, incluindo os custos do teste da nova infraestrutura e do treinamento de funcionários para usar o software atualizado. Não se esqueça de considerar os custos de manutenção de aplicativos legados que permanecem no local.
Avaliação geral do risco e da duração do projeto. Na fase final do planejamento da migração, você estabelecerá um cronograma para o projeto e identificará quaisquer riscos ou obstáculos que provavelmente encontrará.
De um modo geral, quanto mais antigo o aplicativo, mais desafiador (e, como resultado, potencialmente menos vantajoso) é migrar para a cloud. Um software desatualizado é problemático de várias maneiras: é caro de manter, pode gerar problemas de segurança se não estiver mais sendo corrigido e tende a ter um desempenho ruim em ambientes de computação modernos. Seja especialmente minucioso com sua avaliação de aplicativos legados antes de decidir migrá-los.
Quando as organizações avaliam a viabilidade e a prioridade de migração de um aplicativo, elas consideram os problemas a seguir.
Complexidade: onde este aplicativo foi desenvolvido? Se foi internamente, o desenvolvedor ainda trabalha na sua empresa? A documentação do aplicativo está prontamente disponível? Qual é a idade do aplicativo? Há quanto tempo ele está em uso? Quantos outros aplicativos ou fluxos de trabalho em sua organização dependem dele de alguma forma?
Grau de severidade: quantos usuários dependem deste aplicativo diariamente? Semanalmente? Quanto tempo de inatividade eles poderiam tolerar antes que as operações de negócios fossem interrompidas? O aplicativo é usado na produção, no desenvolvimento, no teste ou em todos os três? Ele é gerenciado por uma equipe de TI interna ou por um fornecedor externo? Há algum outro aplicativo com requisitos de tempo de atividade/inatividade que deve ser sincronizado com aqueles deste aplicativo?
Conformidade: a quais requisitos regulamentares o aplicativo deve obedecer?
Disponibilidade: com quais padrões de tempo de atividade esse aplicativo deve estar em conformidade? Por exemplo, ele está sujeito a um contrato de nível de serviço (SLA) estipulando 99,99% de tempo de atividade?
Teste
Para garantir que nenhum dado ou recurso seja perdido durante o processo de migração do aplicativo, deve-se realizar testes durante a migração para verificar se todos os dados estão presentes, se a integridade dos dados foi mantida e se os dados agora estão no local de armazenamento correto.
Também é essencial realizar testes de acompanhamento após a conclusão da migração, comparando o desempenho do aplicativo e garantindo que os controles de segurança permaneçam em vigor.
Virtualização é um componente fundamental em muitas estratégias de migração para a cloud porque as máquinas virtuais podem ser executadas prontamente em novos ambientes físicos de hardware. É até possível mover um aplicativo em tempo real, em execução em uma máquina virtual, entre máquinas host físicas sem interromper a experiência do usuário final. A flexibilidade e a versatilidade dos ambientes de computação virtualizados simplificam drasticamente o processo de migração de aplicativos.
Tipos de hypervisors e operações de migração
Várias soluções de replicação e migração atualmente disponíveis permitem que seus clientes migrem máquinas virtuais entre servidores bare metal, servidores virtuais na cloud e até mesmo hypervisors.
Muitos serviços estão disponíveis para ajudar sua empresa a criar estratégias, planejar e executar uma migração para a cloud bem-sucedida.
Blueprint de migração: em uma oferta de serviços de blueprint abrangente, seu fornecedor o ajudará a esclarecer sua estratégia e objetivos de migração, reunindo informações sobre seus aplicativos e ambiente, identificando as necessidades de seus usuários e seus requisitos de negócios, e apresentando um plano de ação detalhado para sua migração.
Implementação de migração: se você optar por escolher uma opção de implementação gerenciada, seu fornecedor não apenas ajudará você a criar estratégias e planejar sua migração, mas também gerenciará a própria migração e qualquer teste e solução de problemas associados. Essa geralmente é uma solução de serviços pronta para uso que inclui suporte de ponta a ponta em escala total.
Serviços de cloud gerenciada: uma solução de serviço de cloud gerenciada geralmente inclui monitoramento e manutenção de seu ambiente de TI baseado em cloud. Seu provedor de serviços da cloud gerenciada assumirá a responsabilidade por várias funções, desde o gerenciamento da segurança da cloud até a aquisição de soluções como serviço de fornecedores em seu nome. A migração de aplicativos pode ser incluída em uma solução de serviço em pacote ou incluída para escolha livre.
Modernização de aplicativos: os serviços de modernização de aplicativos incluem soluções de desenvolvimento customizadas que podem preparar aplicativos legados para uso na cloud, modificando-os para que sejam executados em contêineres ou em ambientes virtualizados.
A cloud computing transforma a infraestrutura de TI em um utilitário, permitindo se conectar a recursos e aplicativos de computação pela Internet, sem instalá-los e mantê-los no local.
A migração para a cloud é o processo de realocar os dados, aplicativos e cargas de trabalho de uma organização para uma infraestrutura em cloud.
Hoje, a modernização de aplicativos refere-se principalmente à transformação de aplicativos legados monolíticos em aplicativos da cloud criados na arquitetura de microsserviços.