Introdução
O software de software livre tornou-se a base do desenvolvimento de software moderno. Desde estruturas web e bancos de dados até sistemas operacionais e ferramentas de desenvolvimento, os componentes de software livre alimentam a maioria dos aplicativos criados hoje. Entender como implementar efetivamente o software de software livre ao mesmo tempo em que gerencia os riscos associados é essencial para equipes de desenvolvimento e organizações.
No entanto, o uso de software de software livre apresenta considerações importantes que as organizações devem abordar. Vulnerabilidades de segurança, conformidade de licença, obrigações legais e riscos da cadeia de suprimentos exigem atenção cuidadosa. As organizações que não conseguem gerenciar corretamente suas dependências de software livre podem enfrentar violações de segurança, passivos legais, custos inesperados e interrupções operacionais.
Este módulo fornece diretrizes abrangentes sobre a implementação de software de software livre em ambientes empresariais. Você aprenderá como o software moderno é criado com componentes de software livre, entenderá as preocupações corporativas sobre segurança e licenciamento, explorará licenças comuns de software livre e suas implicações e descobrirá estratégias para gerenciar software de software livre de forma eficaz.
O que você aprenderá
Este módulo aborda o conhecimento essencial para trabalhar com software de software livre em ambientes profissionais:
Noções básicas sobre 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 software livre. Você aprenderá por que as organizações escolhem componentes de software livre e entendem os benefícios que elas oferecem, incluindo desenvolvimento mais rápido, soluções comprovadas, suporte da comunidade e economia de custos.
Preocupações corporativas com software de software livre: Você examinará os riscos de segurança, legais e operacionais que as organizações enfrentam ao usar componentes de software livre. Isso inclui vulnerabilidades de segurança em dependências, requisitos de conformidade de licença, riscos da cadeia de suprimentos, projetos não retidos ou abandonados e o desafio de gerenciar milhares de dependências em vários aplicativos.
Conceitos básicos da licença de software livre: Você aprenderá sobre diferentes categorias de licenças de software livre, desde licenças permissivas como MIT e Apache que permitem uso comercial amplo, até licenças copyleft, como GPL, que exigem trabalhos derivados para usar a mesma licença. Entender as características de licença ajuda você a tomar decisões informadas sobre quais componentes de software livre são apropriados para seus projetos.
Implicações de licença para software comercial: Você descobrirá como diferentes licenças afetam o desenvolvimento de software comercial, incluindo restrições ao software proprietário, requisitos para divulgar código-fonte, requisitos de atribuição e problemas de compatibilidade de licença. Esse conhecimento impede problemas legais que podem afetar a capacidade da sua organização de vender ou distribuir software.
Estratégias para gerenciar componentes de software livre: Você explorará abordagens práticas para implementar software de software livre com segurança e conformidade, incluindo manutenção de inventários de componentes, verificação de vulnerabilidades, acompanhamento de obrigações de licença, estabelecimento de processos de aprovação e uso de ferramentas automatizadas para monitorar dependências continuamente.
Objetivos de aprendizagem
Ao final deste módulo, você poderá:
- Entenda como o software moderno é criado usando componentes de software livre e os benefícios que eles fornecem para a velocidade de desenvolvimento, qualidade e inovação.
- Explique as preocupações corporativas sobre software de software livre, incluindo vulnerabilidades de segurança, conformidade de licença, riscos da cadeia de suprimentos e os desafios de gerenciar dependências em escala.
- Descreva licenças comuns de software livre , 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 de licença para o desenvolvimento de software comercial, entendendo quais licenças são compatíveis com software proprietário e que exigem divulgação de código-fonte.
- Implemente estratégias para gerenciar componentes de software livre , incluindo gerenciamento de inventário, verificação de vulnerabilidades, verificação de conformidade de licença e estabelecimento de fluxos de trabalho de aprovação para novas dependências.
Pré-requisitos
Antes de iniciar este módulo, você deve ter:
- Noções básicas sobre o desenvolvimento de software: Conhecimento básico de como os aplicativos são criados, incluindo o uso de bibliotecas, estruturas e dependências.
- Familiaridade com os conceitos do DevOps: Noções básicas sobre integração contínua, entrega contínua e ciclo de vida de desenvolvimento de software.
- Experiência de controle de versão: Experiência básica com o Git ou outros sistemas de controle de versão em que ocorre o gerenciamento de dependências.
- Reconhecimento do licenciamento de software: Noções gerais 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 trabalhar 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 software de software livre profissionalmente.