O que é golden path no desenvolvimento de software?

Copiar URL

O golden path (caminho dourado, em tradução livre) é uma maneira direcionada, documentada e com suporte de criar e implantar software na organização. Seguindo uma trajetória orientada, as equipes de desenvolvimento conseguem criar com mais eficiência, atendendo aos padrões exigidos pela organização. Com os golden paths, os engenheiros de plataforma têm uma abordagem clara para orientar as equipes de DevOps, IA/MLOps, segurança, rede e outros departamentos de TI, assegurando a consistência, a confiabilidade e o uso eficiente do tempo e dos recursos.

Dependendo do tamanho e da maturidade da equipe de desenvolvimento, a quantidade de golden paths pode variar. Por exemplo, uma organização com uma equipe de engenharia de plataforma recém-formada pode adotar alguns golden paths para executar processos importantes, como o desenvolvimento de microsserviçospipelines de CI/CDprovisionamento de infraestrutura e configuração da observabilidade. Em comparação, uma equipe mais madura pode ter centenas de golden paths granulares para processos como desenvolvimento de aplicações de front-end, pipelines de dados para analytics ou cargas de trabalho de machine learning (ML), criação de aplicações serverless, além de fluxos de trabalho de segurança e conformidade. Seja qual for o tamanho ou maturidade da equipe, os golden paths têm vários componentes em comum, como: 

  • Templates de software: um modelo padrão de microsserviço pré-configurado, como um template FastAPI do Python com o Docker e pipelines de CI/CD definidos.
  • Provisionamento da infraestrutura: módulos do Terraform ou Pulumi pré-desenvolvidos para recursos de nuvem
  • Pipelines de criação e implantação: scripts do Jenkins ou ações do GitHub pré-configurados.
  • Ferramentas de observabilidade: soluções integradas de monitoramento e geração de logs.
  • Diretrizes de segurança: políticas pré-aplicadas e verificações incorporadas ao fluxo de trabalho.

Conheça o Red Hat OpenShift para engenheiros de plataforma

O conceito de golden path

O termo golden path foi usado pela primeira vez pelo escritor Frank Herbert na obra de ficção científica Os Filhos de Duna. O Spotify inventou o conceito de template de software (inspirado no caminho dourado de Frank Herbert) para alinhar as equipes de engenharia em relação a ferramentas e processos. Desde então, essa abordagem vem sendo utilizada por outras organizações como o Google e a Netflix, às vezes com outros nomes. Na Netflix, o golden path é chamado de "paved road" (rodovia pavimentada, em tradução livre).

O golden path pode ser pensado como quem faz um bolo. As etapas desse processo incluem pré-aquecer o forno em uma temperatura específica, escolher os utensílios de cozinha certos e usar os ingredientes adequados. O processo vai muito além de apenas seguir a receita: você precisa usar as ferramentas e técnicas corretas. Se quiser que mais pessoas assem o bolo exatamente do mesmo jeito, você precisará encontrar uma maneira de aumentar a consistência e eficiência do processo. A mesma coisa acontece com um golden path. Quanto mais você segue um template de desenvolvimento específico, mais aprimorados o processo e a solução se tornam. As etapas necessárias para assar um bolo são como a implementação de um golden path,  só que com muito menos açúcar. 

Os arquitetos de software, incluindo os da Red Hat®, afirmam que os golden paths precisam ter quatro características específicas: eles devem ser opcionais, transparentes, ampliáveis e personalizáveis.

Opcional

Os golden paths precisam ser uma forma alternativa de criar e implantar software. Para possibilitar e promover a inovação, é preciso ter flexibilidade para usar fluxos de trabalho diferentes do padrão. As equipes de engenharia podem analisar os casos em que um golden path não é utilizado e identificar situações em que sua implementação pode trazer benefícios.

Transparente

Os processos e ferramentas dos golden paths precisam ser claros e acessíveis. Um golden path deve permitir criar templates que viabilizem diversas abordagens sem que seja necessário aprender sobre a tecnologia subjacente. Com transparência, as equipes de desenvolvimento têm a oportunidade de entender melhor o que acontece nos bastidores.

Ampliável

Os golden paths devem ser ampliáveis para que acomodem novos recursos e funções. Os golden paths já são personalizáveis, pois são templates que podem ser ajustados conforme a necessidade. No entanto, se um caso de uso específico exigir mais recursos, ele precisará ser flexível o suficiente para viabilizar essa expansão.

Personalizável

Os golden paths precisam ser altamente personalizáveis para atender às necessidades das equipes de desenvolvimento, sejam internas ou externas. É importante que eles sejam baseados na experiência da organização ao realizar os processos manualmente. Isso oferece a oportunidade de criar padrões a serem implementados nos golden paths e de melhorar a segurança ao longo do caminho.

Os golden paths podem variar de acordo com o que está sendo implantado. No entanto, eles devem sempre ter essas quatro características: serem opcionais, transparentes, ampliáveis e personalizáveis.

Produtividade do desenvolvedor com as tecnologias Red Hat

Em geral, os engenheiros de plataforma criam e mantêm golden paths para oferecer às equipes de desenvolvimento práticas recomendadas, ferramentas padronizadas, serviços, recursos e processos que aumentam a produtividade. O objetivo da engenharia de plataforma é aumentar a produtividade e a colaboração entre as equipes ao promover a consistência e a eficiência. Ela se concentra em identificar os desafios do desenvolvimento e solucionar esses problemas com a disponibilização de ferramentas e recursos padronizados e reutilizáveis por meio de uma plataforma interna de desenvolvedor (IDP). Uma IDP é formada por um conjunto padronizado de tecnologias e ferramentas self-service que os desenvolvedores precisam para criar e implantar código. 

Os golden paths oferecem suporte a casos de uso como:

Desenvolvimento de aplicações

O objetivo dos desenvolvedores de aplicações é criar, testar e entregar apps seguindo um método padronizado e seguro. Com os golden paths, os desenvolvedores conseguem criar e integrar com mais eficiência. Ao adotar esse conceito de template, as equipes de aplicação contam com uma base unificada que viabiliza o compartilhamento de informações, incentiva a criação de ferramentas compartilhadas e aumenta a agilidade e mobilidade em toda a organização. 

Ciência de dados

Os cientistas de dados coletam, analisam e interpretam os dados para ter insights úteis. Eles também podem ser especialistas no desenvolvimento e implantação de sistemas de inteligência artificial (IA)ML. Com os golden paths, as equipes de operações de ML (MLOps) podem incorporar modelos de machine learning ao desenvolvimento de software. Os golden paths podem ajudar cientistas de dados no desenvolvimento de modelos de IA, enquanto os desenvolvedores podem utilizá-los para implementar esses modelos. 

Engenharia de confiabilidade de sites (SRE)

As equipes de SRE são responsáveis pela maneira como o código é implantado, configurado e monitorado, além da disponibilidade, latência, gerenciamento de mudanças, resposta a emergências e gerenciamento de capacidade dos serviços em produção. Os golden paths oferecem consistência para os SREs na criação de sistemas de software escaláveis e altamente confiáveis.

Administração de sistemas (sysadmin)

Os sysadmins implantam, configuram e mantêm os sistemas computacionais da organização. Como esses profissionais gerenciam milhares de máquinas, eles precisam de métodos escaláveis e sustentáveis para trabalhar. Os golden paths oferecem um framework claro de processos e tarefas comuns por meio da simplificação ou automação do trabalho rotineiro. Isso diminui a complexidade do gerenciamento e o risco de erros.


O que são ferramentas de engenharia de plataforma?

Por serem templates self-service, os golden paths oferecem muitos benefícios que aumentam a produtividade dos desenvolvedores, incluindo: 

Redução da carga cognitiva: processos padronizados diminuem a carga cognitiva dos desenvolvedores para que eles fiquem com a cabeça livre para a inovação. 

Desenvolvimento acelerado: com tarefas definidas, as equipes de desenvolvimento podem trabalhar com eficiência sem precisar pesquisar ferramentas ou adivinhar processos. Além disso, elas aplicam às práticas recomendadas que a organização já adota. 

Consistência consolidada: com templates compartilháveis e processos internos aprimorados, os projetos têm mais consistência. Assim, você produz resultados melhores e aprimora a qualidade, não importa se a equipe de desenvolvimento é interna ou externa.

Mais automação: a automação das tarefas repetitivas (por exemplo, implantação e teste de código) facilita a aplicação de práticas como pipelines de CI/CD, infraestrutura como código (IaC)gerenciamento de interfaces de programação de aplicações (APIs).  

Integração simplificada: com a disponibilização de documentação e ferramentas, os novos membros da equipe se familiarizam com fluxo de trabalho com mais rapidez. Assim, eles não precisam adivinhar qual é a melhor abordagem para cada tarefa.

Segurança reforçada: os templates asseguram que as práticas internas atendam aos padrões de segurança, o que simplifica as auditorias posteriores.  

Projetar um golden path é criar um roadmap que ofereça uma experiência simples e eficiente. Embora os componentes de um golden path variem com base nas metas a serem atingidas, há algumas práticas recomendadas a considerar para aumentar a produtividade dos desenvolvedores.

  1. Identifique o usuário: o usuário mais comum de um golden é a equipe de desenvolvimento. Como os templates são desenvolvidos e mantidos por mais de uma equipe ou membro, os usuários serão um grupo específico de pessoas com diferentes habilidades, como programação, criação de perfil e segurança.
  2. Estabeleça uma finalidade: o propósito geral de um golden path é aumentar a produtividade dos desenvolvedores com a automação das práticas existentes.
  3. Planeje o caminho, passo a passo: crie etapas e diretrizes claras para assegurar que o usuário tenha um framework fluido e eficiente para realizar cada tarefa.
  4. Disponibilize ferramentas e recursos: contextualize o golden path oferecendo a documentação e as ferramentas para execução.
  5. Integre uma IDP: as IDPs são o ambiente onde os golden paths devem estar disponíveis e acessíveis facilmente. Integrar um golden path garante sua disponibilidade na IDP e facilita o self-service para os desenvolvedores.
  6. Avalie o sucesso e faça iterações: use métricas para avaliar o sucesso do seu golden path. Essas métricas podem incluir as do DevOps Research and Assessment (DORA), SPACE Framework ou Flow Framework. Além disso, colete o feedback dos usuários e repita o processo para melhorar a eficiência.

Desenvolvimento de microsserviços

É possível usar o golden path na criação de novos microsserviços com base em templates prontos desenvolvidos pelas equipes de operações. 

Os microsserviços são um estilo de arquitetura de aplicações em que um conjunto de serviços independentes se comunicam por APIs lightweight. Uma arquitetura de microsserviços oferece uma abordagem mais eficiente de desenvolvimento de aplicações, na qual cada função básica de uma app pode existir de forma autônoma. Com a separação desses elementos, as equipes de DevOps podem trabalhar em paralelo sem atrapalharem umas às outras. Assim, mais desenvolvedores trabalham ao mesmo tempo na mesma aplicação, reduzindo o tempo gasto com desenvolvimento. 

O golden path pode impulsionar a produtividade dos desenvolvedores ainda mais porque gera um processo eficiente de criação, implantação e gerenciamento de microsserviços. Além de integrar um pipeline bem-estruturado, os melhores golden paths de microsserviços têm como foco a automação, as práticas recomendadas e a observabilidade.

Descubra mais sobre microsserviços

Entrega do MLOps 

Os golden paths ajudam na entrega do MLOps. Inspirado nos princípios do DevOps e GitOps, o MLOps busca estabelecer uma evolução contínua para integrar modelos de machine learning a processos de desenvolvimento de software. Ao otimizar a colaboração entre diferentes equipes, a prática de MLOps promove o desenvolvimento ágil e as decisões baseadas em dados dentro da organização. A adoção de práticas de MLOps diminui o trabalho manual relacionado ao monitoramento de modelos de ML, além de assegurar a confiabilidade e o desempenho contínuos.

Utilizar um golden path como guia para entrega de ML pode ajudar as equipes no desenvolvimento, implantação e gerenciamento de modelos de ML. Com os golden paths, o MLOps pode estabelecer práticas e fluxos de trabalho (como pipelines automatizados) para assegurar a confiabilidade e a consistência na entrega de modelos. 

As equipes de MLOps podem se beneficiar dos golden paths, uma vez que eles oferecem templates alinhados aos diversos critérios do MLOps e, ao mesmo tempo, permitem ajustes conforme os casos de uso.

 Mais informações sobre MLOps 

IA Agente

A IA Agente é um sistema de software criado para interagir com dados e ferramentas, exigindo o mínimo de intervenção humana. Para executar tarefas, ela cria uma lista de etapas e as executa de maneira autônoma. A IA Agente é diferente da automação tradicional porque usa dados em tempo real, modelos de ML e ciclos de feedback para tomar decisões baseadas no contexto.

Para implementar a IA Agente, um sistema é criado para conceder a um Large Language Model (LLM) acesso a ferramentas e algoritmos externos que informam como os agentes de IA devem usar esses recursos. Assim como os golden paths, a IA Agente incorpora um processo autônomo e otimizado para atingir uma meta ou concluir uma tarefa, adquirindo conhecimento e se adaptando conforme necessário.

 Mais informações sobre IA Agente

As soluções e serviços da Red Hat funcionam em conjunto para ajudar no desenvolvimento de software e oferecer a flexibilidade de que as empresas precisam para aumentar a produtividade das equipes, ampliar o self-service, acelerar a integração e reduzir as tarefas repetitivas.

O Red Hat Developer Hub oferece um portal self-service no qual as equipes de desenvolvimento podem utilizar todos os golden paths. É um hub central de conhecimento e de documentações técnicas relevantes para projetos específicos. Com o Red Hat Developer Hub, as organizações podem usar os templates de software existentes para começar uma nova aplicação ou microsserviço. Além disso, elas podem criar e utilizar os próprios templates personalizados com base em um ambiente específico.

Aliado ao Red Hat Developer Hub, o Red Hat OpenShift® permite que as equipes de desenvolvimento usem as ferramentas de desenvolvimento que elas já conhecem, como aplicações modernizadas, legadas e nativas em nuvem.O Red Hat OpenShift PipelinesRed Hat OpenShift GitOpsRed Hat OpenShift Service MeshRed Hat OpenShift Serverless e muitas outras tecnologias estão incluídas no Red Hat OpenShift para otimizar os fluxos de trabalho dos desenvolvedores e possibilitar a integração com várias outras ferramentas open source. 

Como a proteção é sempre uma prioridade, o Red Hat Trusted Software Supply Chain ajuda as organizações a integrarem a segurança a componentes, processos e práticas de desenvolvimento de software. Os desenvolvedores podem programar, compilar, implantar e monitorar a entrega de software em conformidade com as práticas de segurança da organização.

Experimente o Red Hat Developer Hub

Leia mais

O que são ferramentas de engenharia de plataforma?

As ferramentas de engenharia de plataforma são recursos que ajudam a melhorar a produtividade das equipes de desenvolvimento por meio de uma abordagem self-service.

Engenharia de plataforma e DevOps

Entenda as diferenças entre engenharia de plataforma e o DevOps para escolher a abordagem que melhor atende aos seus objetivos.

Red Hat OpenShift para engenheiros de plataforma

Red Hat OpenShift fornece aos engenheiros de plataforma as ferramentas necessárias para desenvolver e gerenciar plataformas de desenvolvimento interno com eficiência.

Platform engineering: leitura recomendada

Produtos em destaque

  • Red Hat Developer Hub

    Uma plataforma empresarial aberta baseada no Backstage para a construção de portais de desenvolvedores que consolidam visualmente elementos do processo de desenvolvimento.

  • Red Hat OpenShift

    Uma plataforma unificada de desenvolvimento de aplicações que permite desenvolver, modernizar e implantar aplicações em escala na infraestrutura de nuvem híbrida de sua escolha.