Introdução
O software de código aberto tornou-se a base do desenvolvimento de software moderno. De estruturas web e bancos de dados a sistemas operacionais e ferramentas de desenvolvimento, os componentes de código aberto alimentam a maioria dos aplicativos criados atualmente. Compreender como implementar eficazmente software de código aberto enquanto gerencia os riscos associados é essencial para as equipes de desenvolvimento e organizações.
No entanto, o uso de software de código aberto introduz considerações importantes que as organizações devem abordar. Vulnerabilidades de segurança, conformidade com licenças, obrigações legais e riscos da cadeia de suprimentos exigem atenção cuidadosa. As organizações que não gerenciam adequadamente suas dependências de código aberto podem enfrentar violações de segurança, responsabilidades legais, custos inesperados e interrupções operacionais.
Este módulo fornece orientação abrangente sobre a implementação de software de código aberto em ambientes empresariais. Você aprenderá como o software moderno é construído com componentes de código aberto, entenderá as preocupações corporativas sobre segurança e licenciamento, explorará licenças comuns de código aberto e suas implicações e descobrirá estratégias para gerenciar software de código aberto de forma eficaz.
O que você aprende
Este módulo abrange conhecimentos essenciais para trabalhar com software de código aberto em ambientes profissionais:
Compreender o desenvolvimento de software moderno: Você explorará como os aplicativos contemporâneos são criados combinando código original com bibliotecas, estruturas e ferramentas de código aberto. Você aprenderá por que as organizações escolhem componentes de código aberto e entenderá os benefícios que eles oferecem, incluindo desenvolvimento mais rápido, soluções comprovadas, suporte à comunidade e economia de custos.
Preocupações corporativas sobre software de código aberto: Você examinará os riscos de segurança, legais e operacionais que as organizações enfrentam ao usar componentes de código aberto. Isso inclui vulnerabilidades de segurança em dependências, requisitos de conformidade de licenças, riscos da cadeia de suprimentos, projetos não mantidos ou abandonados e o desafio de gerenciar milhares de dependências em vários aplicativos.
Fundamentos da licença de código aberto: Você aprenderá sobre diferentes categorias de licenças de código aberto, desde licenças permissivas como MIT e Apache que permitem amplo uso comercial, até licenças copyleft como GPL que exigem trabalhos derivados para usar a mesma licença. Compreender as características da licença ajuda você a tomar decisões informadas sobre quais componentes de código aberto são apropriados para seus projetos.
Implicações da licença para software comercial: Você descobrirá como diferentes licenças afetam o desenvolvimento de software comercial, incluindo restrições a software proprietário, requisitos para divulgar código-fonte, requisitos de atribuição e questões de compatibilidade de licença. Esse conhecimento evita problemas legais que podem afetar a capacidade da sua organização de vender ou distribuir software.
Estratégias para gerenciar componentes de código aberto: Você explorará abordagens práticas para implementar software de código aberto de forma segura e em conformidade, incluindo a manutenção de inventários de componentes, a verificação de vulnerabilidades, o rastreamento de obrigações de licença, o estabelecimento de processos de aprovação e o uso de ferramentas automatizadas para monitorar dependências continuamente.
Objetivos de aprendizagem
Depois de concluir este módulo, você pode:
- Entenda como o software moderno é construído usando componentes de código aberto e os benefícios que eles proporcionam para a velocidade de desenvolvimento, qualidade e inovação.
- Explique as preocupações corporativas sobre software de código aberto, incluindo vulnerabilidades de segurança, conformidade de licenças, riscos da cadeia de suprimentos e os desafios de gerenciar dependências em escala.
- Descreva licenças comuns de código aberto , incluindo MIT, Apache 2.0, GPL, BSD e outras licenças, entendendo suas principais características, permissões e restrições.
- Avalie as implicações da licença para o desenvolvimento de software comercial, entendendo quais licenças são compatíveis com software proprietário e quais exigem divulgação do código-fonte.
- Implemente estratégias para gerenciar componentes de código aberto , incluindo gerenciamento de inventário, verificação de vulnerabilidades, verificação de conformidade de licenças e estabelecimento de fluxos de trabalho de aprovação para novas dependências.
Pré-requisitos
Antes de iniciar este módulo, você deve ter:
- Compreensão do desenvolvimento de software: Conhecimento básico de como os aplicativos são construídos, incluindo o uso de bibliotecas, estruturas e dependências.
- Familiaridade com os conceitos de DevOps: Compreensão da integração contínua, da entrega contínua e do ciclo de vida de desenvolvimento de software.
- Experiência de controle de versão: Experiência básica com Git ou outros sistemas de controle de versão onde ocorre o gerenciamento de dependência.
- Conhecimento do licenciamento de software: Compreensão geral de que o software tem termos legais que regem seu uso, mesmo que você não tenha estudado licenças específicas em detalhes.
A experiência de trabalho em uma organização que fornece software é benéfica, mas não necessária. Este módulo fornece o conhecimento fundamental necessário para trabalhar com software de código aberto profissionalmente.