Pular para o conteúdo principal

Computação em nuvem e arquitetura para cientistas de dados

Descubra como cientistas de dados usam a nuvem para colocar soluções em produção ou ampliar o poder de computação.
Atualizado 17 de set. de 2026  · 13 min lido

Explorar com IA

ChatGPTClaudePerplexity

Ciência de dados em escala além da máquina local

Ciência de dados é um termo que representa a interseção de várias áreas importantes.

Eu acredito que existem pilares de expertise em ciência de dados, a saber:

  • Domínio de negócio
  • Probabilidade e estatística
  • Ciência da computação e programação de software
  • Comunicação escrita e verbal

O terceiro pilar trata de entender ciência da computação e programação de software.

Embora isso nem sempre fique claro para quem está começando, essa área também costuma incluir temas como devops, computação em nuvem, pipelines de dados, engenharia de dados, experiência em consultar diferentes tipos de banco de dados, criação e implantação de soluções de software em produção e por aí vai.

Além disso, cientistas de dados precisam desenvolver boas habilidades de programação, mas talvez não tenham a mesma formação ou experiência em ciência da computação, conceitos de programação ou arquitetura e infraestrutura de software de produção que engenheiros de software experientes. Quando alguém começa em ciência de dados, geralmente instala Python e/ou R no computador local e passa a escrever e executar código em um Ambiente de Desenvolvimento Integrado (IDE) local, como o Jupyter Notebook ou o RStudio.

Com a popularização da análise avançada e o crescimento dos times de data science, aumenta a necessidade de soluções colaborativas para entregar insights, análises preditivas, sistemas de recomendação e muito mais. Ferramentas de pesquisa reproduzível e notebooks combinadas com controle de versão fazem parte da solução de colaboração, assim como o uso de plataformas e ferramentas online colaborativas em nuvem.

As necessidades de colaboração também envolvem quem está fora dos times de data science, especialmente porque ciência de dados é aplicada para alcançar objetivos de negócio. Assim, os stakeholders de um projeto de data science podem incluir executivos, líderes de áreas e outros profissionais de dados, como arquitetos, engenheiros de dados, analistas e assim por diante.

Este artigo busca dar ao cientista de dados uma visão do que existe além do laptop ou desktop local, especialmente no contexto de colocar soluções de ciência de dados em produção ou de ampliar seu poder e capacidades de computação. Dependendo da sua experiência com esses assuntos, o conteúdo deve ser relevante para cientistas de dados de todos os níveis.

Vamos nessa!

Afinal, o que é a nuvem?

Ah, a famosa e ainda muitas vezes mal compreendida nuvem. Além de soar hipotética e abstrata, a nuvem é, na verdade, bem concreta no que se propõe a fazer. Vamos definir alguns conceitos-chave antes de entrar no conceito de nuvem.

Computadores conectados que compartilham recursos formam uma rede, sendo a própria internet o maior e mais conhecido exemplo de rede de computadores. Redes domésticas, como uma Rede Local (LAN) ou um Wi‑Fi com um SSID específico, onde vários computadores estão conectados, são outro exemplo — só que bem menores. Os recursos aqui podem incluir páginas da web, mídia, armazenamento de dados, servidores de aplicativos, impressoras etc.

Computadores em uma rede geralmente são chamados de nós e se comunicam entre si usando protocolos bem definidos, como HyperText Transfer Protocol (HTTP), Transmission Control Protocol (TCP)/Internet Protocol (IP) e assim por diante. Essas comunicações podem servir para status, monitoramento, requisição/resposta e muitos outros usos.

Além disso, muitos computadores não ficam no local da empresa; ou seja, aplicativos e dados costumam ser hospedados em computadores localizados em um data center. Esses locais oferecem toda a infraestrutura necessária — energia, refrigeração, segurança, proteção contra desastres etc. — para manter e operar com sucesso um grande número de computadores acessíveis às empresas ou ao público em geral.

Como computação e armazenamento ficaram relativamente baratos, muitas soluções hoje usam vários computadores trabalhando em conjunto, o que torna a escalabilidade menos custosa do que comprar uma única máquina superpotente e cara. Parte desse "trabalhar em conjunto" é garantir que a solução continue rodando automaticamente mesmo se um dos computadores falhar e que o sistema seja capaz de escalar automaticamente para lidar com a carga imposta.

Twitter, Facebook, Instagram, Snapchat, Netflix e YouTube são ótimos exemplos de aplicações em nuvem que precisam escalar dessas duas formas. É muito raro ver essas aplicações "caírem" completamente e elas conseguem atender literalmente milhões de usuários por dia.

Quando um conjunto de computadores está conectado à mesma rede e trabalha em conjunto para cumprir a mesma tarefa (ou conjunto de tarefas), chamamos isso de cluster. Um cluster pode ser visto como um único computador, mas oferece grandes ganhos em desempenho, disponibilidade e escalabilidade em comparação com uma única máquina. Esses benefícios serão discutidos mais adiante.

Os termos computação distribuída ou sistemas distribuídos se referem a softwares e sistemas escritos para aproveitar clusters na execução de tarefas específicas, como Hadoop, Spark e MapReduce.

Por fim, vamos à definição de nuvem. Além dos recursos compartilhados descritos acima, outros recursos importantes podem incluir servidores, serviços, microsserviços, redes e assim por diante. Uma nuvem descreve a situação em que uma única parte é dona, administra e gerencia um grupo de computadores em rede e recursos compartilhados, normalmente para hospedar e fornecer soluções baseadas em software. Dada essa definição, embora a internet seja definitivamente uma rede, ela não é uma nuvem, já que não pertence a uma única entidade.

Para se aprofundar em computação em nuvem e nos conceitos essenciais de criação de software escalável e arquiteturas de big data, confira minha série detalhada em três partes sobre o tema.

Ciência de dados na nuvem

Até aqui, já falamos de computação em nuvem e conceitos relacionados em um nível que deve ajudar a visualizar as ideias envolvidas. Se sua exposição a arquitetura e engenharia de software até agora se limita ao desenvolvimento local, você pode estar se perguntando por que isso é relevante para cientistas de dados. É o que veremos a seguir.

Se você conhece o processo de ciência de dados, sabe que boa parte do fluxo de trabalho costuma acontecer no computador local do cientista de dados. Nele, estão instaladas as linguagens preferidas, como Python e R, além do IDE de escolha. A outra parte essencial da preparação do ambiente é instalar os pacotes relevantes, seja via um gerenciador como o Anaconda, seja instalando pacotes individuais manualmente.

Com o ambiente configurado e pronto, começa o fluxo de trabalho típico de ciência de dados, tendo os dados como principal insumo. As etapas iterativas geralmente incluem:

  • Coletar dados
  • Analisar, fazer parsing, tratar, transformar e higienizar os dados
  • Analisar e minerar os dados, como Análise Exploratória (EDA), estatísticas descritivas, ...
  • Criar, validar e testar modelos, como preditivos, de recomendação, ...
    • Observação: se não houver modelagem, então identificar padrões ou tendências, gerar insights acionáveis, extrair informações úteis, criar relatórios e assim por diante. Aqui, vamos considerar ambos os casos como "criar um entregável".
  • Ajustar e otimizar modelos ou entregáveis

Em alguns casos, porém, não é prático ou desejável executar todas as tarefas de ciência de dados ou de big data no ambiente local. Veja alguns dos principais motivos:

  • Os conjuntos de dados são grandes demais e não cabem na memória (RAM) do ambiente local para treinar modelos ou fazer outras análises
  • O poder de processamento (CPU) do ambiente local não consegue executar as tarefas em um tempo razoável — ou simplesmente não consegue executar
  • O entregável precisa ser implantado em um ambiente de produção e, possivelmente, incorporado como componente de um aplicativo maior (por exemplo, aplicativo web, plataforma SaaS, ...)
  • É preferível usar uma máquina mais rápida e potente (CPU, RAM, ...) sem sobrecarregar o computador local

Nessas situações, há várias opções. Em vez de usar a máquina local do cientista de dados, costuma-se transferir o trabalho computacional para uma máquina on-premise ou para uma máquina virtual na nuvem (por exemplo, AWS EC2, AWS Elastic Beanstalk). A vantagem de usar máquinas virtuais — e clusters com autoescalonamento — é que você pode iniciá-las e descartá-las conforme necessário e ajustá-las para atender às suas demandas de computação e armazenamento.

No caso de implantar entregáveis em produção como parte de um aplicativo maior ou de um pipeline de dados, existem muitas opções e desafios a considerar. Um aprofundamento nisso foge ao escopo deste artigo.

Além de soluções e ferramentas de ciência de dados em nuvem ou de produção desenvolvidas sob medida, há muitas ofertas de nuvem e serviços de fornecedores bem conhecidos, que costumam funcionar muito bem com ferramentas de notebook como o Jupyter. Em geral, são disponibilizadas como APIs de big data, machine learning e inteligência artificial, e incluem opções como a plataforma de Artificial Intelligence da AWS, Databricks, Google Cloud Platform Datalab e Machine Learning, entre muitas outras.

Para uma discussão muito mais detalhada sobre ciência de dados e análise avançada em produção versus desenvolvimento, incluindo recomendações de linguagens, pacotes, frameworks e plataformas, confira minha série em três partes sobre o tema. Minha série sobre arquiteturas escaláveis de software e big data também complementa muito bem o assunto de computação em nuvem.

Arquitetura de software e atributos de qualidade

Arquitetura de software envolve projetar um sistema, geralmente em nuvem, que represente um produto, serviço ou sistema computacional orientado a tarefas. Você também pode ouvir os termos arquitetura de sistema ou arquitetura de software, que, em essência, significam a mesma coisa.

Parte do trabalho de arquitetura é escolher as linguagens e tecnologias adequadas (o famoso stack), componentes, pacotes, frameworks, plataformas e assim por diante. Isso exige muita análise, especialmente em relação ao propósito do sistema e aos trade-offs importantes. Essa dimensão da arquitetura demanda habilidades, conhecimento e experiência acumulados ao longo do tempo por profissionais como arquitetos de software.

Outro aspecto crítico de arquitetura e engenharia de sistemas e software são os chamados atributos de qualidade ou requisitos não funcionais. Isso é especialmente verdadeiro para soluções de produção no mundo real.

Requisitos não funcionais normalmente incluem itens como:

  • Disponibilidade
  • Desempenho
  • Confiabilidade
  • Escalabilidade (vertical e horizontal)
  • Extensibilidade
  • Usabilidade
  • Modularidade
  • Reutilização

Neste artigo, você terá uma visão geral de quatro dos mais importantes: disponibilidade, desempenho, confiabilidade e escalabilidade. Observe que a discussão é de alto nível e não entra em definições ou metas baseadas em métricas para esses atributos.

Disponibilidade é, como o nome sugere, a capacidade de o sistema estar disponível — ou seja, funcionando corretamente. Isso pode significar muitas coisas e depende bastante de confiabilidade e escalabilidade. "Funcionando corretamente" quer dizer que o sistema opera como previsto e sempre que for necessário. Pode ser um usuário final tentando usar o sistema (por exemplo, Facebook ou Netflix) ou um conjunto de serviços em nuvem processando dados.

Confiabilidade representa a capacidade de o sistema rodar e funcionar corretamente sem falhas ou erros. Quanto mais tempo o sistema consegue operar assim, mais tolerante a falhas ele é considerado. Como é difícil prever e testar todos os usos e casos extremos com antecedência, alcançar 100% de confiabilidade pode ser muito desafiador. Além disso, falhas acontecem por vários motivos: bugs no código, problemas de ambiente e recursos limitados (CPU, RAM, disco etc.) estão entre os principais.

Desempenho descreve a velocidade com que o sistema executa tarefas — ou, em outras palavras, o tempo que leva para concluir uma tarefa específica. Pense no YouTube: você espera que, ao abrir um vídeo, ele carregue e comece a tocar em um tempo razoável. Quanto mais performático o YouTube for, mais rápido o vídeo carrega e inicia, mais satisfeitos ficam os usuários e menor a chance de abandonarem o aplicativo. O oposto seria um YouTube tão lento que não compensa o uso — felizmente, quase sempre estamos no primeiro cenário.

Por fim, escalabilidade é crítica para certas aplicações e representa a capacidade de um sistema manter um nível de desempenho (aqui, em sentido amplo) mesmo com o aumento da carga. Carga é o número de solicitações simultâneas ao sistema.

Um ótimo exemplo de necessidade de escalabilidade é quando ingressos de um grande show ou de um time popular entram à venda. Dependendo da demanda, o número de requisições simultâneas para comprar ingressos em um site como o Ticketmaster pode chegar às centenas de milhares no instante inicial. Dependendo da capacidade de escalar, o sistema pode ter o desempenho muito degradado — ou até sair do ar. Nenhum desses cenários é bom.

Para lidar com isso, usam-se técnicas de escala vertical (scale up) ou horizontal (scale out). Escalar verticalmente é substituir os dispositivos do sistema por máquinas mais potentes (CPU, mais núcleos, ...) e confiáveis, com mais recursos como memória RAM. Máquinas assim costumam ser caras.

Escalar horizontalmente, por outro lado, usa máquinas de baixo custo como base. Individualmente, não são tão potentes, mas em conjunto dão conta da carga do sistema. Como soluções assim exigem múltiplos computadores, é importante configurar mecanismos automáticos para lidar com cenários em que um ou mais nós falham ou travam (failover) e assim por diante.

Conclusão

Espero que este artigo tenha ajudado a clarear vários pontos essenciais da ciência de dados além do desenvolvimento local e no contexto de soluções reais em produção. Conceitos de computação e arquitetura em nuvem são importantes para quem trabalha com soluções de dados em produção ou precisa de mais poder e recursos de computação.

Fique à vontade para deixar seus comentários abaixo. Se quiser saber mais, siga @innoarchitech no Twitter, assine a newsletter da InnoArchiTech e confira o blog da InnoArchiTech. Você também pode conhecer minha aula de Inteligência Artificial e Machine Learning orientados a objetivos.

Tópicos
Nuvem
Relacionado
Big Data Concept

blog

Como se tornar um arquiteto de dados

Saiba o que faz um arquiteto de dados e como iniciar uma carreira lucrativa nesse nicho em rápida expansão.
Moez Ali's photo

Moez Ali

11 min

blog

As 10 melhores ferramentas de ciência de dados para usar em 2026

As ferramentas essenciais de ciência de dados para iniciantes e profissionais da área para coletar, processar, analisar, visualizar e modelar os dados de forma eficiente.
Abid Ali Awan's photo

Abid Ali Awan

9 min

blog

Bancos de dados NoSQL: O que todo cientista de dados precisa saber

Descubra para que servem os bancos de dados NoSQL, por que os cientistas de dados os utilizam e uma lista dos melhores bancos de dados NoSQL disponíveis.
Zoumana Keita 's photo

Zoumana Keita

12 min

blog

O que é o Shell?

Descubra o que é o Shell e como aprendê-lo pode tornar você um cientista de dados mais eficiente e versátil.

Wendy Gittleson

13 min

Artificial Intelligence Concept Art

blog

Guia de casos de uso em data science

Conheça casos de uso em data science e descubra como aplicar data science em diferentes setores para impulsionar crescimento e a tomada de decisões.
Elena Kosourova's photo

Elena Kosourova

15 min

blog

Contratos de dados desmistificados: Tudo o que você precisa saber

Obtendo escalabilidade em sistemas de dados distribuídos e reduzindo erros.
Mike Shakhomirov's photo

Mike Shakhomirov

11 min

Ver MaisVer Mais