Automação e o .NET framework que ferramentas usar?

8

Estou ciente das escolhas de ferramentas populares e de fato para várias linguagens de programação, como Go, NodeJS, Java, Python etc. No entanto, não sei qual cadeia de ferramentas é razoável ou uniforme (quente) no mundo .NET. Ouvi dizer que as pessoas usam o Octapus deploy, isso ainda é uma escolha válida? O NuGet ainda é o gerenciador de pacotes defacto? E quanto à inspeção de código, controle de qualidade automático etc.?

Gostaria de ter uma idéia da cadeia de ferramentas completa para .NET e do que é popular agora, ao considerar desenvolvimento, teste automático e entrega.

Steiniche
fonte

Respostas:

11

De certa forma, roubar a resposta de Ian Margett, como a arquitetura é comum entre a maioria das organizações de desenvolvimento Microsoft / .NET, o modelo operacional de alto nível para algo parecido com isto:

Modelo operacional de destino do .NET

O objetivo é criar um pipeline de Implantação Contínua, usando software de prateleira existente, como TeamCity , ProGet , SonarQube e Octopus Deploy :

  • O GitHub é a ferramenta de gerenciamento de código-fonte, no entanto, pode ser o BitBucket ou o Visual Studio Team Services. O modelo de ramificação e o processo de revisão de código estão fora do escopo nesse nível alto.
  • O TeamCity é escolhido como o sistema de compilação devido à sua forte integração com o Octopus Deploy e ao bom suporte geral para .NET, msbuild e PowerShell. O TeamCity também é usado como orquestrador de implantações no Octopus Deploy.
  • O ProGet é a solução de gerenciamento de pacotes que armazena Octopus Packages e proxies repositórios públicos de pacotes / imagens. A lógica para não usar a loja TeamCity NuGet incorporada é puramente por motivos de escalabilidade.
  • O SonarQube fornece gerenciamento contínuo da qualidade do código e os relatórios são publicados como parte das saídas de construção do TeamCity.
  • O Octopus Deploy é usado como a ferramenta de implantação da infraestrutura e do código nas plataformas de destino.

Eu vi essa abordagem ampla implementada em duas empresas e implementada com sucesso em duas empresas adicionais - no caso mais recente, trocamos o TeamCity pelo AppVeyor, que funcionou, embora um pouco doloroso ao configurar regras de firewall.

Richard Slater
fonte
6

Você mencionou algumas categorias diferentes em sua cadeia de ferramentas para .NET. Sim, o NuGet ainda é o estilo de pacote padrão - e muitas pessoas usam o Universal Package Manager para gerenciar seus feeds do NuGet.

Para a implantação, o Octopus é realmente uma opção para enviar artefatos, mas não habilita alguns dos outros aspectos dos quais você estava falando.

Uma ferramenta ARA provavelmente seria mais adequada do que apenas a automação de implantação e as ferramentas ARA estão mais "quentes" no mundo do DevOps agora - especialmente com coisas em evolução, como o WinOps.

Quanto a outras ferramentas, dê uma olhada na página wiki da cadeia de ferramentas do DevOps e na seção de ferramentas focadas do WinOps .

* Divulgação completa Trabalho na Inedo e criamos uma solução para essas duas opções (com o .NET em mente)

Inedo toolchain

Karl Harnagy
fonte
4

A experiência em minha casa tem usado o Octopus Deploy, e Proget - tive grande sucesso na construção de um bom pipeline e seu dimensionamento bem. Também funciona bem com testes de unidade e ferramentas de teste funcional automatizadas. Estamos predominantemente no Azure on .Net, mas também estamos implantando na nuvem privada e no local

Ian Margetts
fonte