Padrões da arquitetura de referência global
Ao lado de "nenhum padrão GRA" há quatro estilos de padrões GRA.
Nenhum padrão GRA
Quando um padrão GRA não é usado, cada instância do Adobe Commerce é um aplicativo exclusivo. Não há reutilização de código, exceto ao mover manualmente o código de uma instância para outra. Essas cópias sempre divergem. O esforço necessário para garantir que cada instância tenha as mesmas alterações, mas ainda funcione conforme o esperado, pode se tornar excessivo. Nesse cenário, três instâncias precisam de três vezes o esforço de manutenção de uma instância.
O padrão Git GRA dividido
Esse padrão consiste em repositórios Git para desenvolvimento e um repositório Git por instância. Cada arquivo na instância é mantido em um dos repositórios de desenvolvimento. Eles se unem como uma trança formando todo o GRA. Cada linha de código existe apenas em um único repositório de desenvolvimento e é instalada nas instâncias usando a técnica de encadeamento, resultando na reutilização do código.
O padrão GRA de pacotes em massa
Os módulos principais do Adobe Commerce e de terceiros são instalados diretamente pelos repositórios do Composer. Os repositórios Git podem ser usados como repositórios do Composer. Neste padrão, toda a base de código compartilhada do GRA é hospedada em um único ou alguns repositórios Git e instalada por meio do Composer. A principal característica é que vários módulos, pacotes de idiomas ou temas são hospedados em um único pacote de compositor, simplificando o desenvolvimento.
Os pacotes separados padrão GRA
Cada módulo, pacote de idiomas ou tema do Adobe Commerce é instalado como um pacote de compositor separado. Cada personalização tem seu próprio repositório Git. Isso significa flexibilidade máxima na composição das instâncias e tem um gerenciamento de dependência confiável do Composer. Para otimização de desempenho, todos os pacotes são espelhados em um único repositório de compositor privado.
O padrão monorepo GRA
Todo o desenvolvimento ocorre em um único repositório de código. A automação gera pacotes para novas versões e os publica em um repositório do compositor. O padrão combina a baixa sobrecarga de desenvolvimento da abordagem de pacotes em massa com a flexibilidade da abordagem de pacotes separados. O padrão monorepo também é ideal para executar testes funcionais automatizados.
Escolha de um padrão GRA
A escolha de um padrão GRA é feita avaliando a complexidade do projeto, a necessidade de flexibilidade e a capacidade de adaptação da equipe de desenvolvimento.
Equipes com pouca experiência em Adobe Commerce têm um início simples. No entanto, se o projeto exigir um padrão GRA mais complexo devido às suas características, não comprometa.
Características comuns do projeto relacionadas a cada padrão:
-
Nenhum padrão GRA: instância única do Adobe Commerce sem planos de estender. Várias instâncias do Adobe Commerce com compatibilidade mínima entre elas.
-
Padrão Git GRA dividido: equipes que desejam evitar o Composer para suas personalizações. Na maioria dos casos, o padrão de pacotes em massa é um padrão preferencial para o Git dividido.
-
Padrão GRA de pacote em massa: base de código de personalização com alta interdependência. Todas as instâncias têm combinações muito semelhantes de pacotes personalizados. Nenhuma promoção ou rebaixamento frequentes de pacotes individuais. Equipes com pouca experiência em gerenciamento de código e que precisam de simplicidade.
-
Padrão GRA de pacotes separados: gerenciamento flexível do escopo de versão necessário. Há previsão de 50 ou menos pacotes personalizados para os próximos 5 anos. Potencialmente, camadas globais e regionais de código comum. Não há planos para migrar para um padrão Monorepo. A equipe é tecnicamente adepta e tem estrita adesão ao processo.
-
Padrão GRA de Monorepo: todas as características do padrão GRA de pacotes separados. Mais de 50 pacotes estão previstos para os próximos 5 anos. Necessidade de testes automatizados abrangentes. Suporte para ambientes efêmeros. Base de código complexa de escala corporativa que precisa ser dimensionada sem dimensionar o custo de manutenção a uma taxa igual.