Trace Id is missing
Avançar para o conteúdo principal
Azure

A equipa de infraestrutura .NET investe na consistência para acelerar a inovação open-source

Veja como as ferramentas partilhadas e um sistema de CI único partilhado nos repositórios do GitHub permitem grandes ganhos na produtividade dos programadores.

O desafio: Otimizar a colaboração entre contribuidores de open-source

Na qualidade de organização independente criada para promover a inovação através do desenvolvimento e da colaboração abertos, a .NET Foundation suporta um grande e complexo conjunto de projetos open-source, incluindo o .NET Core. A equipa de Serviços de Engenharia do Microsoft .NET contribui para o projeto e é responsável por grande parte da infraestrutura que permite que contribuidores de todo o mundo trabalhem em conjunto.

Com dezenas de diferentes repositórios git no GitHub, uma panóplia de ferramentas e diferentes sistemas de integração contínua (CI) em uso em todo o projeto, havia muita confusão que inibia a produtividade. A própria dimensão do projeto acrescentava mais complexidade. Por exemplo, só o repositório Roslyn (compilador C#) executa mais de 600 000 testes automatizados para uma iteração de um pedido pull. Com mais de 50 pedidos pull por semana, cada qual com múltiplas iterações, o número de testes de CI está na ordem dos milhares de milhões. E para o CoreFx (bibliotecas), os números são ainda maiores. À medida que a equipa de Serviços de Engenharia .NET planeava o lançamento do .NET Core 3.0, decidiu fazer grandes mudanças para estabelecer uma maior consistência e permitir que os contribuidores obtenham todo o potencial do projeto.

Pessoas a conversar

O desafio: Adaptação a um modelo de funcionamento na cloud

"Uma estrutura de repositório distribuído e ferramentas torna muito mais difícil para os programadores mudarem de um repositório para outro... E se é assim tão difícil para os programadores Microsoft, como podemos esperar que a maioria dos contribuidores individuais entendam?"

Matt Mitchell, Engenheiro Principal de Software, Serviços de Engenharia .NET

Melhorar a produtividade através de ferramentas partilhadas e um sistema de CI único

Para que os programadores possam alternar mais facilmente entre diferentes partes da pilha de software, a equipa dos Serviços de Engenharia .NET decidiu juntar todos os repositórios numa estrutura de diretório comum, num conjunto de comandos e numa lógica de compilação e teste. A equipa derrubou mais barreiras à produtividade ao mudar todos os fluxos de trabalho existentes de diferentes sistemas de CI para um sistema único no Azure Pipelines. Uma vez que o sistema é totalmente gerido, a equipa já não está sobrecarregada com a tarefa de gerir a infraestrutura de servidor de CI. A equipa está agora a treinar a configuração como código através de ficheiros YAML que estão armazenados no GitHub e os pipelines do YAML são utilizados em todo o lado. Ao passo que alguns repositórios faziam anteriormente a CI em série, o que obrigava os programadores a, por vezes, terem de esperar duas a três horas entre iterações do código, agora todos os pipelines de CI são paralelizados para permitir iterações mais rápidas.

O desafio: Adaptação a um modelo de funcionamento na cloud

"Agora que já precisamos de nos preocupar com os aspetos operacionais da CI, podemos concentrar-nos em mais melhorias que beneficiarão todos, incluindo programadores Microsoft e contribuidores individuais."

Matt Mitchell, Engenheiro Principal de Software, Serviços de Engenharia .NET

Uma colaboração melhor resulta num produto melhor

Atualmente, os programadores podem mais facilmente passar de repositório para repositório, identificar a origem de um erro e propor e testar uma correção sem precisarem do conhecimento especializado que era necessário anteriormente. Esta colaboração open-source otimizada no GitHub permite aos programadores inovar mais depressa enquanto trabalham em equipa para escrever, testar, compilar e entregar software de alta qualidade. E uma vez que a equipa dos Serviços de Engenharia .NET pode fazer alterações à infraestrutura em toda a pilha, está em condições de disponibilizar melhorias às ferramentas de que os programadores podem tirar partido em todos os repositórios de forma mais rápida e eficiente.

Um escritório com pessoas a trabalhar à secretária
Veja mais de perto o percurso e a tomada de decisões da equipa.
Ler a história completa