Discutimos os desafios que os desenvolvedores de código aberto enfrentam e como os desafios que enfrentam afetam o ecossistema de TI como um todo.
Fotos - James Sutton - UnsplashCódigo aberto - a base da Internet
De acordo
com a Linux Foundation, 72% das empresas da Fortune 2000 usam ferramentas de código aberto para resolver seus problemas. Ao mesmo tempo, 55% usam código aberto em produtos comerciais. O software de código aberto é distribuído nos data centers - por exemplo, Facebook, Rackspace, NASA e
AT&T trabalham com ele. Vários fornecedores de nuvem e empresas de TI fundaram o
Open Compute Project . Ela está desenvolvendo uma arquitetura de rack de servidor padrão aberto (Open Rack) e requisitos de servidor modular para data centers em nuvem (OpenCloud Server).
Uma parte significativa dos produtos populares de código aberto são projetos de larga escala como Kubernetes, TensorFlow ou Ansible. Eles são desenvolvidos e financiados por grandes empresas de TI. Mas também existem pequenos produtos (por exemplo,
cURL ) que os entusiastas apóiam. Muitas vezes, fazem isso de forma voluntária e em seu tempo livre. E aqui estão as armadilhas.
Por que esse modelo é criticado
O conceito de código aberto implica que todos possam modificar o código-fonte e corrigir erros neles. Os esforços coletivos aumentam a qualidade da base de código e reduzem o número de bugs. Mas, infelizmente, esse modelo nem sempre funciona.
Uma parte significativa das mudanças em um projeto de código aberto é feita por uma equipe pequena ou por um mantenedor. Por exemplo, dos 25 mil
commits no repositório cURL , 14 mil pertencem ao autor - Daniel Stenberg. Por um longo tempo, o número de desenvolvedores da biblioteca OpenSSL
não excedeu quatro pessoas. A maioria dos commits foi
feita por um deles - Steve Henson. Portanto, nessas condições, é fácil ignorar e "pular" o bug.
Então, cinco anos atrás, no OpenSSL, descobri uma das maiores vulnerabilidades em software -
Heartbleed . Permite a leitura não autorizada de memória em um servidor ou cliente. Em seguida, o número de sites vulneráveis foi
estimado em meio milhão. O patch foi lançado imediatamente, mas já em 2017, 200 mil sites afetados pelo Heartbleed estavam em operação.
Fotos - James Sutton - UnsplashMuitos projetos de código aberto estão enfrentando problemas de financiamento. O mesmo OpenSSL
existe devido a doações da comunidade e renda de contratos corporativos - o valor não excede um milhão de dólares por ano. O ex-CEO do projeto
diz que uma das razões para o aparecimento do Heartbleed foi precisamente a falta de financiamento. Pode ser difícil para os engenheiros arrecadar fundos, mesmo para consultas. De acordo
com Daniel Stenberg, empresas internacionais frequentemente recorrem a ele com pedidos para ajudar a resolver o problema no cURL. Mas toda vez que ele pede para pagar por seu trabalho, por algum motivo, a conversa termina.
“Às vezes, os desenvolvedores se envolvem em projetos de código aberto em seu tempo livre como hobby. Portanto, não é de surpreender que alguns aplicativos sejam abandonados. Se ninguém quiser manter o projeto à tona, a comunidade formada ao seu redor se desintegra.
Na pior das hipóteses, os usuários do sistema podem se tornar alvo de um ataque de hackers. Um exemplo é o ataque do ano passado ao módulo de fluxo de eventos npm ".
O autor do projeto, Dominic Tarr, mudou para outras tarefas e deixou sua ideia desacompanhada. Alguns usuários sugeriram assumir o suporte do módulo.
Tarr concordou e concedeu a ele acesso ao repositório no GitHub e no npm. Com o tempo, o novo mantenedor
introduziu um script no utilitário que roubava dados da carteira de bitcoin e os carregava em seu servidor. A vulnerabilidade afetou um grande número de usuários, já que o fluxo de eventos tem 1,9 milhão de downloads por semana.
Como consertar a situação
De acordo
com o Departamento Nacional de Pesquisa Econômica dos EUA, o principal fator motivador para o desenvolvimento de código aberto são os benefícios econômicos. Portanto, os desenvolvedores de código aberto estão procurando maneiras de monetizar isso. Por exemplo, eles transferem parte dos módulos para licenças restritivas ou mesmo comerciais. MongoDB, Redis e outras empresas seguiram esse caminho.
Já falamos sobre a situação com mais detalhes. Os desenvolvedores acreditam que mesmo a comercialização parcial do código abrirá uma fonte adicional de renda e atrairá novas pessoas para o projeto. Mas esse modelo geralmente é hostil pela comunidade de TI.
Acredita-se que a abordagem contradiga o conceito de software de código aberto. No entanto, não é adequado para todos. Em 2017, o servidor da web Caddy
anunciou uma licença comercial para HTTP / 2. Mas, por alguma razão, há um mês, o projeto foi novamente
devolvido ao código aberto.
Foto - Artem Beliaikin - UnsplashA infraestrutura global da Internet depende de projetos de código aberto. Portanto, é importante prestar atenção ao seu apoio. E o trabalho nessa direção está em andamento. A Linux Foundation regularmente recebe novos residentes. As grandes empresas estão
investindo cada vez mais em código aberto. Talvez essas iniciativas ajudem a evitar a repetição de uma história semelhante à Heartbleed.
Leitura adicional no blog 1cloud.ru:
A nuvem salvará smartphones com orçamento limitado
Por que a Apple mudou os requisitos para desenvolvedores de aplicativos
1cloud Cloud Architecture Evolution
Novidades do kernel 5.3 do Linux - Drivers gráficos, virtualização e outras atualizações
Por que os principais desenvolvedores de navegadores se recusaram novamente a exibir o subdomínio