Quando o SQL não é suficiente: controles para novos data centers maciços

Autor: Judy Howell
Data De Criação: 3 Julho 2021
Data De Atualização: 1 Julho 2024
Anonim
Quando o SQL não é suficiente: controles para novos data centers maciços - Tecnologia
Quando o SQL não é suficiente: controles para novos data centers maciços - Tecnologia

Contente



Leve embora:

Desenvolvedores e engenheiros precisam trabalhar continuamente para acelerar e melhorar os serviços em plataformas que cresceram muito além de seus arquétipos clássicos da era dos anos 90.

Com todo o burburinho sobre enormes data centers da NSA mantendo bilhões de bits de dados sobre nossas vidas privadas, há uma coisa que não se fala muito, pelo menos na CNN. Isso envolve um problema de engenharia que surgiu junto com a tecnologia em nuvem, big data e os impressionantes centros de armazenamento físico de dados que estão sendo construídos no mundo todo. Então o que é? Bem, não importa quem esteja administrando um dos gigantescos sistemas de TI que executam essas instalações, há necessidade de sistemas de software que ajudem todos esses dados a entrar e sair rapidamente do pipeline. Essa necessidade representa uma das perguntas ou quebra-cabeças de TI mais interessantes que os profissionais enfrentam atualmente.


Como muitos especialistas apontam, a extrema demanda atual por processamento de dados vai muito além das abordagens tradicionais. Simplificando, o uso de estruturas e ferramentas simples de banco de dados, como a interface de consulta SQL, não fornecerá poder ou funcionalidade de processamento suficiente para empresas como os sistemas proprietários que se desenvolveram nos últimos anos. Os arquivos das grandes empresas de tecnologia de hoje precisam de uma tecnologia extremamente escalável. Eles precisam de ferramentas de processamento de dados que possam gerar e gerar resultados em um volume muito maior do que o que um único servidor pode facilitar. Eles precisam de soluções que possam ser rapidamente aumentadas para o crescimento, soluções que incluem níveis complexos de inteligência artificial, soluções projetadas para facilitar o gerenciamento por um departamento de TI.

A questão é: como as empresas e agências governamentais conquistam as limitações do caminho tradicional de manipulação de dados? Aqui, veja bem uma opção muito promissora: software que lida com big data e a administração de vários data centers.


Sistema de arquivos do Google: um grande estudo de caso

A tecnologia proprietária usada pelo Google para acessar seus data centers é um dos melhores exemplos de modelos comuns para manipulação de big data e administração de vários data centers. O Google File System (GFS), desenvolvido em 2003, foi projetado para suportar o enorme volume de alterações de alta velocidade nos sistemas de dados que fazem parte da entrada e saída de tantas informações novas em uma única plataforma, à medida que milhões de usuários clicam em o mesmo tempo. Os especialistas se referem a isso como um sistema de arquivos distribuído e usam o termo "armazenamento de objetos de dados" para descrever essas técnicas altamente complexas. Na realidade, no entanto, esses termos nem sequer arranham a superfície em termos que descrevem o que está funcionando.

Individualmente, os recursos e componentes que compõem um sistema como o GFS podem não ser mais inovadores, mas são complexos. Muitas delas foram abordadas neste site como inovações relativamente novas que fazem parte das bases de um novo sistema de TI global, sempre ativo e sempre conectado. Coletivamente, um sistema como o GFS é muito mais do que a soma de suas partes: é uma rede amplamente invisível, mas extremamente complexa, repleta de dados individuais sendo lançados dessa maneira e em um processo que, se totalmente modelado visualmente, pareceria um caos. Entender para onde estão indo todos os dados exige muita energia e comprometimento, como aqueles que administram as estações de batalha desses sistemas prontamente admitem.

"Existem muitos detalhes que têm um impacto profundo em áreas de usabilidade - incluindo fragmentação externa e interna, atualizações baseadas em log versus atualizações no local e níveis de consistência da transação - para resumir a maneira como funciona em uma única frase sucinta ", diz Momchil Michailov, CEO e cofundador da Sanbolic.

"Um sistema de arquivos distribuídos é um agregador distribuído de espaços de nomes locais e espaços livres dos nós participantes, ou um sistema de arquivos local que roda em vários nós acessando o armazenamento compartilhado com a ajuda de um componente do gerenciador de bloqueio distribuído", afirmou ele.

Kerry Lebel é gerente sênior de produtos da Automic, uma empresa conhecida por suas plataformas de automação escaláveis. Lebel diz que, embora seja preciso descrever um DFS como um sistema que simplesmente atribui cargas de trabalho a servidores conectados a peças de hardware de baixo custo, isso não conta a história toda.

Sem erros, sem estresse - seu guia passo a passo para criar software que muda vidas sem destruir sua vida

Você não pode melhorar suas habilidades de programação quando ninguém se importa com a qualidade do software.

"O que você acaba perdendo é todo o fator legal de quão eles fazem o que fazem ", disse Lebel.

Quando você se afasta dos detalhes técnicos e apenas pensa na idéia básica por trás do sistema de arquivos distribuídos, o "fator interessante" de que Lebel fala é evidente. Esses sistemas de manipulação de big data substituem os antigos sistemas de arquivos / pastas por estruturas que envolvem não apenas vários sistemas de entrega, mas uma abordagem "orientada a objetos", onde um grande número de unidades é rastreado aqui e ali para evitar gargalos.

Pense, por exemplo, em um sistema de rodovias de última geração, onde centenas de milhares de carros não são canalizados apenas por uma estrada de várias linhas, mas são recolhidos em pequenos trechos de folhas de trevo ou afluentes, que são girados e enviados para seus destinos em uma variedade de desvios. Do céu, tudo parece tão coreografado quanto um relógio suíço. Esse é o tipo de modelo visual que os engenheiros observam quando inventam novas maneiras de rotear as informações em torno das limitações, "chutando-as" para diferentes níveis de um esquema de contenção de dados em várias camadas. Deixando de lado as especificações, este é o objetivo de nível superior de um sistema de manipulação: manter esses objetos independentes com seus metadados incorporados se movendo na velocidade máxima para onde eles precisam estar, alcançar metas de consistência, satisfazer um usuário final ou mesmo para informar uma observação ou análise de nível superior.

Um olhar sobre a tecnologia principal

Um artigo de Sean Gallagher publicado na Ars Technica divide o design do GFS em partes um pouco mais gerenciáveis ​​e sugere o que está por baixo da planilha no Google.

O GFS começa com um modelo redundante e tolerante a falhas para leitura e gravação de dados. A idéia aqui é que, em vez de gravar uma atualização específica em uma única unidade, os novos sistemas gravam pedaços de dados em vários destinos. Dessa forma, se uma gravação falhar, outras permanecerão. Para acomodar isso, um componente de rede primário faz o manuseio de dados para outras unidades subordinadas, agregando novamente os dados quando um cliente "solicita". Tudo isso é possível graças a um protocolo de metadados que ajuda a identificar onde determinadas atualizações e resultados de transmissão estão dentro do sistema maior.

Outro aspecto muito importante disso é como esses sistemas com duplicação pesada reforçam a consistência dos dados. Como observa Gallagher, o design do GFS sacrifica alguma consistência enquanto ainda "reforça a atomicidade" ou protege o princípio de como os dados são atualizados em várias unidades de armazenamento para corresponder ao longo do tempo. O "modelo de consistência relaxada" do Google parece seguir a teoria essencial do modelo BASE, que fornece mais flexibilidade em troca de um prazo mais longo para a aplicação da consistência.

Como outros grandes sistemas conseguem isso?

"Quando uma escala suficientemente grande é alcançada, inconsistências ou corrupções nos dados se tornam inevitáveis", diz Michailov. "Portanto, um objetivo principal dos sistemas de arquivos distribuídos deve ser a capacidade de realizar o maior número possível de operações na presença de corrupção, fornecendo métodos eficientes para lidar com a corrupção simultaneamente". Michailov também menciona a necessidade de preservar o desempenho através da implementação cuidadosa da redundância.

"Por exemplo, a criação de metadados (dados sobre os dados) em cada disco permite que o disco reconstrua sua estrutura de dados adequada se sua cópia espelhada estiver corrompida", afirmou Michailov. "Além disso, os níveis de RAID podem ser usados ​​para combater falhas de armazenamento nos níveis do agregador do sistema de arquivos ou do gerenciador de volumes compartilhados".

Ao discutir outro modelo de consistência, Lebel se concentra em um sistema chamado HDFS (Hadoop Distributed File System), que ele chama de "padrão de fato do setor".

No HDFS, diz Lebel, cada bloco de dados é replicado três vezes em nós diferentes e em dois racks diferentes. Os dados são verificados de ponta a ponta. As falhas são relatadas ao NameNode, um manipulador de dados que se livra dos blocos corrompidos e cria novos.

Tudo isso suporta os tipos de "dados limpos" que são tão importantes para a integridade de um desses sistemas de dados em massa.

Mantendo um DFS

Outro olhar muito diferente sobre o GFS vem de um artigo de outubro de 2012 do escritor da Wired Steven Levy. É muito mais breve caracterizar a abordagem de software para o manuseio coletivo de rede descendente do Google.

"Ao longo dos anos", escreve Levy, "o Google também construiu um sistema de software que permite gerenciar seus inúmeros servidores como se fossem uma entidade gigante. Seus desenvolvedores internos podem agir como mestres de marionetes, enviando milhares de computadores para executar tarefas tão facilmente quanto executar uma única máquina ".

Isso também envolve toneladas de manutenção cibernética e ambiental, desde equipes de teste dedicadas que tentam "quebrar" os sistemas de servidores até temperaturas cuidadosamente controladas nos corredores da criptografia de dados.

Levy também menciona tecnologias suplementares para o GFS, como o MapReduce, uma ferramenta de aplicativo em nuvem, e o Hadoop, um mecanismo de análise que compartilha alguns princípios de design com o GFS. Essas ferramentas têm seu próprio impacto sobre a forma como os sistemas de manipulação de grandes centros de dados são projetados e o que provavelmente surgirá no futuro. (Saiba mais sobre essas tecnologias em The Evolution of Big Data.)

Michailov acredita que o MapReduce tem potencial para suportar sistemas cada vez maiores de data center e fala sobre uma "implementação única" de sistemas de arquivos compartilhados e agregados que podem "manter os nós de nomes de um sistema de arquivos agregados em um cluster compartilhado com SSDs para armazenamento . "

Por sua parte, Lebel vê uma mudança do processamento em lote (o método suportado pelo Hadoop) para o processamento em fluxo, o que aproximará essas operações de dados em tempo real.

"Quanto mais rápido pudermos processar os dados e disponibilizá-los para os tomadores de decisão de negócios ou para nossos clientes, maior será a vantagem competitiva", diz Lebel, que também sugere a substituição da terminologia de processamento acima por termos focados no usuário final. Ao pensar em atividades "síncronas" ou atividades sincronizadas com ações do usuário final e atividades "assíncronas" que são mais flexíveis em termos de implementação, Lebel diz que as empresas podem usar SLAs e outros recursos para definir como um determinado sistema de serviço funcionará. .

Em certo sentido, tudo isso se resume a que desenvolvedores e engenheiros precisam trabalhar continuamente para acelerar e melhorar os serviços em plataformas que cresceram muito além de seus arquétipos clássicos da era dos anos 90. Isso significa examinar criticamente a maquinaria dos dados e romper os gargalos de maneiras que apóiam não apenas uma população em crescimento, mas também a mudança exponencial que ocorre em uma velocidade que os especialistas estão chamando de "a próxima revolução industrial". É provável que aqueles que mais se destacam nessas frentes acabem dominando os mercados e as economias do futuro.