Compartilhar via


Como o GitHub acelera a adoção da nuvem

Visão geral

A inovação é a nova moeda no panorama competitivo de hoje. Compartilhamento de caronas, conteúdo de streaming, carros autônomos e outros serviços têm uma mudança fundamental no ritmo diário das pessoas e, ao mesmo tempo, causam reviravolta nos mercados e mostram como o panorama competitivo mudou de ativos físicos para experiências digitais.

Esses tipos de experiência digital superior estão levando a uma interrupção em que as empresas bem estabelecidas enfrentam uma competição acirrada de empresas que podem inovar e fornecer valor aos seus clientes com mais rapidez. Para competir e evitar interrupções, as empresas precisam criar uma cultura de inovação e usar as melhores e mais adequadas ferramentas e serviços de nuvem.

O GitHub fornece uma variedade de recursos que podem ajudar as empresas a:

  • Aproveitar os serviços e as funcionalidades do Azure.
  • Modernizar suas práticas.
  • Tornar-se mais ágil e inovador durante essa mudança cultural.

As empresas podem aproveitar a conexão do GitHub para a comunidade de software livre e encontrar milhares de exemplos de solução de nuvem reiterados, aprimorados e prontos para implantar de organizações que adotaram com êxito os serviços do Azure. Elas podem facilmente emprestar e iterar nessas soluções para adaptá-las às suas necessidades de negócios.

O GitHub facilita para as organizações o compartilhamento em suas equipes, o que torna mais rápido modernizar e implantar o próximo aplicativo ou carga de trabalho. As empresas podem recorrer à InnerSource, um princípio chave de inovação, para tomar emprestado as melhores práticas, como compartilhamento e reutilização, colaboração e comunicação e muito mais da comunidade de código aberto e aplicá-las dentro de sua organização.

Desde a proteção dos pacotes de software livre até a propriedade intelectual escrita diariamente, a proteção de toda a cadeia de fornecimento de softwares deve ser uma prioridade para cada empresa. Essa meta requer uma tecnologia de segurança avançada que possa ser incorporada e automatizada durante todo o ciclo de vida, e funcionalidades nativas do GitHub, como a segurança avançada do GitHub e o GitHub Actions, oferecem essa flexibilidade de tipo.

Aproveite os ativos de software livre

Organizações altamente eficazes reconhecem o OSS (software livre) como essencial versus opcional para o desenvolvimento de software moderno. Elas se envolvem com as comunidades de desenvolvedores das quais dependem e usam uma plataforma segura para investir estrategicamente em software livre. Como resultado, essas organizações experimentam inovação rapidamente, ultrapassam concorrentes e cortam custos enquanto minimizam o risco.

O OSS consiste em pacotes, bibliotecas, scripts e dependências que são incorporados aos aplicativos. O OSS também inclui milhares de ativos de código aberto na forma de infraestrutura como código (IaC), documentação e orientação para arquiteturas bem definidas do Azure. Microsoft, parceiros, fornecedores, clientes e indivíduos contribuem com esses pacotes para a comunidade OSS. Você pode encontrá-los no GitHub e modificá-los, reutilizá-los e implantá-los em um ambiente específico do Azure.

Infraestrutura como código

IaC é o gerenciamento de infraestrutura que inclui redes, máquinas virtuais, balanceadores de carga e topologia de conexão em um modelo descritivo. O IaC usa o mesmo sistema de controle de versão que uma equipe de DevOps usa para o código-fonte. Por exemplo, uma equipe de DevOps segue o princípio de que o mesmo código-fonte gera o mesmo binário. Um modelo IaC também segue esse princípio e gera o mesmo ambiente cada vez que você aplica o modelo. O IaC é uma prática chave de DevOps que você pode usar com entrega contínua (CD).

A IaC evoluiu para resolver o problema de descompasso de ambiente no pipeline de lançamento. Sem ela, as equipes precisam manter as configurações de ambientes de implantação individuais, e as inconsistências entre os ambientes levam a problemas durante as implantações. Todos os ambientes eventualmente se tornam um floco de neve, uma configuração exclusiva que não pode ser reproduzida automaticamente. Com os flocos de neve, a administração e a manutenção da infraestrutura exigem processos manuais que contribuem para erros e são difíceis de rastrear. As implantações de infraestrutura com IaC são repetíveis e evitam problemas de tempo de execução causados por desvio de configuração ou dependências ausentes.

Com a IaC, as equipes fazem alterações na descrição do ambiente e na versão do modelo de configuração, que normalmente está em formatos de código bem documentados, como o JSON; confira Modelos do Azure Resource Manager para obter mais informações. Os desenvolvedores podem simplificar os fluxos de trabalho deles hospedando o código IaC no mesmo repositório do GitHub que o código-fonte do aplicativo e adotar as mesmas práticas de CI (integração contínua)/CD para IaC da plataforma do GitHub Actions.

Confira a ação AzOps do GitHub para obter um exemplo de como implantar modelos personalizados do Resource Manager em vários escopos do Azure. Se você é novo nos modelos do Resource Manager ou na IaC, também pode procurar o azure-quickstart-templates repositório no GitHub, localizar o modelo que deseja implantar e clicar no botão Implantar no Azure para testar como ele funciona.

Captura de tela de um botão Implantar no Azure.

Componentes de padrão de nuvem e melhores práticas

O seguinte diagrama de arquitetura realça as verificações de segurança que são executadas no GitHub e nos componentes do Azure de um ambiente de DevSecOps do GitHub:

Um diagrama de arquitetura que destaca as verificações de segurança executadas nos componentes GitHub e Azure de um ambiente DevSecOps do GitHub.

  • O GitHub fornece uma plataforma de hospedagem de código que os desenvolvedores podem usar para colaborar em projetos de código aberto e InnerSource.

  • Codespaces é um ambiente de desenvolvimento online. Hospedado pelo GitHub e da plataforma Microsoft Visual Studio Code, essa ferramenta fornece uma solução de desenvolvimento completa na nuvem.

  • A segurança do GitHub funciona para eliminar ameaças de várias maneiras. Agentes e serviços identificam vulnerabilidades em repositórios e pacotes dependentes. Eles também atualizam dependências para versões atuais e seguras.

  • O GitHub Actions é um fluxo de trabalho personalizado que fornece funcionalidades de CI/CD diretamente em repositórios. Os computadores chamados executores hospedam esses trabalhos de CI/CD.

  • O Microsoft Entra ID é um serviço de identidade multilocatário baseado em nuvem que controla o acesso ao Azure e a outros aplicativos de nuvem, como o Microsoft 365 e o GitHub.

  • O Serviço de Aplicativo do Azure fornece uma estrutura para compilar, implantar e dimensionar aplicativos Web. Essa plataforma oferece manutenção de infraestrutura interna, aplicação de patches de segurança e dimensionamento.

  • O Azure Policy ajuda você a gerenciar e impedir problemas de TI com definições de políticas que podem impor regras para seus recursos de nuvem. Por exemplo, se um projeto estiver prestes a implantar uma máquina virtual com um SKU não reconhecido, o Azure Policy enviará alertas sobre o problema e interromperá a implantação.

  • O Microsoft Defender para Nuvem oferece um gerenciamento de segurança unificado e proteção avançada contra ameaças em cargas de trabalho de nuvem híbrida.

  • O Azure Monitor coleta e analisa as métricas de desempenho, os logs de atividades e outros tipos de telemetria de aplicativos. Esse serviço alerta aplicativos e a equipe quando identifica condições irregulares.

InnerSource

Visão geral de InnerSource

Muitas empresas usam o termo InnerSource para descrever como suas equipes de engenharia trabalham juntas no código. InnerSource é uma metodologia de desenvolvimento em que os engenheiros criam software proprietário com as melhores práticas de projetos de software livre em larga escala, como Kubernetes ou Visual Studio Code.

Projetos de software livre em larga escala exigem coordenação e trabalho em equipe em milhares de colaboradores. Os projetos bem-sucedidos são orientados por uma visão para as necessidades futuras deles e as necessidades do usuário diário: velocidade, confiabilidade e funcionalidade. A escala em que esses projetos operam fornece algumas lições e pode ajudar as empresas a construir software melhor mais rapidamente com a InnerSource.

Com as solicitações de pull e os problemas do GitHub, a colaboração e a revisão de código são incorporadas ao processo de desenvolvimento. Equipes internas e terceirizadas podem compartilhar trabalho, discutir alterações e obter comentários em um único lugar. Isso ajuda as organizações a compartilharem a experiência internamente e evitar reinventar soluções testadas em campo desenvolvidas para outros projetos.

A anatomia de um projeto de InnerSource

A combinação certa de indivíduos, equipes e recursos pode garantir o sucesso de um projeto. Muitos projetos de software livre seguem uma estrutura organizacional semelhante que pode ajudar as organizações a configurar equipes multifuncionais para gerenciar projetos de InnerSource. Um projeto de software livre típico tem os seguintes tipos de pessoas:

  • Mantenedores: Esses colaboradores são responsáveis por conduzir a visão e gerenciar os aspectos organizacionais do projeto. Eles podem não ser os proprietários nem os autores originais do código.

  • Colaboradores: Essas pessoas são todos que contribuíram com algo para o projeto.

  • Membros da comunidade: São pessoas que usam o projeto. Eles podem estar ativos em conversas ou expressar a opinião deles sobre a direção do projeto.

Projetos maiores também podem ter subcomitês ou grupos de trabalho concentrados em tarefas diferentes, como ferramentas, triagem e moderação da comunidade. Os projetos de InnerSource provavelmente seguirão uma estrutura semelhante. Muitas organizações de engenharia classificam os desenvolvedores em equipes como engenharia de aplicativos, engenharia de plataforma e desenvolvimento para a Web. Estruturar organizações dessa maneira pode deixar pontos cegos que excluem pessoas qualificadas. Organizar um grupo de tomada de decisão principal com suporte das equipes em uma organização pode ajudar a reunir a experiência necessária para resolver problemas mais rapidamente.

Em uma empresa, os colaboradores são desenvolvedores em toda a empresa, e os mantenedores são os líderes do projeto e os principais tomadores de decisão.

  • Mantenedores: desenvolvedores, gerentes de produto e outros tomadores de decisão importantes dentro de uma empresa responsáveis por conduzir a visão de um projeto e gerenciar as contribuições diárias.

  • Colaboradores: desenvolvedores, cientistas de dados, gerentes de produto, profissionais de marketing e outras funções dentro de uma empresa que ajudam a impulsionar o software. Os colaboradores podem não fazer parte da equipe de projeto direta, mas ajudam a criar software contribuindo com código, enviando correções de bugs e muito mais.

Para obter mais informações, consulte o white paper Uma introdução ao InnerSource.

Automação

O GitHub Actions permite que os usuários criem fluxos de trabalho personalizados diretamente nos repositórios GitHub. Os usuários podem descobrir, criar e compartilhar ações para executar qualquer trabalho, incluindo CI/CD, e combinar ações em um fluxo de trabalho completamente personalizado. Eles também podem criar fluxos de trabalho de CI que criam e testam projetos escritos em linguagens de programação diferentes. Os exemplos estão disponíveis nos guias do GitHub Actions.

O GitHub Actions pode ser usado para combinar os conceitos de IaC e as práticas de CI/CD para automatizar todo o ciclo de vida de implantação de ponta a ponta, incluindo o provisionamento ou a atualização do ambiente de destino de maneira repetitiva e o empacotamento e a implantação do próprio aplicativo.

Exemplo:

GitHub Actions para Azure são criados para simplificar a forma como você automatiza os processos de implantação para direcionar os serviços do Azure, como Serviço de Aplicativo do Azure, Serviço de Kubernetes do Azure, Azure Functions e muito mais. O repositório de fluxos de trabalho de ação de início do Azure inclui fluxos de trabalho de ponta a ponta para criar e implantar aplicativos Web de qualquer linguagem e qualquer ecossistema no Azure. Acesse o marketplace do GitHub para ver todas as ações disponíveis.

Segurança

Recursos de segurança shift-left do GitHub

Começando com as primeiras etapas de desenvolvimento, o DevSecOps obedece às melhores práticas de segurança. Usando uma estratégia de shift-left, o DevSecOps redireciona o foco de segurança. Em vez de apontar para a auditoria no final, ele muda para o desenvolvimento no início. Além de produzir código robusto, essa abordagem fail-fast ajuda a resolver problemas no início, quando são fáceis de corrigir.

Com muitas funcionalidades de segurança, o GitHub oferece ferramentas que dão suporte a todas as partes de um fluxo de trabalho do DevSecOps:

  • IDEs baseados em navegador com extensões de segurança internas
  • Agentes que monitoram continuamente comunicados de segurança e substituem dependências vulneráveis e desatualizadas
  • Funcionalidades de pesquisa que examinam o código-fonte em busca de vulnerabilidades
  • Fluxos de trabalho baseados em ação que automatizam todas as etapas de desenvolvimento, teste e implantação
  • Espaços que fornecem uma forma de discutir e resolver ameaças de segurança de maneira privada e, em seguida, publicar as informações
  • Combinados com o poder de monitoramento e avaliação do Azure, esses recursos oferecem um serviço excelente para criar soluções de nuvem seguras

Exemplo:

Instalações de DevSecOps do GitHub abrangem muitos cenários de segurança. As possibilidades incluem os seguintes casos:

  • Desenvolvedores que desejam aproveitar os ambientes pré-configurados que oferecem capacidades de segurança.
  • Administradores que dependem da existência de relatórios de segurança priorizados e atualizados em suas mãos, juntamente com detalhes sobre o código afetado e as correções sugeridas.
  • Organizações simplificadas que precisam de sistemas para adquirir automaticamente dispositivos de segurança novos e não comprometidos quando os segredos ficam expostos no código.
  • Equipes de desenvolvimento que podem se beneficiar de atualizações automáticas quando versões mais recentes ou mais seguras de pacotes externos ficarem disponíveis.

Para saber mais, veja:

Próximas etapas

  • Escolha sua equipe de implementação (normalmente um gerente desenvolvedor e alguns desenvolvedores definidos como administradores) e implante o GitHub.
  • Aprenda fluxos de trabalho Git comuns e avançados para aprimorar o modo como você usa o GitHub.

Os links a seguir fornecem mais informações sobre o GitHub.