O desenvolvimento focado em Cloud tem se tornado a norma, mas ainda apresenta desafios para aplicações legadas.
Após passar muito tempo na neblina, finalmente chegamos a um estágio em o pensamento está mais direcionado à nuvem. Isso é ótimo, principalmente quando iniciamos o desenvolvimento de um software “greenfield” ou “do zero”.
Entretanto, como bem sabemos, desenvolvimento de software não é um mar de rosas e, na maioria esmagadora das vezes, temos que lidar com sistemas legados. É nesse momento que geralmente surgem algumas perguntas:
- Vale a pena transferir esse legado para a nuvem?
- Se eu transferir para a nuvem, como será depois?
- Será que a nuvem é tão mágica assim?
A resposta a essas perguntas está mais atrelada aos próximos passos do que a migração para a nuvem em si. Vamos entender melhor como tornar isso o menos traumático possível.
Strangler Fig Pattern
Umas das coisas mais comuns quando fazemos o lift-and shift é subir a aplicação na nuvem e deixá-la sem qualquer mudança.
Isso, em um primeiro momento, pode passar a sensação de dever cumprido. Mas, com o passar do tempo — com a conta chegando no final de cada mês e com aquela promessa de escalabilidade e elasticidade não cumprida —, começa a bater a dúvida: migrar o legado para nuvem foi a decisão certa?
Não se preocupe se você está nesse momento, isso é mais comum do que se imagina! Vamos ver como tentar resolver esse problema.
Existe um Pattern criado pelo lendário Martin Fowler, referência na área de arquitetura de software, chamado StranglerFigApplication - disponível aqui na íntegra.
De maneira bem reduzida, ele diz que, em um primeiro momento, você só tem o legado. Mas, aos poucos, você pode estrangular as funcionalidades legadas até que ela se torne um software moderno.
Como “estrangular” meu legado e modernizá-lo na nuvem?
Sempre que fazemos o lift-and-shift, utilizamos como base o modelo de serviço IaaS — já que, geralmente, nesse primeiro momento colocamos o nosso software legado em VMs (Virtual Machines ou Máquinas Virtuais). Veja os melhores os modelos de serviço na nuvem neste artigo.
Porém, é após esse passo inicial que a brincadeira começa a ficar mais interessante. Para utilizar todo o poder computacional que a nuvem nos oferece, primeiro precisamos mapear funcionalidades do nosso legado que podemos “facilmente” migrar para um serviço PaaS ou SaaS na nuvem.
Um exemplo prático
Imagine que você possui uma aplicação que faz o uso de armazenamento de dados não estruturados (imagens, arquivos de vídeo, textos etc.) nela mesma.
No longo prazo, essa característica pode comprometer o Storage da sua aplicação em relação ao espaço de armazenamento. Mas o pior mesmo é o fato de impossibilitar a escalabilidade do acesso aos arquivos de maneira exclusiva.
Vamos dizer que você identifica que sua aplicação está demorando para acessar esses arquivos por conta da necessidade de mais poder computacional para escalar. Nesse cenário, você vai precisar aumentar o poder computacional de toda a VM (escalabilidade vertical), já que, conforme dito anteriormente, todos os arquivos residem na mesma VM.
Um primeiro passo para aproveitar o que a nuvem oferece de melhor seria mover esses arquivos para um Storage na nuvem (S3 na AWS e Azure Storage no Azure).
Com isso, você:
- desacopla os arquivos da sua aplicação;
- configura o acesso a esses arquivos da melhor maneira possível;
- utiliza a redundância deles, mudando os arquivos menos acessados para camadas mais “frias;
- acaba pagando menos pelo armazenamento dos arquivos.
Neste exemplo simples, além de começar a desacoplar sua aplicação, você também provavelmente vai começar a economizar um bom montante no final do mês.
Conclusão
A remodelagem do seu legado é fundamental para tirar proveito de tudo que a nuvem pode oferecer, tornando sua aplicação mais escalável, mais dinâmica, mais segura — e, principalmente, mais econômica.
Para saber como o Venturus pode ajudar no processo de remodelagem do seu legado na Nuvem, entre em contato com um de nossos especialistas.