António Miguel Ferreira, Managing Director, Iberia & Latin America, Claranet em 2019-12-02
Com cada vez mais infraestruturas e aplicações a serem consideradas para uma migração para a Cloud, as organizações têm que tomar uma decisão que nem sempre é simples - escolher a estratégia de migração mais adequada para cada aplicação
António Miguel Ferreira, Managing Director, Iberia & Latin America, Claranet
Enquanto algumas optam por uma maior simplicidade e favorecem um modelo de “rehost”, também conhecido como lift and shift, outras preferem optar por uma abordagem de “replatform” ou mesmo de “refactoring”. Na verdade, não existe um único caminho correto e, por vezes, uma Apesar do “rehost” ter sido uma das estratégias mais evidentes para a grande maioria das organizações que estão a migrar para a cloud, sobretudo pela facilidade e rapidez com que podem migrar as suas aplicações, sem ter que alterar praticamente uma única linha do seu código aplicacional, a verdade é que há também cada vez mais empresas que procuram maximizar os benefícios de uma migração para a cloud, optando por uma estratégia de “refactoring”, o que implica reescrever parcialmente as suas aplicações. É a estratégia que garante mais benefícios a médio e longo prazo. O “refactoring” envolve um processo mais avançado de revisão da arquitetura de uma aplicação, que passa muitas vezes por reescrever o código da mesma, para tirar proveito de serviços e funcionalidades nativas e API disponibilizadas pelos fornecedores de Cloud, como a AWS, Azure, Google ou Alibaba. Apesar de ser uma abordagem mais complexa, mais demorada e que, em fase de projeto, necessita de mais recursos, é uma das estratégias que a médio prazo capta mais adeptos na organização. Por um lado, aos CIO, pois permite reduzir a dependência de infraestrutura estática e aumentar a flexibilidade da aplicação, do ponto de vista da sua evolução futura, com a consequente agilidade trazida para o negócio. Aos CFO, porque permite obter poupanças significativas no valor da fatura mensal de cloud, ao otimizar a utilização de recursos, só usados (e cobrados) quando necessários, reduzindo ao máximo o desperdício de infraestrutura sub-utilizada, além de evitar o investimento em ativos (CapEx), que já era um atrativo da cloud, mesmo na sua versão mais básica. Por último, as próprias equipas de desenvolvimento de software, porque ganham novas competências de programação na Cloud, Infrastructure-as-a-Code e arquiteturas serverless, entre outras. Apesar de importante, a redução de custos está longe de ser o principal benefício pelo qual uma organização deve decidir seguir esta abordagem. Normalmente, o “refactoring” é impulsionado por uma forte necessidade por parte do negócio em adicionar recursos ou novas funcionalidades, melhorar a escalabilidade ou performance explorando os serviços nativos disponíveis na cloud (e são dezenas) - benefícios e resultados que seriam muito difíceis de alcançar com uma arquitetura tradicional. O “refactoring” traz consigo a promessa de ser o modelo mais adequado de operar uma aplicação na cloud, por ser o único modelo que permite verdadeiramente explorar de forma contínua a inovação que a cloud oferece, reduzindo custos, melhorando a eficiência operacional, resiliência, performance e segurança. Redução de custos a longo prazo Uma aplicação “cloud-native” permite mapear a utilização dos recursos de acordo com as necessidades de cada momento, em alguns casos até mesmo ao nível da transação, eliminando desperdícios, proporcionando um melhor, contínuo e duradouro retorno sobre o investimento em comparação com aplicações tradicionais que, para operarem, necessitam de ter toda a infraestrutura permanentemente disponível (e a ser cobrada), mesmo quando não é utilizada. Aumento de resiliência Ao desagregar os componentes da aplicação combinando serviços geridos altamente disponíveis que os vários fornecedores de cloud disponibilizam, a aplicação herda a resiliência subjacente à arquitetura dos serviços nativos da cloud, permitindo em muitos casos eliminar soluções tradicionais de disaster recovery, evoluindo para uma arquitetura distribuída por vários data centers ou regiões. Agilidade e flexibilidade Ao contrário de aplicações e infraestruturas tradicionais que frequentemente são dimensionadas para os picos de utilização, uma aplicação cloud native tira benefício dos serviços de autoscaling que a cloud oferece ajustando e alocando os recursos de acordo com as necessidades do negócio em cada momento. Inovação da cloud Ao desenvolver aplicações cloud native a organização está mais bem preparada para integrar serviços inovadores dos fornecedores que elegeu, como serviços de reconhecimento de fala, síntese de voz, streaming de vídeo, serviços de machine learning, entre outros. Por outro lado, também existem alguns riscos associados a esta abordagem que devem ser levados em conta. Lock-in Quanto mais cloud native é a aplicação, mais dependente estará do seu fornecedor cloud, pois os serviços de plataforma (e não de infraestrutura), tendem a ser proprietários, para os quais não existem standards. Competências O “refactoring” não é para todas as organizações. Requer competências sólidas de arquitetura, programação, automação e experiência na gestão e operação de serviços de plataformas Cloud, qualidades que a maioria das organizações não tem e que, mesmo do lado dos fornecedores de serviços profissionais de IT, são ainda difíceis de encontrar. Tempo Quando comparada com outras estratégias de migração para a cloud, como o “rehost” ou “replatform”, o “refactoring” é a estratégia mais complexa de todas, traduzindo-se normalmente em migrações mais prolongadas no tempo. A fase de projeto é mais longa do que numa migração apenas focada em utilizar serviços de infraestrutura. Falhas Dependendo se vai “refatorizar” parcialmente ou totalmente uma aplicação, poderão ocorrer erros ou encontrarem-se oportunidades de otimização, que podem causar atrasos, aumentar custos e causar interrupções. Refactor: sim ou não?Não existe uma única resposta certa para todas as organizações. Na realidade, a escolha dependerá sobretudo do nível de maturidade de cada organização relativamente à adoção e experiência na utilização da cloud. E dependerá da experiência dos Parceiros especializados com que puder contar no projeto. A cloud oferece uma grande variedade de benefícios para as organizações. No entanto, o “refactoring” não deverá ser a primeira escolha devido à complexidade inerente a esta estratégia, para organizações que nunca tenham realizado um projeto de migração para a cloud. Certamente que a escolha de um Parceiro (fornecedor) especializado mitiga o risco. Contudo, uma das abordagens mais consensual, será a de começar por fazer o “rehost” das aplicações para a cloud e, uma vez na cloud, iniciar um processo de transformação iterativo, começando por refatorizar de forma progressiva pequenas partes ou módulos de aplicações menos críticas para o negócio, evoluindo posteriormente para as restantes. Evolução em vez de revolução. Mas é preciso ter - já - uma estratégia cloud bem definida! |