A equipe de suporte de armazenamento da Bloomberg depende de código aberto e SDS

A equipe de suporte de armazenamento da Bloomberg depende de código aberto e SDS

TL, DR: A equipe da Bloomberg Storage Engineering criou armazenamento em nuvem para uso interno que não interfere na infraestrutura e pode suportar a pesada carga de volatilidade comercial durante a pandemia.

Mattew Leonard, ao falar sobre seu trabalho como gerente técnico na equipe de Engenharia de Armazenamento da Bloomberg, costuma usar as palavras “desafiador” e “divertido”. Os desafios surgem do amplo escopo de armazenamento, desde os mais recentes arrays SAN baseados em NVMe até o armazenamento definido por software de código aberto em DevOps. É aqui que começa a “diversão” (veja meu avatar no Habré, Aproximadamente. tradutor).

Leonard e sua equipe de 25 colegas supervisionam mais de 100 petabytes de capacidade e uma nuvem interna para 6000 engenheiros que desenvolvem aplicações para o Terminal Bloomberg, a tecnologia que tornou Michael Bloomberg um bilionário. A equipe projeta, constrói e mantém sistemas de armazenamento para a Bloomberg Engineering.

Tal como o resto da profissão de TI, 2020 foi um ano invulgar para os membros da equipa de Engenharia de Armazenamento, uma vez que a COVID-19 os forçou a trabalhar remotamente. Leonard disse que a pandemia impactou socialmente sua “equipe unida”, à medida que as interações presenciais foram eliminadas, mas a equipe se adaptou muito rapidamente para trabalhar em casa em laptops e videoconferências.

Surpreendentemente, quero dizer que isso não piorou as coisas. Houve um curto período de adaptação - nem todos estavam prontos para trabalhar em casa. Depois de uma ou duas semanas, todos entenderam isso. Conseguimos encontrar maneiras de nos manter ocupados, comprar e atualizar equipamentos e aumentar custos para sustentar a empresa durante esses tempos. Tivemos que ser criativos, mas não nos machucamos

O maior desafio pode ter sido anterior ao pico da COVID-19. Isto deveu-se à volatilidade das negociações no mercado devido a preocupações sobre o impacto da pandemia na economia global. O volume de dados que fluem para os terminais Bloomberg provenientes dos mercados de capitais globais quase duplicou, atingindo 240 mil milhões de informações em alguns dias do final de Março. Este é um teste sério de sistemas de armazenamento.

Quando você duplica instantaneamente seus requisitos de armazenamento em um dia, isso cria problemas interessantes. Conseguimos superar isso e garantir que as equipes de desenvolvimento de aplicativos recebessem o espaço e o desempenho de que precisavam. A maior parte disso tem a ver com a forma como pensamos sobre os sistemas de armazenamento. Hoje não estamos criando nada. Não dizemos: “Usamos o ABC, por isso construiremos a infra-estrutura para o ABC”. Fazemos o que chamamos de “orçamento de dados” com nossas equipes para prever o uso, analisar tendências de uso e desempenho, e também analisamos a segurança. Esse tipo de planejamento, pensamento e due diligence metódica nos permite tomar medidas drásticas em caso de surtos sem suar a camisa. Claro, eu estava nervoso, mas me sentia confortável em estar no meu lugar.

Leonard conversou recentemente com o SearchStorage em detalhes sobre o gerenciamento de armazenamento para empresas orientadas a dados. Ele discutiu o que seria necessário para oferecer uma solução de armazenamento em nuvem privada, com a capacidade de fornecer recursos da AWS aos seus usuários e, ao mesmo tempo, manter quaisquer dados nos data centers da Bloomberg.

Se não houver mais uma pandemia, que dificuldades os engenheiros da Bloomberg terão em gerenciar o armazenamento?

Temos muitas necessidades, estamos simplesmente divididos em direções diferentes. Portanto, precisamos fornecer muitos tipos diferentes de produtos em diferentes níveis de SLA para ajudar nossos desenvolvedores de aplicativos a se concentrarem em suas tarefas, em vez de se preocuparem com o armazenamento em si.

E qual estratégia você segue para isso?

Parte do que estamos tentando fazer é melhorar o desempenho do armazenamento. Pense no modelo AWS em que um engenheiro de desenvolvimento entra, pressiona um botão e, em seguida, “clique” magicamente para obter o tipo de armazenamento certo para resolver seu problema.

Como é a sua infraestrutura de armazenamento?

Como temos um ecossistema muito diversificado e muitos desenvolvedores diferentes, não podemos oferecer um único produto. Temos armazenamento de objetos, arquivos e blocos. São produtos diferentes e oferecemos diferentes tipos de tecnologias para entregá-los. Para bloco usamos SAN. Também temos o SDS, que oferece outra opção de armazenamento em bloco com um conjunto diferente de requisitos de desempenho. Para arquivos usamos NFS. SDS também é usado para armazenamento de objetos. As partes do bloco e do objeto formam uma nuvem privada interna para computação e armazenamento.

Então você não usa armazenamento em nuvem pública?

Isso mesmo. Algumas equipes de desenvolvimento têm permissão para usar nuvens públicas. Mas devido à natureza do nosso negócio, preferimos ter mais controle sobre as coisas que saem das nossas paredes. Então sim, temos nossas próprias nuvens que estão sob nosso controle. São equipamentos localizados em nosso data center sob nossa gestão.

Em nossos data centers, preferimos uma estratégia de vários fornecedores. São grandes fornecedores, mas não diremos quem exatamente (é política da Bloomberg não endossar nenhum fornecedor, Aproximadamente. tradutor).

Você está usando infraestrutura hiperconvergente para construir sua nuvem privada?

Não. Nós, da Bloomberg, estamos escolhendo uma direção em que não caminhamos para a hiperconvergência. Estamos tentando dissociar a computação do armazenamento para que possamos escalá-los de forma independente. A direção que estamos tomando, especialmente com a nossa nuvem, é sermos capazes de separar essas duas entidades. E tudo porque algumas coisas em nosso país exigem cálculos intensivos, enquanto outras exigem armazenamento. Se você escalá-los uniformemente, perderá recursos, não importa dinheiro, ou espaço em data centers, ou comprando capacidade desnecessária. É por isso que gostamos de ter uma interface comum entre as duas entidades, mas que sejam sistemas completamente diferentes e geridos por equipas diferentes.

Que obstáculos devem ser superados para construir uma nuvem privada?

Problema de escala. Como acontece com a maioria das coisas, o diabo está nos detalhes. Quando você pensa em como essas coisas funcionam, como torná-las resilientes, como lidar com a carga operacional, como você se comunica com as equipes de ativos físicos, as coisas ficam um pouco interessantes. O desafio é encontrar uma maneira de tornar tudo um produto escalável e suportável que nossos desenvolvedores de aplicativos gostariam de usar, sendo capazes de enriquecer o conjunto de recursos e, ao mesmo tempo, permanecer na vanguarda do que a nuvem pública está fazendo. E também juntar tudo para que continue funcionando. Este é o nosso principal problema – trabalhamos em todas as áreas do negócio, tentando satisfazer todas as necessidades, mas não ignorando outras necessidades.

Você acha que precisa dos recursos mais recentes disponíveis na AWS e em outras nuvens públicas?

O fato mais engraçado sobre o S3 é que o padrão de vida está em constante mudança, novos recursos estão sempre sendo adicionados. É como um brinquedo novo. Se alguém vir um novo recurso em uma nova versão, ele o deseja. Nem todos os recursos da AWS são aplicáveis ​​em nosso ambiente, por isso é importante e interessante saber o que ajudará os desenvolvedores e como obtê-lo internamente.

Que equipamento de armazenamento você usa?

Utilizamos equipamentos de última geração. Nossa nuvem interna é totalmente baseada em NVMe Flash, o que torna esses sistemas muito poderosos. Isso torna nossas vidas um pouco mais fáceis e também é um recurso interessante para nossos desenvolvedores porque eles não precisam se preocupar com o desempenho do armazenamento.

Para que você usa o armazenamento de objetos?

Temos 6000 desenvolvedores trabalhando em infraestrutura, eles não estão unidos por nenhum caso de uso. Qualquer opção que você possa imaginar, provavelmente a temos no armazenamento de objetos. Algumas equipes o utilizam para armazenamento de arquivamento frio, algumas para transferência de dados e outras para aplicativos transacionais. Todos esses casos de uso exigem diferentes níveis de SLA, então como vocês podem ver, temos diferentes tipos de tráfego, todos os tipos de necessidades para diferentes usuários de nossa infraestrutura. Este não é um caso de uso homogêneo executado em qualquer armazenamento, o que obviamente torna as coisas mais complexas.

Qual a importância do Kubernetes e dos contêineres para você e como isso afeta o armazenamento?

Estamos impulsionando a produtividade do armazenamento para criar uma sensação de nuvem, uma sensação de algo como serviço, onde há um botão para os desenvolvedores acelerarem seu trabalho e removerem a infraestrutura ao longo do caminho.

Nota do editor: 15 de outubro de 2020 estará pronto Curso de vídeo Ceph. Você aprenderá a tecnologia de armazenamento de rede Ceph para usar em seus projetos para melhorar a tolerância a falhas.

Temos três equipes, a primeira é a equipe da API de armazenamento. Eles fornecem acesso programático, endpoints e fluxos de trabalho predefinidos para clientes de desenvolvimento de aplicativos na Bloomberg. Esta é uma equipe de desenvolvedores web full stack, eles usam node.js, python, tecnologias de código aberto, como Apache Airflow, por isso estudam conteinerização e virtualização.

Também temos duas equipes técnicas que realmente movimentam os bits e bytes. Eles estão mais diretamente relacionados ao equipamento. Temos muitos equipamentos e essas equipes não utilizam virtualização e containers.

Estamos tentando acompanhar o que está acontecendo na indústria, estudando os drivers CSI do Kubernetes e também trabalhando em estreita colaboração com a equipe de implementação do Kubernetes na Bloomberg para avaliar se podemos fazer o armazenamento do Kubernetes funcionar de forma consistente com as tecnologias que temos, e temos está funcionando. Usamos SDS para oferecer suporte ao Kubernetes conectado ao armazenamento persistente. Desenvolvemos essa tecnologia com sucesso e as discussões continuam entre as duas equipes sobre como podemos disponibilizá-la para todos os demais funcionários da Bloomberg. Mostramos que isso é perfeitamente possível.

Que outro software de código aberto você usa, principalmente para armazenamento?

Usamos Apache Airflow, HAProxy para limitar o tráfego de aplicativos. Também usamos Ceph, uma plataforma para SDS. Com ele, você pode ter um sistema para comandos, mas fornecer múltiplas interfaces para clientes. Uma das plataformas de virtualização é executada em OpenStack – trabalhamos em estreita colaboração com esta equipe. Temos uma plataforma de virtualização de código aberto que usa a plataforma SDS de código aberto para armazenamento. É engraçado.

Quais tecnologias de armazenamento você está considerando para os próximos dois ou três anos?

Estamos sempre de olho em outras novidades interessantes que estão acontecendo no setor de armazenamento. Isso faz parte do nosso trabalho, não é “aqui está sua SAN, gerencie aqui, e aqui está seu NFS, gerencie ali”. Tentamos comunicar com os nossos clientes, ou seja, por nossos desenvolvedores de aplicativos. Trabalhamos juntos para entender quais problemas eles estão tentando resolver e como isso afetará nossos clientes externos da Bloomberg – os bancos e outros que usam nosso software. E então voltamos ao mundo do armazenamento de dados para encontrar oportunidades que os ajudem a atingir seu objetivo. Como podemos ajudá-los a encontrar a tecnologia de armazenamento certa que se adapte ao seu SLA ou ao que estão tentando fazer? Como temos tantos engenheiros fazendo coisas legais, nunca fica chato.

No momento, estamos procurando maneiras de melhorar o desempenho de SDS que poderiam ser executados em servidores de uso geral. Então estamos trabalhando no NVMe sobre TCP, é uma iniciativa muito interessante e legal, uma entre muitas. Também estamos trabalhando com pessoas-chave do setor e alguns dos fornecedores existentes para descobrir o que eles oferecem e qual será o desempenho real, se podemos começar a utilizá-lo na produção da empresa. Isto abre novos horizontes que antes não eram acessíveis.

Uma ajudinha no PS

PS Se me permitem, gostaria de lembrar que de 28 a 30 de setembro será realizado Base intensiva de Kubernetes, para quem não conhece Kubernetes, mas quer conhecê-lo e começar a trabalhar com ele.

Fonte: habr.com

Adicionar um comentário