![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Durante meu tempo na Palantir, passei um tempo significativo implantando nosso software em ambientes de nuvem e também uma boa parte do tempo implantando nosso software em ambientes locais (on-prem) (incluindo começar uma equipe fazendo exatamente isso). Percebi que, apesar da preferência comum pela implantação em nuvem, ainda há méritos na implantação no local.
A mudança da computação local para a computação em nuvem
Nos últimos anos, o cenário de TI tem favorecido cada vez mais a computação em nuvem, impulsionado pela flexibilidade das ofertas de Infraestrutura como Serviço (IaaS) e Plataforma como Serviço (PaaS). O mercado global de computação em nuvem cresceu de US$ 24,63 bilhões em 2010 para US$ 156,4 bilhões em 2020, e essa tendência continua e está prevista para ultrapassar US$ 1 trilhão até 2028. Essa ascensão meteórica é alimentada tanto pela nova demanda de computação pelo mundo, mas também pela migração de fluxos de trabalho locais para a nuvem.
Há boas razões para essa mudança, a nuvem permite o rápido provisionamento de recursos, redundância geográfica e uma mudança de despesas de capital (CapEx) para despesas operacionais (OpEx). No entanto, acredito que há certos cenários em que o uso de infraestrutura on-prem, particularmente onde requisitos técnicos específicos, como latência determinística, controle em nível de hardware e medidas de segurança rigorosas, são primordiais.
Antes de nos aprofundarmos na comparação entre configurações de nuvem e configurações locais, vamos explorar como cada implantação geralmente é configurada.
Configuração Canonical On-Prem
Uma configuração típica no local envolve um ambiente totalmente controlado onde a empresa gerencia todas as camadas da pilha de tecnologia. Isso inclui:
Camada Física : Hardware como servidores, matrizes de armazenamento (SAN/NAS) e equipamentos de rede (roteadores, switches, firewalls). Você também precisa de um data center para executar seus servidores.
Camada de virtualização : geralmente implementada usando hipervisores como VMware vSphere, Microsoft Hyper-V ou alternativas de código aberto como KVM, fornecendo recursos virtualizados e isolamento.
Armazenamento e computação : gerenciados diretamente, geralmente otimizados para cargas de trabalho específicas com configurações personalizadas (por exemplo, níveis de RAID, mecanismos de cache).
Rede : controle total sobre protocolos de rede, roteamento e políticas de segurança, permitindo QoS (Qualidade de Serviço) ajustado e minimizando a latência.
Configuração da Nuvem Canônica
Em uma configuração típica de nuvem, a infraestrutura é abstraída e gerenciada pelo provedor de nuvem, que oferece:
Infraestrutura virtualizada : instâncias de computação, redes virtuais e armazenamento são provisionados por meio de APIs. Tecnologias nativas da nuvem, como Kubernetes e arquiteturas sem servidor, são aproveitadas para orquestração e dimensionamento.
Serviços gerenciados : bancos de dados (por exemplo, Amazon RDS, Google Cloud SQL), data lakes, serviços de IA/ML e outras ferramentas de análise avançadas são oferecidos como serviços gerenciados, reduzindo a sobrecarga operacional.
Arquitetura multilocatário : os recursos geralmente são compartilhados entre vários locatários, com a virtualização e a conteinerização fornecendo isolamento.
Comparação
Escala e velocidade : A nuvem se destaca em escala elástica, facilitada por mecanismos de escala horizontal, como grupos de escala automática e funções sem servidor. A infraestrutura local requer planejamento cuidadoso de capacidade e investimento em hardware físico, geralmente envolvendo escala vertical. Se você é uma start-up que não pode esperar 9 meses por uma nova computação, a nuvem é o caminho a seguir. No entanto, se você é uma grande empresa com capacidade de prever a carga de computação no próximo ano, então o local pode ser uma opção viável.
Latência: As configurações locais podem atingir baixa latência determinística devido à proximidade de servidores e controle direto sobre caminhos de rede. Para aplicativos sensíveis à latência (por exemplo, negociação de alta frequência, análise em tempo real), isso pode ser crítico. Ambientes de nuvem, embora otimizados para baixa latência por meio de recursos como AWS Direct Connect ou Google Cloud Interconnect, podem introduzir latência variável devido a fatores como congestionamento de rede (problema de vizinhos barulhentos) e sobrecarga de virtualização. Portanto, no caso em que latência previsível e fluxos de trabalho de baixa latência são críticos para o seu negócio, as configurações locais podem não ser uma má ideia!
Custo: Os modelos de preços de nuvem (pague conforme o uso, instâncias reservadas) fornecem flexibilidade, mas podem se tornar caros para cargas de trabalho sustentadas e de alto volume, particularmente com altos custos de saída de dados. Soluções locais, embora exijam CapEx inicial significativo para aquisição de hardware, podem oferecer menor custo total de propriedade (TCO) ao longo do tempo, especialmente para cargas de trabalho previsíveis e de alta utilização. Os modelos de nuvem podem ficar caros, o Dropbox economizou US$ 16,8 milhões em 2016 quando moveu a maior parte de seu armazenamento da AWS para seus próprios data centers. Aqui está um artigo que se aprofunda em como estar no local pode economizar $$ .
Expertise: Ambientes on-prem exigem profundo conhecimento em manutenção de hardware, engenharia de rede e administração de sistemas. Por outro lado, ambientes de nuvem descarregam grande parte do gerenciamento de infraestrutura para o provedor, permitindo que as equipes se concentrem no desenvolvimento e implantação de aplicativos, geralmente usando práticas de DevOps e ferramentas de Infraestrutura como Código (IaC) como Terraform ou CloudFormation. SREs e Sys-admins são uma raça rara hoje em dia e você provavelmente precisará de uma parte considerável da computação para justificar a contratação de uma equipe dessas pessoas para manter e operar uma configuração on-prem (e não se esqueça de que você precisa de uma rotação sustentável de plantão!)
Segurança: As configurações locais fornecem controle completo sobre as configurações de segurança, desde medidas de segurança física até segmentação granular de rede e protocolos de criptografia. Esse controle é essencial para atender a padrões de conformidade específicos (por exemplo, PCI-DSS, HIPAA). Em contraste, os ambientes de nuvem exigem confiança nas medidas de segurança do provedor, embora recursos como Nuvens Privadas Virtuais (VPCs), hardware dedicado (por exemplo, AWS Outposts) e chaves de criptografia gerenciadas pelo cliente possam atenuar algumas preocupações. Se você estiver executando fluxos de trabalho que exijam esses controles e protocolos de segurança, a implantação local pode ser a única maneira de fazer isso. Caso contrário, uma segurança mais rígida pode ser uma consideração! No entanto, acho que os provedores de nuvem atuais estão se adaptando e têm ofertas que atendem a alguns desses padrões (por exemplo, AWS GovCloud ).
Conclusão
Embora a computação em nuvem ofereça flexibilidade, escalabilidade e acesso inigualáveis a serviços gerenciados avançados, as soluções on-premise ainda são indispensáveis em cenários que exigem baixa latência, alta segurança e controle total sobre configurações de hardware e software. À medida que o cenário de TI evolui, a decisão entre nuvem e on-prem deve ser guiada pelos requisitos técnicos e comerciais específicos, garantindo que a infraestrutura escolhida esteja alinhada com os objetivos estratégicos da organização, e você pode usar os fatores acima e as comparações para fazer uma escolha mais informada sobre qual configuração é melhor para você! Boa sorte!