Principais passos para ir do On-Premises para o ambiente nuvem
Para quem não compreender o termo, On-Premises, traduzido literalmente, significa "No Local" e é exatamente isso. Software On-Premises são aplicações que rodam no ambiente local da empresa, em seu próprio servidor ou data-center (seja na empresa ou contratado em alguma empresa). O principal entendimento aqui é que nessa abordagem, diferente da nuvem (cloud), toda a infraestrutura para suportar as aplicações precisa ser mantida pela empresa (nós conhecemos o hardware).
Quando falamos em ir para cloud, é importante avaliar se esse movimento faz sentido para a empresa. O grande ganho que temos em sair do On-Premises para Cloud é a capacidade de não termos de nos preocupar com o hardware fisico e navegarmos em uma infinidade de recursos do catalogo da nuvem, mas isso faz sentido se o negócio ou o software exige isso. Veja o exemplo, um software para uma Lan House, ou um mercado (que não tem filiais ou outras unidades), que possui número fixo de usuários, já possui servidores próprios e possui uma equipe de TI ou alguma empresa que atende manutenções e incidentes, pouco ira flutuar ou gerar preocupações com hardware. Claro, estou trazendo um cenário assumindo que a empresa está confortável com isso, pode ocorrer dessa empresa não estar satisfeita com a capacidade atual da infraestrutura ou da constante dor de cabeça com servidores. Enfim, é necessário analisar principalmente a estratégia da empresa quando pretendemos tomar a decisão de ir ou não para nuvem. Nesse artigo vou assumir que uma pequena empresa decidiu ir para nuvem, o movimento está conectado com a estrategia. E ai, por onde começar?
O "Assessment"
Antes de sair migrando qualquer solução para a nuvem é importante entender alguns pontos principais:
- As versões de software que utilizam, são suportadas nos provedores de nuvem que estou avaliando?
- Os tipos de banco de dados que utilizo, são atendidos pelo provedor de nuvem?
- Entre as versões que utilizo de software e meus bancos de dados, algum provedor pode me oferecer benefícios?
- As licenças que tenho, consigo utilizar na nuvem?
- O provedor que estou avaliando consegue me apoiar na migração?
- Existe alguma tecnologia no provedor que estou avaliando para me permitir migrar "AS-IS"? (sim, começamos pelo AS-IS, evoluir vem depois)
Escolhendo o serviço de nuvem
Com as informações do Assessment em mãos, vamos começar algumas negociações com os provedores de nuvem e literalmente colocar as cartas na mesa para entender qual deles vai nos ajudar com 3 principais pontos:
- Migrar "AS-IS" com pouco ou nenhum esforço de adequação na minha estrutura e em meus softwares
- Melhor custo
- Melhores benefícios no médio e longo prazo (sim, se estamos indo para nuvem a ideia é usar o que tem de melhor para reduzir custos utilizando os recursos da forma mais proveitosa possível - queremos dormir sabendo que se tenho zero usuários em determinado horário, não estarei pagando nada por esse horário)
Execução
Nesse ponto vamos começar a olhar para aspectos como PaaS, SaaS e IaaS e o que significa cada um deles, você pode conferir aqui: https://www.ibm.com/br-pt/cloud/learn/iaas-paas-saas
Categorias de computação em nuvem (Fonte)
Aqui já escolhemos o provedor e estamos confortáveis com o que nos foi oferecido, então precisamos começar a migrar nossa infra estrutura e precisamos escolher entre 2 abordagens:
- Vou migrar 100% e virar minha operação?
- Para pequenas estruturas, essa abordagem é bem adequada pois gera menor impacto e é fácil cancelar caso o provedor não atenda em alguma etapa
- Vou migrar aos poucos?
- Para estruturas maiores, é importante que seja feito por partes e avaliar recursos para conectar a rede da cloud com meu on-premises também deve ser considerado no assessment se esse for o caso (existem recursos de VPN tradicionais e também recursos como o interconnect (aqui usei google cloud, mas todos os provedores possuem algo semelhante).
- Nessa etapa é onde mais utilizaremos o conceito de IaaS.
AS-IS concluído
Após a migração da estrutura atual, como ela é, começamos a olhar para os benefícios identificados no Assessment para melhorar nosso custo e utilizar melhor nossos recursos de hardware e essa etapa é quase infinita, então vou destacar alguns pontos aqui que podem ser oportunidades para alguns cenários bem comuns:
- Aplicações com utilização variável (dependendo do horário pode ter mais ou menos acesso)
- Nesses casos as soluções em container podem colaborar muito pois conseguiremos escalar horizontalmente a medida que precisamos de recursos. Aqui cabe avaliar soluções como kubernetes e ecs
- Pequenas unidades de processamento, jobs, crons, scripts agendados.
- Soluções como azure functions ou aws lambdas
- Bancos de dados podemos deixar na mão do provedor
- Soluções como Oracle Enterprise ou SQL Server