Como migrar sua aplicação Desktop para a nuvem

Como migrar sua aplicação Desktop para a nuvem

SalesForce e o No Software.

Por volta do ano 2000, quando a SalesForce começou a levantar a bandeira do “No Software”, era difícil de imaginar que o modelo tradicional de venda e distribuição de software iria mudar tão rapidamente. Apenas poucos anos depois o modelo SaaS consolidou-se e hoje é o novo padrão do mercado. Grandes empresas de software como SAP, Oracle e TOTVS já migraram suas plataformas para a nuvem e agora comercializam no modelo de serviço.

O que fazer se minha aplicação ainda é client/server?

Meu objetivo com este artigo não é gastar teclas escrevendo sobre os benefícios de usar a nuvem. Tenho ciência de que em pleno ano de 2017 o mercado está muito bem educado neste tema. Meu objetivo é ajudar essa grande fatia de empresas de desenvolvimento que ainda possuem seus sistemas rodando na plataforma Desktop (cliente/servidor). Quero apresentar algumas alternativas para levar seu software Desktop para a nuvem rapidamente, sem precisar reescrevê-lo e com o mínimo de impacto na sua rentabilidade.

Para essas empresas, muitas vezes reescrever seu software não é uma opção financeiramente viável. Ao mesmo tempo, com margens cada vez menores, não podem se dar ao luxo de arcar com milhares de dólares mensais em soluções complexas, que fogem da sua realidade financeira. Agora adicione a pressão do mercado para readequar seu modelo de comercialização para SaaS.

É fato que seus clientes:

  • Não querem mais ter o trabalho nem o custo de implementar e manter servidores para hospedar sua aplicação.
  • Não querem se preocupar com alta disponibilidade, políticas de backup e segurança. Querem simplesmente acessar seu software e usar.
  • Desejam pagar pelo seu software mensalmente, como um SaaS.

Do lado operacional de quem desenvolve, você provavelmente:

  • Enfrenta dificuldades em atualizar seu software para sua base de dezenas ou centenas de clientes.
  • Está gastando muito tempo do seu suporte com problemas relacionados à infraestrutura de TI do cliente.
  • Está quase perdendo o controle das versões diferentes instaladas em cada cliente.

Então, como migrar seu software cliente-servidor para a nuvem com o mínimo de esforço e custo?

A seguir apresentarei três tecnologias para você distribuir sua aplicação desktop na nuvem. Cada opção tem seus pontos positivos e negativos que vou descrever após uma visão geral. Não vou mergulhar na parte técnica, mas darei as informações necessárias para direcionar você a tomar uma decisão consciente de qual estratégia mais de adequa à sua necessidade.

Opção 1: AWS AppStream2.0

appstream2
AWS AppStream 2.0 é um serviço de streaming de aplicações de desktop, acessível de qualquer navegador web com suporte a HTML5. O serviço é totalmente gerenciado pela AWS, o que abstrai a necessidade de planejar, implantar, gerenciar ou atualizar infraestrutura de streaming de aplicações.
appstreamtopo
Uma grande vantagem dessa arquitetura é a elasticidade que a AWS oferece. Você configura o stack da sua aplicação e a cobrança pelo serviço de streaming é por hora.

Estimativa de custo por usuário:

Se você possui 10 usuários e eles passam 4 horas por dia acessando sua aplicação, você será cobrado por 800 horas (80 horas mensais por usuário X 10 usuários). O custo por usuário, considerando a menor instância, é de $0,10/hora + $4,19/mês.Neste cenário o custo mensal para os 10 usuários seria de $121,9, o equivalente a $12,19/usuário/mês.

Esta opção torna-se ainda mais interessante caso seus usuários passem poucas horas por dia dentro da sua aplicação, ou até mesmo acessem seu software apenas alguns dias do mês.

Logicamente este valor é apenas do serviço AppStream. Você continuará precisando de instâncias para hospedar sua aplicação e banco de dados.

Pontos positivos:

  • Elasticidade
  • Possibilidade de integração com Domain Controller do cliente.
  • Acesso via navegador com HTTPS.
  • Protocolo de alto desempenho para streaming.

Pontos de atenção:

  • Latência deve ficar entre 100ms e 250ms. Virginia <> SP geralmente fica abaixo de 200ms.
  • Preço em Dólar.
  • Se seu usuário ficar com sua aplicação aberta 24 horas por dia, você será bilhetado por 24 horas.

Opção 2: Microsoft RemoteDesktop/RemoteApp

remoteapp
Com a tecnologia RemoteDesktop/RemoteApp é possível entregar aplicações através de sessões de Terminal Service do Windows ou simulando um acesso “nativo” pelo RemoteApp. Esta talvez seja a solução mais “simples” e rápida entregar seu software desktop na nuvem.
captura-de-tela-2017-08-14-c3a0s-18-06-29
Outra vantagem é que essa solução, por ser mais tradicional, pode ser implementada em qualquer provedor de nuvem nacional. Isso possibilita menor latência e, por consequência, melhor experiência para seus clientes.

Estimativa de custo por usuário:

Considerando uma infraestrutura mínima de Domain Controller + servidores de RDP + licenciamento, o custo por usuário gira em torno de R$60,00/mês.

Pontos positivos:

  • User-Friendly
  • Possibilidade de integração com Domain Controller do cliente.
  • Integração com diretórios de rede e impressoras locais.

Pontos de atenção:

  • Acesso depende do cliente RDP, ou seja, não roda diretamente pelo navegador.

Opção 3: Go-Global

image52
Go-Global é uma tecnologia da empresa GraphOn desenvolvida para possibilitar a entrega de aplicações Desktop pela Web ou através de um cliente, similar ao RemoteApp. A principal vantagem do Go-Global é o protocolo altamente otimizado para streaming, exigindo menos banda de internet do que o Remote Desktop. Como curiosidade, a TOTVS utiliza o Go-Global para entregar seu ERP client-server a partir da sua nuvem OpenStack.

A arquitetura é muito similar ao RemoteDesktop/RemoteApp, com a vantagem de ser possível acessar as aplicações diretamente pelo navegador.

Estimativa de custo por usuário:

O licenciamento do Go-Global é anual, sendo necessário um pagamento upfront, ou seu provedor de nuvem pode mensalizar isso para você. Cada licença custa em torno de R$600,00/ano. Considerando uma infraestrutura mínima de Domain Controller + servidores Go-Global + licenciamento, o custo por usuário gira em torno de R$90,00/mês.

Pontos positivos:

  • Acesso via navegador com HTTPS.
  • Protocolo de alto desempenho para streaming.

Pontos de atenção:

  • Compra da licença exige upfront

Qual é a melhor opção para meu software?

Após ter participado de algumas dezenas de migrações o melhor conselho que posso te dar é: Faça testes!

Sua aplicação exige integração com impressoras locais ou dispositivos USB? Então você terá mais sucesso com o RemoteDesktop ou ou RemoteApp.
O link de internet dos seus clientes é ruim? Então o Go-Global é uma boa opção.
Seus clientes passam poucas horas por dia acessando seu sistema (ou nem acessam diariamente)? Então o AppStream terá o menor custo para você.

Faça testes e veja qual solução faz mais sentido para seu negócio.