Partilhar via


Use inventários para gerenciar ativos e evitar duplicação

À medida que sua organização cresce, cresce também a quantidade de coisas que você precisa acompanhar. As organizações muitas vezes duplicam esforços internos porque as equipes não sabem sobre os projetos umas das outras. À medida que as pessoas se movem entre equipas, novas pessoas se juntam à empresa e outras partem, os projetos podem ficar órfãos. Os inventários ajudam a resolver estes problemas e são uma parte fundamental da engenharia de plataformas.

Um inventário é uma ferramenta ou sistema que utiliza para acompanhar, gerir e organizar os ativos técnicos da sua organização. Esses ativos incluem código, APIs, contêineres, máquinas virtuais (VMs), permissões de equipe e muito mais.

Se não acompanhares os ativos, crias expansão técnica e desperdício porque não consegues descobrir facilmente o que já existe. Perder a noção do que já existe é um desafio comum.

Temos uma tonelada de contêineres ou instâncias [VM] em execução. Podemos excluir nossas VMs antigas? Ninguém sabe. Precisamos encontrar uma maneira de limpar coisas antigas e usar tags adequadas para que saibamos quem é o proprietário ou a equipe que pode nos informar sobre o que podemos fazer e qual é o ciclo de vida. Não sabemos se podemos desligar uma VM específica porque não temos certeza do que acontecerá. - Martin, engenheiro de DevOps, grande empresa de logística

Rastreie ativos

Precisa de um inventário para acompanhar todos os ativos que criou ou construiu no seu ecossistema. Os clientes internos conseguem visualizar o inventário de forma compreensível.

Um inventário pode melhorar a segurança, promover a reutilização e, geralmente, facilitar a descoberta. Diferentes ferramentas estão disponíveis para rastrear diferentes tipos de ativos. Cada uma dessas ferramentas fornece um inventário para ajudá-lo a gerenciar, rastrear e limpar resíduos.

As ferramentas de rastreamento disponíveis incluem:

  • Os Ambientes de Implantação do Azure permitem rastrear a infraestrutura complexa criada por meio da infraestrutura como código (IaC) como um ambiente abstrato.
  • A Central de API do Azure fornece uma maneira para os desenvolvedores descobrirem e consumirem APIs.
  • Registros de pacotes como Pacotes GitHub ou Artefatos do Azure (ou outros inventários de pacotes e SDKs aprovados) melhoram a segurança da cadeia de suprimentos.

Para obter visibilidade de seus inventários, considere a melhor abordagem para sua organização. Algumas organizações permitem que todos os programadores vejam ativos de software, enquanto apenas alguns poucos têm permissão para os modificar. Esta abordagem de transparência em primeiro lugar, por vezes chamada de modelo de "cozinha aberta" (onde tudo é visível, como uma cozinha de restaurante onde os clientes conseguem ver), promove a consciencialização e a colaboração. Outros, especialmente em setores regulamentados, restringem o acesso de forma mais rígida, às vezes até limitando a visibilidade aos nomes dos projetos devido à sensibilidade.

Melhore a capacidade de descoberta, a governança e a reutilização

Ter um ou mais sistemas de inventário que o ajudem a rastrear o que você tem é fundamental para as práticas de engenharia da plataforma e evitar a expansão técnica. Inicialmente, ter um conjunto de listas de inventário simples pode ser suficiente. No entanto, você pode melhorar ainda mais a capacidade de descoberta adicionando relações entre diferentes ativos em vários inventários. Independentemente do nível de visibilidade necessário, ter um ponto de agregação centralizado permite que as equipes pesquisem e descubram rapidamente todos os ativos disponíveis. Esta abordagem promove a reutilização, reduz a redundância e estabelece uma abordagem consistente à governação.

Considere a relação entre uma definição de API e o código do aplicativo implantado que implementa a interface. Este código é armazenado num repositório e gerido por uma equipa. Fornece documentação sobre a sua utilização. São criados ambientes de desenvolvimento, teste, produção e até mesmo sandbox temporários. Em cenários nativos da nuvem, os ambientes podem ser implantados em um cluster Kubernetes compartilhado. A equipa de desenvolvimento que está a construir a API, e quaisquer consumidores internos dela, precisam de obter informação sobre cada uma destas questões, mas não é óbvio como os recursos se relacionam.

Para começar, você pode usar algo tão simples quanto uma página wiki para ajudar a rastrear como cada coisa se relaciona entre si. Mas a documentação envelhece rapidamente e pode ser difícil de encontrar e analisar. Idealmente, teria um sistema com um grafo de relações que pudesse alimentar interfaces de utilizador para percorrer estas relações no seu inventário. Para realmente melhorar a capacidade de descoberta, você precisa ser capaz de associar coisas armazenadas em vários tipos de inventários ou gráficos juntos. Talvez você não precise consumir inventários diretamente, mas provavelmente desejará associá-los a informações em um sistema de catálogo de API.

Para usar a analogia da loja digital, também pode ser útil associar os itens (modelos) em seu catálogo com o conteúdo de inventário resultante. Por exemplo, se perceber que um dos seus modelos cria uma configuração insegura, precisa de encontrar rapidamente todos os recursos que criou com o modelo para os corrigir. Os modelos de aplicativo Start Right são pacotes de kit inicial neste catálogo que se vinculam a outros tipos de itens de catálogo (como modelos IaC). O rastreamento dessas associações permite que você encontre proativamente qualquer aplicativo que faça referência a um modelo de IaC incorreto, mesmo que nenhuma infraestrutura esteja provisionada ainda.

Uma variação simplificada desse gráfico conceitual de plataforma de desenvolvedor de alto nível pode ser encontrada em alguns kits de ferramentas e produtos atuais, embora o que é chamado varie. Por exemplo, o kit de ferramentas do portal de código aberto Backstage.io chama isso de catálogo de software, enquanto outros produtos usam termos diferentes. No entanto, a maioria desses produtos e kits de ferramentas pressupõe que você esteja usando seu conjunto de recursos mais amplo e exige que o conteúdo de seus inventários seja duplicado dentro deles. Essa duplicação significa que o conteúdo do banco de dados de catálogo não é específico do usuário, pode se tornar obsoleto e não é controlado pelos mecanismos de autorização do usuário do sistema de origem real. No entanto, isto pode funcionar bem para a sua organização se seguir uma abordagem de transparência em primeiro lugar, onde todos os programadores possam visualizar os ativos.