Autor convidado: Guilherme Barreiro, Diretor Geral na Nextios, unidade de negócios B2B da Locaweb
Migrar as aplicações de sua empresa para a cloud traz inúmeros benefícios. Com ela você aumenta a sua escalabilidade, podendo diminuir ou aumentar o uso sem a necessidade de comprar servidores e aumentar a sua infraestrutura. Também permite que sua equipe de TI foque no seu negócio, e não em questões mais ‘burocráticas’, como gestão de senhas, temperatura do equipamento, disaster recovery etc. Mas essa migração é algo que requer cuidado. Um deles é a modernização das aplicações.
Existem muitas maneiras de transferir suas aplicações para a nuvem. Se você possui uma aplicação monolítica, por exemplo, é possível migrar tudo para a nuvem com um Rehost, também conhecido como lift and shift. Porém, é necessário? Se você está indo para um ambiente na nuvem, já está pensando em modernizar a sua estrutura. Qual o motivo então de não fazer isso também nas aplicações, gerando mais economia, eficiência e evitando possíveis erros no futuro?
Uma estratégia é o Rearchitect, onde é alterada a arquitetura da aplicação para tirar todo o proveito da tecnologia em nuvem. Um exemplo, voltando ao caso do monolito, é mudar para uma arquitetura de microsserviços onde, ao invés de um grande código, existam vários containers, com códigos separados, mas trabalhando juntos.
Em uma aplicação monolítica para um e-commerce, onde estaria tudo nela, como login, carrinho, mostruário, pagamento etc., com microsserviços é possível fazer um container só para carrinho, outro para validação de login, outro para mostruário e por assim vai. A vantagem é que, se um falhar, é mais fácil isolar e resolver o problema do que em uma aplicação grande, deixando o sistema mais resiliente.
Ele também permite funções reutilizáveis, não precisando começar do zero o desenvolvimento se já houver uma parecida. Com os microsserviços é possível aproveitar mais os recursos da nuvem e escalar mais fácil. Se ocorrer um evento, como a Black Friday no e-commerce, não é necessário, como na monolítica, aumentar todo o sistema. É possível aumentar apenas os contêineres necessários para aquela demanda. Com isso a sua aplicação gasta apenas o necessário, aumentando a eficiência no uso de recursos.
Outra vantagem é a liberdade tecnológica que os microsserviços possibilitam. Não é preciso trabalhar com a mesma linguagem ou banco de dados em todos os containers, permitindo a criação de funções autônomas que se integrem a aplicação. Isso aumenta a agilidade no desenvolvimento, com várias equipes trabalhando em aplicações diferentes, com linguagens diferentes, fazendo no fim um deploy mais gradual.