Saiba porque 90% das empresas da Fortune 100 usam o GitHub para desenvolver, escalar e produzir software seguro.
Comece sua jornada com o GitHub
O que é software de código aberto (OSS)?
Software de código aberto (OSS) refere-se a software que apresenta código-fonte disponível gratuitamente, que os usuários podem visualizar, modificar, adotar e compartilhar para fins comerciais e não comerciais.
Principais princípios do desenvolvimento de software de código aberto
Orientado pelos princípios fundamentais de transparência, colaboração e descentralização, o modelo de software de código aberto cria código a partir da comunidade e a comunidade a partir do código.
Colaboração
Ao contrário do software de código fechado, o OSS não apenas está disponível para que qualquer pessoa use, mas também construa. Isso resultou em uma rede global de colaboradores que trabalham juntos em um projeto, revisando, testando, documentando e corrigindo códigos coletivamente.
Transparência e segurança
O desenvolvimento de software de código aberto é público, o que significa que todo o trabalho, incluindo a base de código e a comunicação entre os usuários, está disponível para visualização pela comunidade de código aberto. A transparência inspira confiança entre os colaboradores, abrindo caminho para inovação e a diversão. E, como a base de código é pública, os usuários podem identificar e corrigir rapidamente vulnerabilidades de segurança à medida que surgem.
Descentralização
Como a comunidade desenvolve o código, e como ninguém ou empresa possui esse código, o código aberto é uma forma de desenvolvimento de software inerentemente descentralizada que apresenta menos pontos de isolamento, gargalos e barreiras de entrada.
Por que o código aberto é importante para a sua empresa?
O código aberto é uma tecnologia e uma estrutura inestimáveis que continuam a definir como as organizações abordam o desenvolvimento de software, e é por isso que você encontrará componentes de OSS na maioria das bases de código comerciais atualmente. Os benefícios do software de código aberto são inúmeros, mas aqui estão apenas alguns exemplos importantes de por que empresas e os desenvolvedores continuam a investir no modelo:
Flexibilidade e personalização. Como você pode alterar o código-fonte para atender exatamente às suas necessidades, o OSS oferece ampla flexibilidade e liberdade quando se trata de criar novos aplicativos ou melhorar uma solução existente.
A tecnologia mais recente. Com ênfase na transparência, colaboração e descentralização, o OSS promove alguns dos projetos mais inovadores da atualidade. Muitos desses projetos, como o Linux e o Apache, tornaram-se grandes líderes do setor.
Sem dependência no fornecedor. A ausência de longos contratos com fornecedores técnicos significa mais orçamento e largura de banda para experimentar uma variedade de ferramentas e integrações.
Economia de custo. O código-fonte OSS é gratuito, resultando em um custo total de propriedade mais baixo em comparação com soluções proprietárias ou de código fechado.
Suporte da comunidade. Os projetos de OSS aproveitam a experiência de uma comunidade de desenvolvedores. A comunidade faz contribuições durante todo o processo de desenvolvimento, revisão e implantação, o que resulta em atualizações mais rápidas e menos vulnerabilidades.
No nível da empresa, o OSS beneficia as empresas de código aberto por modernizar todos os aspectos do ciclo de vida de desenvolvimento de software. As marcas de automóveis de luxo utilizam componentes OSS para criar processos mais rápidos e acelerar a entrega de software, enquanto as empresas Fortune 500 dependem de plataformas empresariais para consolidar e gerir código de forma centralizada. Com a ajuda de OSS, as organizações empresariais desfrutam de código perfeitamente integrado, menos pontos de isolamento e a capacidade de enviar software com segurança e em escala.
Como funciona o software de código aberto?
O código-fonte aberto normalmente é armazenado em um repositório público, ou repo, que qualquer pessoa pode acessar, contribuir e compartilhar (dependendo das permissões). Os colaboradores carregam novas versões do código no projeto, desenvolvendo e melhorando o trabalho existente para fornecer novos recursos e atualizações. Todo o trabalho é realizado publicamente no repositório para que qualquer pessoa possa contribuir.
O código geralmente vem com uma licença, que define o que o usuário pode ou não fazer com o software. Algumas licenças são permissivas e permitem que você use e distribua o código para qualquer finalidade, enquanto outras podem exigir que você registre explicitamente todas as alterações ao compartilhar. Outras licenças podem estipular que todas as cópias do código-fonte sejam gratuitas e estejam disponíveis para uso público. Algumas das licenças mais populares atualmente incluem:
MIT. A licença MIT traz poucas restrições sobre o que pode ser feito com o código-fonte, o que a torna a licença gratuita mais permissiva e amplamente utilizada. Tudo o que a licença exige é que versões futuras do código incluam o aviso original de direitos autorais e uma cópia da própria licença.
GNU General Public License (GPL) v2. Criada pelo Projeto GNU, a GPLv2 exige explicitamente que o código-fonte seja disponibilizado para uso público. A GPLv2 é também uma licença copyleft, o que significa que qualquer versão do código-fonte também deve ser lançada sob a mesma licença, GPLv2.
GNU GPLv3. Tal como a sua antecessora, a licença GPLv3 também exige que versões futuras do código sejam lançadas sob a mesma licença. Ao contrário da GPLv2, a GPLv3 é compatível com a popular licença Apache 2.0, aborda especificamente os direitos de patente e não exige que o código-fonte seja disponibilizado ao público.
Apache 2.0. Assim como a licença MIT, a licença Apache 2.0 é uma licença de software popular e permissiva que permite que os usuários façam o que quiserem com o código, desde que registrem todas as alterações importantes feitas.
Os prós e contras do software de código aberto
Mesmo nas organizações empresariais, o OSS atingiu novos patamares de crescimento e adoção, anunciando uma cultura de desenvolvimento colaborativo de software e um maior retorno sobre o investimento (ROI). Ainda assim, o código aberto tem suas desvantagens. Vejamos alguns dos prós e contras:
Prós
Custo. As ferramentas de OSS vêm com código-fonte disponível gratuitamente, resultando em um custo total de propriedade mais baixo.
Inovação. O OSS incentiva a resolução criativa de problemas entre os usuários. Os usuários podem fazer quantas alterações quiserem ou até mesmo criar um aplicativo totalmente novo.
Atualizações mais rápidas. Graças à sua rede de colaboradores, os projetos de OSS tendem a implementar correções de bugs com mais rapidez em comparação com as soluções de código fechado.
Tempo de lançamento no mercado mais rápido. Quando não for viável construir sua própria solução do zero, incorporar código-fonte aberto pode ajudar seu produto a decolar rapidamente.
Confiança e transparência. Como todo o trabalho está disponível publicamente, os usuários podem confiar que os projetos ativos estão sendo mantidos adequadamente pela comunidade do código.
Adesão do desenvolvedor. Os desenvolvedores defendem o código aberto por seus processos familiares, cultura de colaboração e eficiência. É mais provável que os líderes de TI selecionem um fornecedor que contribua para o código aberto.
Oportunidades de aprendizado. Os repositórios públicos fornecem aos novos desenvolvedores uma infinidade de recursos práticos, bem como uma rede integrada à qual recorrer para obter suporte.
Contras
Curva de aprendizado mais acentuada. Devido aos seus processos, interface e cultura centrados no desenvolvedor, o OSS pode ser mais difícil de entender para os não programadores.
Menos refinamento geral. Alguns projetos de OSS são pequenos, ainda estão em beta ou não são mais mantidos, o que significa que podem ser menos confiáveis para uso pronto para produção.
Problemas de licenciamento. Existem centenas de licenças de código aberto disponíveis, e algumas delas são muito detalhadas e específicas. Se você estiver trabalhando com uma pilha de tecnologia complexa, pode ser complicado acompanhar todos os seus contratos de licença.
Problemas de confiabilidade. Ao contrário do software de código fechado, o software de código aberto normalmente não vem com garantia ou proteção de responsabilidade. O usuário é o único responsável por manter os padrões de conformidade, o que pode criar problemas a longo prazo.
Problemas de segurança. Embora muitas plataformas agora tenham ferramentas e práticas de segurança da aplicação (AppSec), o OSS tem sido historicamente considerado uma opção menos confiável entre as empresas, e o estigma ainda pode persistir.
Solução de DevOps do GitHub
Software de código aberto popular
O código aberto está enraizado na base do desenvolvimento moderno, alimentando os aplicativos, ferramentas e estruturas que as organizações usam todos os dias.
Aqui estão apenas alguns exemplos de alguns dos aplicativos de código aberto mais populares da atualidade:
GNU/Linux
Mozilla Firefox
Ruby on Rails
VLC Media Player
jQuery
Node.js
Kubernetes
GIMP
BASH
Construa código aberto seguro
Uma base de código de código aberto é tão segura quanto seus contribuidores, e é por isso que a segurança precisa ser abordada no nível da comunidade. Hoje, muitas organizações estão adotando uma abordagem de "shift left" em relação à segurança. Embora os especialistas em segurança tradicionalmente realizem auditorias no final do ciclo de vida de DevOps, o modelo de segurança da mudança "shift left" incentiva os desenvolvedores a adotar uma abordagem proativa para a segurança durante cada etapa, do início ao fim.
Para ajudar a sua equipe a codificar com segurança, considere a adoção de novas ferramentas e processos AppSec. O GitHub Advanced Security ajuda a identificar e corrigir vulnerabilidades, erros e dependências de segurança relatados por meio da verificação de código. E com a ajuda de plataformas de integração contínua e entrega contínua (CI/CD), como o GitHub Actions, os desenvolvedores agora podem automatizar esse processo, bem como seus pipelines de construção, teste e implantação, diretamente de onde eles codificam.
Perguntas frequentes
O que é software de código aberto?
Software de código aberto (OSS) refere-se a software que contém código-fonte que pode ser visualizado, editado e compartilhado para uso comercial e não comercial. Qualquer pessoa com licença de software tem liberdade de acessar, editar e distribuir o código.
O software de código aberto é gratuito?
Muitas vezes presume-se que o termo “código aberto” é sinônimo de “gratuito”, mas esse nem sempre é o caso. Embora o código-fonte em si seja gratuito e esteja disponível para uso público, o software, por exemplo, pode vir com recursos premium ou empresariais que podem exigir pagamento para serem desbloqueados.
Quem pode usar um software de código aberto?
Qualquer pessoa com a licença de software apropriada pode usar e distribuir OSS para uso comercial e não comercial.
Você pode vender programas de código aberto?
Sim. Muitas soluções vêm com recursos empresariais que podem exigir pagamento. No entanto, o código-fonte em si é normalmente gratuito e está disponível para uso público.
Qual software de código aberto é o melhor?
O melhor software de código aberto depende das necessidades da sua organização. Para organizações empresariais, é melhor escolher uma plataforma com ferramentas de segurança e automação, como GitHub Enterprise, para ajudar seus desenvolvedores a fornecer código de qualidade em todo o ciclo de vida do software.
Mergulhe no desenvolvimento de software
Descubra os fundamentos do desenvolvimento de software, os principais conceitos e seu impacto nas indústrias. Um guia completo para iniciantes navegarem no cenário tecnológico.
Navegação pela dívida técnica
Descubra o conceito de dívida técnica: o que é, como se acumula e estratégias para gerenciá-la de forma eficaz para manter a integridade e a eficiência do projeto.
Explicação sobre as linguagens de programação
Descubra os conceitos básicos das linguagens de programação: seus tipos, importância e como elas formam a espinha dorsal de todo o desenvolvimento de software. Uma leitura altamente recomendada para iniciantes.