Partilhar via


Definir o espaço do problema

À medida que você trabalha para criar sua plataforma de desenvolvedor interna, você precisa determinar sua plataforma viável mais fina (TVP) primeiro. Um TVP é uma variação da ideia de um produto mínimo viável (MVP) na gestão clássica de produtos.

Uma boa maneira de descobrir quais trabalhos devem fazer parte do seu TVP é avaliar as práticas de engenharia de plataforma da sua organização com o Modelo de Capacidade de Engenharia de Plataforma. O Modelo de Capacidade de Engenharia de Plataforma permite ver quais são os pontos fortes atuais da engenharia de plataforma da sua organização e definir metas para o futuro.

O diagrama a seguir pode ajudá-lo a orientar seu pensamento sobre como sua plataforma de desenvolvedor pode evoluir ao longo do tempo. Tenha em mente que o principal problema da sua organização pode fazer com que você se desvie do que é descrito aqui devido aos seus investimentos existentes ou necessidades organizacionais. Você não precisa passar para o próximo estágio, a menos que sua organização precise dele.

Diagrama mostrando como a engenharia de plataforma pode evoluir ao longo do tempo.

Se você está começando do zero, essa sequência representa uma progressão comum.

  • Nos estágios iniciais, concentre-se na descoberta dos recursos necessários, na análise de lacunas de adequação dos produtos de software pré-embalados e na criação do menor número possível de ferramentas ou funcionalidades de plataforma.
  • Em seguida, à medida que você escala, você começa a se concentrar na reutilização e orientar as pessoas por caminhos pavimentados predefinidos com ativos reutilizáveis.
  • Finalmente, você avança para um modelo de loja digital semelhante ao do consumidor para facilitar a criação e manutenção de aplicativos.

Você deve seguir uma mentalidade de produto ao longo de todo o processo, não recomendamos, portanto, pular para o final, e a sua jornada específica poderá variar. Estas fases finais assemelham-se mais a produtos embalados com plástico termo-retrátil no sentido tradicional, mas este é um destino, não um ponto de partida.

Áreas temáticas de engenharia de plataformas

Dado o tamanho deste tópico, recomendamos dividir a forma como você fala sobre engenharia de plataforma internamente em quatro áreas:

Sistemas de engenharia: uma combinação selecionada de pacotes de DevOps, como GitHub e Azure DevOps, e outras ferramentas e serviços de desenvolvedor. Além de ferramentas e serviços críticos de DevOps, como CI/CD ou gestão de pacotes, esta área também inclui funcionalidades usadas diretamente durante o processo de codificação, como ambientes de codificação na nuvem, scanners e linters de código, e assistentes de IA como o GitHub Copilot.

Plataforma de aplicativo: uma seleção selecionada de serviços (como infraestrutura como serviço, plataforma como serviço e observabilidade) destinados a cada pilha de aplicativos (classe de aplicativo, modelo de aplicativo, idiomas) que uma organização deseja usar para fornecer valor comercial. Isso inclui uma combinação de serviços específicos da pilha de aplicativos, juntamente com serviços comuns usados por toda parte. Um exemplo de uma plataforma de aplicativo pode incluir Aplicativos de Contêiner do Azure, Azure Cosmos DB para armazenamento, Azure Key Vault para segredos, controle de acesso baseado em função do Azure para identidade e controle, Política do Azure para conformidade e auditoria, observabilidade por meio do Grafana e uma topologia de rede relacionada.

Modelos de aplicação: um conjunto de modelos de arranque rápido bem definidos e criados pela organização que encapsulam a orientação de "começar certo e permanecer certo" para uma determinada plataforma de aplicação, linguagem de programação, e conjunto de sistemas de engenharia. Esses modelos podem fazer referência a outros modelos centralizados e fornecer código inicial, referências de API e SDK, pipelines de CI/CD, configuração de ferramentas e muito mais.

Recursos de autosserviço para desenvolvedores: este é o elemento de ligação para o seu esforço de engenharia de plataformas. É uma combinação de APIs, orquestradores, um catálogo, modelos e experiências do usuário projetados para reduzir o trabalho do desenvolvedor e permitir que as equipes de desenvolvimento se autossirvam e sejam mais autônomas, enquanto ainda aderem às seleções e orientação/governança das três áreas anteriores.

Diagrama mostrando as principais áreas da engenharia de plataformas.

A integração de sistemas de engenharia, plataformas de aplicativos, modelos de aplicativos e recursos de autosserviço para desenvolvedores constitui a pedra angular de uma estratégia de engenharia de plataforma. Ao combinar ferramentas de DevOps, serviços de nuvem e recursos de autoatendimento, as organizações podem reduzir significativamente a labuta do desenvolvedor, aumentar a produtividade e garantir a conformidade com os padrões de governança.

Próximo passo