O que são os Artefactos do Azure?

Concluído

Nesta unidade, você obterá uma breve visão geral sobre como usar os Artefatos do Azure para criar e gerenciar pacotes com segurança que seus aplicativos podem consumir.

Vamos verificar novamente com a equipe enquanto eles decidem se o Azure Artifacts é a maneira apropriada de hospedar seu pacote .NET.

Mara: Parece-me que faria sentido para nós hospedar o novo pacote Models no Azure Artifacts. Todos nós já fazemos parte da organização de DevOps do Microsoft Azure, portanto, a autenticação seria mais fácil do que tentar configurá-la em um gerenciador de pacotes diferente.

Andy: Eu olhei para isso antes da reunião e me parece simples. Concordo com a Teresa.

Amita: O que é o Azure Artifacts?

Andy: Azure Artifacts é um repositório em sua organização do Azure DevOps onde você pode gerenciar as dependências para sua base de código. O Azure Artifacts pode armazenar os seus artefactos e binários. Fornece um contentor chamado feed, para grupos de dependências. Os desenvolvedores que têm acesso ao feed podem facilmente consumir ou publicar pacotes.

Como posso criar um pacote e utilizá-lo no pipeline?

Tim: Então, se eu estou entendendo direito, o código do aplicativo já usa pacotes do NuGet. Vamos criar o nosso próprio pacote e alojá-lo nos Artefactos do Azure. Você pode desenhar as peças e como elas funcionarão juntas? Estou a ter dificuldade em imaginar todo o processo.

Andy: Claro. Vamos rever o processo de criação de um pacote e utilizá-lo no nosso pipeline do Azure DevOps.

Andy se muda para o quadro branco.

Illustration of a whiteboard diagram showing the steps to create and use a package.

Criar o pacote

Primeiro, precisamos criar um projeto no Azure Artifacts. Podemos fazer isso a partir do Azure DevOps.

Em seguida, criamos um pipeline no Azure Pipelines que se conecta ao repositório GitHub para o código do pacote. Em seguida, o pipeline cria o código, empacota-o e envia o pacote por push para os Artefatos do Azure.

Precisamos atualizar o aplicativo que consome esse pacote para apontar para o feed de Artefatos do Azure que criamos.

Depois disso, atualizamos o pipeline que cria nosso aplicativo. A atualização nos permite usar nosso feed de Artefatos do Azure para extrair a nova dependência do pacote e compilar normalmente.

Atualize o pacote

Tim: E se alguém atualizar o pacote?

Andy: Quando você atualiza o pacote com um novo recurso ou correção de bug e executa testes para se certificar de que ele funciona corretamente, aumente o número da versão do pacote. Em seguida, confirme a alteração. O pipeline de pacotes vê a confirmação e cria um novo artefato nos Artefatos do Azure com o novo número de versão. Não se preocupe, o pacote antigo com o número de versão inferior ainda está lá para aplicativos que dependem dessa versão. É por isso que normalmente você não cancela a lista de um pacote.

Nosso aplicativo pode querer usar esta versão mais recente do pacote. Nesse caso, atualizamos o aplicativo para fazer referência à versão mais recente e executamos os testes localmente para garantir que essa nova versão funcione com nosso aplicativo. Quando estamos convencidos de que tudo funciona, enviamos a alteração do aplicativo para o pipeline. Ele é construído com a nova versão da dependência do pacote.

Amita: Parece um bom plano, e vai ajudar a outra equipe também. Ele também evitará que o código se desvie, como você colocou. O que também ajudará a controlar a qualidade.

Inclua uma estratégia de controle de versão em seu pipeline de compilação

Quando você usa um pipeline de compilação, os pacotes precisam de versões antes de poderem ser consumidos e testados. No entanto, só depois de testar a embalagem é que poderá saber a sua qualidade. Como as versões do pacote nunca devem ser alteradas, torna-se um desafio escolher uma determinada versão de antemão.

O Azure Artifacts associa um nível de qualidade a cada pacote em seus feeds e distingue entre versões de pré-lançamento e de lançamento. Os Artefatos do Azure oferecem diferentes modos de exibição na lista de pacotes e suas versões, que os separam com base em seu nível de qualidade. Essa abordagem funciona bem com o versionamento semântico, que é útil para prever a intenção de uma versão específica. Os Artefatos do Azure também usam um descritor para incluir metadados adicionais do feed de Artefatos do Azure. Um uso comum para exibições é compartilhar versões de pacotes que foram testadas, validadas ou implantadas, mas reter pacotes ainda em desenvolvimento e não prontos para consumo público.

Os feeds nos Artefatos do Azure têm três modos de exibição diferentes por padrão. Essas exibições são adicionadas no momento em que um novo feed é criado. Os três pontos de vista são os seguintes:

  • Lançamento: A @release visualização contém todos os pacotes que são considerados lançamentos oficiais.
  • Pré-lançamento: a @prerelease visualização contém todos os pacotes que têm um rótulo em seu número de versão.
  • Local: A @local visualização contém todos os pacotes de lançamento e pré-lançamento e os pacotes baixados de fontes upstream.

Você pode usar modos de exibição para ajudar os consumidores de alimentação de pacotes a filtrar entre versões lançadas e não lançadas de pacotes. Essencialmente, as opiniões permitem que um consumidor tome uma decisão consciente de escolher entre as embalagens lançadas, ou optar por pré-lançamentos de um determinado nível de qualidade.

Segurança de pacotes em Artefatos do Azure

Garantir a segurança dos seus pacotes é tão importante quanto garantir a segurança do resto do seu código. Um aspeto da segurança do pacote é proteger o acesso aos feeds de pacote (onde um feed, no Azure Artifacts, é onde você armazena pacotes). Definir permissões no feed permite que você compartilhe seus pacotes com tantas ou quantas pessoas o seu cenário exigir.

Permissões de feed

Os feeds têm quatro níveis de acesso: Proprietários, Colaboradores, Colaboradores e Leitores. Cada nível de acesso tem um determinado conjunto de permissões. Por exemplo, os proprietários podem adicionar qualquer tipo de identidade (indivíduos, equipes e grupos) a qualquer nível de acesso. Por padrão, o Serviço de Criação de Coleção de Projetos é um Colaborador e sua equipe de projeto é um Leitor.

Configurar o pipeline para acessar classificações de segurança e licença

Existem várias ferramentas disponíveis de terceiros para ajudá-lo a avaliar a segurança e a classificação de licença dos pacotes de software que você usa.

Algumas dessas ferramentas verificam os pacotes à medida que são incluídos no pipeline de compilação ou CD. Durante o processo de compilação, a ferramenta verifica os pacotes e dá feedback instantâneo. Durante o processo de CD, a ferramenta usa os artefatos de compilação e executa verificações. Dois exemplos de tais ferramentas são Mend Bolt e Black Duck. Com o Azure DevOps, você usa tarefas de compilação para incorporar a verificação em seu pipeline.