O colaborador do FreeBSD, Allan Jude, discute as vantagens do FreeBSD e seu papel em manter milhões de servidores funcionando

TL; DR: Alimentando plataformas como Netflix ou seu sistema de jogo favorito, o FreeBSD é um sistema operacional robusto e de código aberto, com o qual milhões de sites contam para servir páginas da web. Até o Mac OSX é baseado, em parte, no FreeBSD. Com mais de 400 desenvolvedores voluntários à sua frente, o Projeto FreeBSD é uma força dinâmica que coloca o controle nas mãos dos administradores. O comissário do projeto, Allan Jude, é fã do projeto desde 2002. Ele discute a estrutura interna do sistema e a funcionalidade do recurso que o atraiu – contribuindo com a documentação e depois com o desenvolvimento – e com o que está trabalhando agora, mais de uma década mais tarde.


“Então eu fiz essa mudança e agora está em todo lugar …”

Imagine se o código no qual você trabalhou hoje ou a solicitação de recebimento que você enviou ontem fosse comprometida e afetasse a vida de milhões de pessoas – o PlayStation ou o Netflix – e os milhões de sites que dependem do sistema operacional para ajudar a exibir páginas da Web.

“É definitivamente humilhante … e um pouco estranho”, admitiu Allan Jude.

Quando Allan começou sua própria empresa hospedando sites para streaming de vídeo, o FreeBSD era o único sistema operacional que ele já havia usado com outros hosts. Com base em sua experiência e conforto, ele confiou no sistema o futuro de seus negócios emergentes..

Uma década depois, o ex-SysAdmin foi a uma conferência focada no sistema operacional de código aberto, onde encontrou algumas pessoas da equipe de documentação. “Eles me inspiraram”, disse ele à nossa equipe em um bate-papo recente. Ele começou a escrever documentação, mas logo quis contribuir com melhorias além dos documentos.

Hoje, Allan atua como Committer do Projeto FreeBSD. É raro você conversar com alguém envolvido em um projeto de código aberto em grande escala como este – raro e incrível.

Dois benefícios enormes do FreeBSD do ponto de vista do SysAdmin

Vivemos em uma cidade universitária com toneladas de aspirantes a desenvolvedores da web e administradores de sistemas que saem da Universidade da Flórida. Muitos deles estão destinados a seguir a rota do Linux simplesmente porque o nome é mais familiar. Eles vêem isso em todos os lugares. No entanto, a realidade, segundo Allan, é que o FreeBSD “pode ​​fazer praticamente tudo o que o Linux pode fazer – e a maioria das coisas que ele faz melhor”.

Equipe do FreeBSD no BSDCan 2015

O desenvolvedor do FreeBSD, Allan Jude, ingressou na enorme rede de desenvolvedores em 2012, sendo fã do projeto desde ’02.

O fato de o envolvimento de Allan no desenvolvimento do projeto originar-se de sua experiência pessoal com o sistema levanta a pergunta: Por que ESTE SO? “Por causa da maneira como está organizado”, ele disse, e parece que a declaração inclui a estrutura interna e a equipe interna.

1. Organização do código meticulosamente mantida & Documentado

O Projeto FreeBSD funciona como um mundo extremamente bem organizado. Allan explicou o ambiente: “Existe uma página de documentação que explica como o sistema de arquivos é organizado e tudo tem um lugar, e sempre acontece nesse lugar”.

Especialmente com tantas mãos no pote trabalhando nesse projeto, seria fácil a ordem se desenrolar. Allan explicou que em muitos outros aplicativos, os desenvolvedores estruturam o código da maneira que acharem mais conveniente, e isso varia de dev para dev. “Com o FreeBSD, há sempre um lugar para ele [seja o que for] e sempre vai para lá”, concluiu.

Para manter essa ordem, o FreeBSD possui um Guia de Estilo que deve ser seguido meticulosamente. Allan nos disse que a equipe unida serve como fonte de responsabilidade mútua. “É um grupo de pessoas bastante unido. Se você colocar algo no lugar errado, alguém dirá: ‘Ei, isso realmente acontece aqui’, e isso é corrigido. ”

À medida que a equipe de desenvolvimento continua crescendo, eles evangelizam o estilo apropriado do FreeBSD com um sistema de orientação. Cada novo desenvolvedor integrado é emparelhado com um mentor para garantir que eles sejam treinados de acordo com as referidas diretrizes. “Ao ingressar no FreeBSD, você recebe um mentor por um tempo, o que significa que tudo o que você realmente contribui é revisado por eles primeiro”, explicou Allan, “e se algo estiver errado com isso, a culpa é deles – não sua. o que realmente ajuda muito no começo, quando você está apenas começando. ” Sem brincadeiras. Você pode imaginar apenas mergulhando e assumindo o destino do amado sistema de jogos de alguém com sua primeira solicitação de recebimento em um projeto enorme como este?

2. Pacotes de distribuição com controle de versão indolor & Escolha de 25.000 portas

Outro fator de destaque é que o FreeBSD faz pacotes de maneira diferente – totalmente mantida por sua equipe, com versões fáceis para você. O FreeBSD permite que você assuma o controle de seus pacotes ao configurar e manter seu sistema, e eles oferecem um ciclo de “release release” com 25.000 portas diferentes para escolher.

“Você não precisa procurar por repositórios externos gerenciados por quem sabe quem”, disse Allan, explicando uma de suas vantagens favoritas do FreeBSD. “Está tudo em um pacote de repositório do FreeBSD” e, quando você quiser mudar, digamos do PHP 5 para o PHP 7, “é apenas uma questão de dizer ao [FreeBSD]” para atualizar e pronto..

Com o benefício adicional do FreeBSD Jails – os contêineres que permitem armazenar versões de desenvolvimento e produção do seu site separadamente em uma única máquina – você pode realmente fazer a troca em caráter experimental. Não há necessidade de ativar novas máquinas ou alterar o ambiente de produção.

Destaque recente do projeto de Allan: ambientes de inicialização

Então, como é um dia na vida de um desenvolvedor no FreeBSD Project? Allan nos disse que a maioria das pessoas que trabalham no projeto o faz como hobby ou como meio período em conjunto com seus “empregos diurnos”. Ele disse que muitas vezes ele está trabalhando em um projeto para o referido trabalho diário, e não é tão fácil quanto ele acredita que deveria ser, ou não funciona do jeito que ele quer, ou se inspira em o What Ifs: “Seria ótimo se tivesse esse recurso extra”, ele verbalizou sua linha de pensamento. “Começarei a trabalhar nisso e, assim que tiver uma idéia geral de como quero fazer isso, publico na lista de discussão e recebo feedback”. Com uma comunidade responsiva a apenas uma caixa de entrada e uma revisão completa do código a seguir, Allan e colegas desenvolvedores têm o sistema de suporte necessário para inserir novas contribuições no ciclo de lançamento do FreeBSD.

“Acho que a coisa mais recente que fiz e que muitas pessoas estavam esperando é um recurso que chamamos de ambientes de inicialização”, disse Allan. “Se você estiver usando o ZFS, poderá tirar uma foto do seu sistema antes de instalar uma atualização e, se essa atualização não der certo, você poderá reverter para como era o sistema antes – mas isso afeta apenas o arquivos do sistema.” Em outras palavras, seus diretórios pessoais e arquivos de banco de dados não são afetados enquanto o sistema operacional é revertido para o ponto em que você ficou satisfeito com ele.

Captura de tela do FreeBSD.org

Allan compartilhou conosco uma das suas mais recentes jóias do projeto FreeBSD – acesso fácil a ambientes de inicialização para SysAdmins.

“Anteriormente, era necessário usar uma ferramenta no sistema operacional para alternar entre eles”, disse Allan. “Após uma atualização, se o sistema não inicializar, isso realmente não ajudará.” Para combater essa frustração, Allan tornou o recurso mais utilizável para todos, adicionando uma opção para selecionar o ambiente de inicialização no menu na primeira inicialização. Como um bônus adicional, o recurso está à frente de mais usuários que não necessariamente sabiam que ele existia anteriormente. “Agora eles veem essa opção toda vez que aparecem, então pesquisam a documentação sobre como usá-la”, concluiu Allan. Dar às pessoas o que elas querem e até o que elas talvez não saibam que querem – Muito bem, Allan.

O protocolo de teste, usando o ZFS como um exemplo impressionante

Para quem não conhece, o ZFS, ou o Z File System, é a nova onda de sistemas de arquivos, na verdade é mais do que apenas um sistema de arquivos. É um projeto de código aberto desenvolvido inicialmente pela Sun Microsystems ™ que combina gerenciamento de volume e recursos tradicionais do sistema de arquivos, reconhecendo a estrutura geral dos discos de armazenamento envolvidos. Ele supera muitos problemas anteriores encontrados em outros sistemas de arquivos, que reconheciam apenas um único disco (mesmo quando colocados no topo de uma configuração avançada de hardware RAID).

Naturalmente, perguntamos a Allan como isso mudou o jogo para seu próprio negócio como empresa de streaming de vídeo. “Agora que estamos chegando perto de um petabyte de armazenamento, outros sistemas de arquivos não são mais uma opção”, explicou ele com naturalidade. Os principais pontos de venda do ZFS para os negócios de Allan são os instantâneos e a replicação. “Quando você está falando sobre dezenas de terabytes de arquivos para alguns clientes, outras formas de backup não funcionam mais, portanto, ter a replicação em nível de bloco realmente melhora muito as coisas para nós”, disse ele, observando que A capacidade de manter sistemas de arquivos separados para cada cliente também é muito boa. Com o ZFS, eles podem gerenciar os arquivos do cliente como uma unidade discreta, com o que é chamado de conjunto de dados – e se alguém pular a conta, eles poderão remover o instantâneo singular de armazenamento desse cliente sem afetar outros usuários pagantes.

Incorporar novos sistemas de arquivos em um sistema operacional não é uma tarefa fácil

Okay devs – reserve um momento para refletir sobre o processo de integração de um novo sistema de arquivos em um sistema operacional. Mmm, quem não gosta de um projeto assustador para levar semanas e semanas? Preparem-se agora: este monstro de uma proeza foi realmente abordado e superado por um desenvolvedor polonês chamado Paweł Jakub Dawidek – e ele o fez em apenas 21 dias.

“Ele trabalhava cerca de 18 horas por dia”, disse Allan, provavelmente imaginando nossas mandíbulas caírem pelo viva-voz. “Ele não estava trabalhando dessa maneira de propósito; era mais emocionante e interessante que ele não conseguisse parar de pensar nisso ou parar de trabalhar nisso. “

Essa atitude é representativa dos sentimentos sentidos por toda a equipe de desenvolvimento do FreeBSD, eu acho. Toda vez que fazemos perguntas como: “Com que frequência você trabalha no projeto?” As respostas de Allan foram do tipo: “Bem, às vezes eu não consigo chegar ao longo da semana e outras vezes EU PASSO para passar um fim de semana inteiro”. Simplificando, Allan disse: “Essas são as coisas divertidas”.

Testar é complicado e rigoroso, então o FreeBSD saiu com a construção do universo

Para complicar ainda mais, o ZFS possui seu próprio repositório upstream com suas próprias regras e requisitos de teste: por exemplo, uma solicitação de recebimento deve estar em um sistema operacional ZFS como o FreeBSD ou Linux e usado na produção por um período mínimo de três meses antes de ser efetivamente comprometido.

“O repositório do ZFS deve estar sempre com qualidade de produção”, elaborou Allan. “O FreeBSD possui um conjunto de testes, um conjunto de testes de regressão e, em seguida, uma integração contínua com o Jenkins.” O truque é o enigma da plataforma múltipla. Você faz uma confirmação, o código é aparentemente perfeito, mas depois percebe que sabe apenas como ele é executado no seu hardware x86. Talvez sua funcionalidade no ARM seja uma história diferente. Rut ro, Raggy.

Mascote do FreeBSD,

A equipe do FreeBSD não estaria completa sem o mascote. Conheça o daemon BSD: Beastie!

“Temos esse conceito chamado Universe Build, no qual você cria o FreeBSD para cada ambiente de processador diferente suportado”, compartilhou Allan. Dessa forma, não importa o quão bem ele funcione no seu sistema, você também sabe que funcionará para todos os outros.

Como é de se esperar, Allan nos disse que o Universo Build pode demorar um pouco para se desenvolver com perfeição – “especialmente se você não tiver todo o hardware, mas a Fundação FreeBSD fornece servidores para os desenvolvedores do projeto”. Por isso, felizmente, eles têm acesso a servidores realmente grandes, cerca de 36 núcleos e uma grande quantidade de RAM. “Se você tivesse que fazer uma construção do universo em seu laptop, isso levaria um dia e meio”, acrescentou Allan, rindo..

O que pode escapar através das rachaduras é imediatamente pego por Jenkins

Jenkins, um amado servidor de automação baseado em Java, de código aberto para oferecer suporte ao mundo do desenvolvimento em compilações em larga escala, é o software de automação preferido do FreeBSD. Isso deve oferecer algum conforto a esses caras que estão trabalhando ativamente em um projeto tão arraigado no tecido da vida de milhões de pessoas. Allan nos disse que, se algo der errado, “Jenkins notará”. Se você fez parte da mudança recente que está sendo testada, se contribuiu com uma pequena confirmação, receberá um email: Ei, isso está quebrado; convém verificar e garantir que não é sua culpa.

Entre Jenkins e a equipe de desenvolvimento principal usando a versão de desenvolvimento ainda não lançada, Allan nos disse que é raro que os problemas não sejam notados e corrigidos rapidamente.

O Poder de Servir – Junte-se à Força FreeBSD

Antes de juntar-se aos cerca de 400 desenvolvedores e seus colaboradores em uma missão compartilhada para fortalecer e desenvolver o poderoso sistema operacional de computador de código aberto, o FreeBSD, Allan era um SysAdmin. Ele se interessou por PHP, Perl e scripts de shell, mas não foi até recentemente que ele assumiu C.

“Um ponto importante é que você não precisa ser um grande desenvolvedor com muita experiência para fazer a diferença no projeto”, disse Allan – e a diferença que desenvolvedores como Allan estão fazendo é incrível. Se você também deseja enviar a confirmação que contribui para o projeto de milhões de servidores da Web, existem várias maneiras de se envolver!

Estamos conversando especialmente com o SysAdmins aqui, pois Allan observou que eles são os principais usuários do FreeBSD. “Ter mais SysAdmins envolvidos na construção real do sistema significa que podemos oferecer as ferramentas que eles procuram – projetadas da maneira que um SysAdmin gostaria que fossem projetadas, não necessariamente da maneira que um desenvolvedor pensaria que faz mais sentido”, acrescentou Allan.

Se você está atualmente usando o FreeBSD e se depara com uma oportunidade de tornar um recurso mais fácil ou mais funcional – comece a trabalhar para fazê-lo! “Podemos receber contribuições de quem quiser oferecer”, concluiu Allan.

Deseja se envolver, mas ainda não nesse nível, em termos de habilidades ou disponibilidade? Confira a página JuniorJobs do wiki do FreeBSD para a lista mais recente de pequenas tarefas que precisam ser realizadas.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Adblock
    detector