Observação: este é um tópico um pouco mais avançado sobre Serviços de Entrega de Borda e Criação de Documentos. Para uma introdução ao EDS e à autoria de documentos, consulte primeiro este link para obter contexto.

Informações básicas sobre configurações de entrega do AEM Edge baseadas em arquivos e serviço de configuração.

Quando a Adobe lançou o Edge Delivery Services (ou Helix, como é conhecido internamente), toda a configuração principal do site era feita usando arquivos de configuração armazenados no repositório do site. A implantação de uma nova configuração foi feita enviando uma atualização para o branch main do repositório, o que colocou essa configuração em funcionamento no site. Uma desvantagem disso era que qualquer repositório específico precisava estar diretamente vinculado a um site e a um repositório de documentos. Nesse caso, não seria possível ter um único repositório de código gerenciando vários sites - ou mesmo várias versões de um único site (como ambientes no estilo dev/stg/prd para preparação de conteúdo ou configuração).

Como resultado disso e de outras questões técnicas, a Adobe vem migrando para um novo projeto de arquitetura baseado no Serviço de Configuração. Nesse paradigma, as configurações são armazenadas e versionadas centralmente pela Adobe em seu Serviço de Configuração baseado em API e, uma vez migrados para esse serviço, os arquivos do seu projeto Edge Delivery não terão mais efeito no site.

Pré-requisitos para migrar para o Serviço de Configuração

Conforme observado em https://www.aem.live/docs/config-service-setup#prerequisites, antes de iniciar a migração para o Config Service, você precisa primeiro garantir que seu usuário da Adobe esteja mapeado como administrador da sua organização do Github, para que você tenha autoridade no Config Service para fazer alterações. Seu contato técnico da Adobe, com quem você geralmente lida, deve conseguir te ajudar com isso.

Pontos de extremidade e superfícies de configuração afetados pela migração para o serviço de configuração.

Isso afeta as seguintes superfícies de configuração em um projeto de Entrega de Borda:

Etapas para migrar um site de entrega de borda baseado em arquivos existente para o Config Service.

Existe um comando migrate na API do AEM Admin (Helix) que permite migrar automaticamente uma configuração de entrega de borda baseada em arquivo para o Config Service. No entanto, existem algumas ressalvas, então aqui está o que você precisa saber sobre isso.

Primeiro, vamos supor que você já tenha um site criado no DA usando configuração baseada em arquivos (sei que tenho alguns sites assim, posso estar na minoria, mas este é o meu post no blog - você precisará reavaliar os passos para o seu caso específico).

Passos:

  1. Certifique-se de ser administrador da sua organização: Conforme mencionado acima, trabalhe com a Adobe para garantir que você tenha admin na sua organização do Github. Valide isso acessando https://tools.aem.live/tools/site-admin/index.html e depois faça login. Se tudo funcionar corretamente, você deverá ver uma solicitação 200 bem-sucedida para https://admin.hlx.page/config/[orgname]/sites.json

  2. Obtenha seu token de autenticação: Pressione shift+ctrl+I ou shift+cmd+I para abrir as ferramentas de desenvolvedor e observe a solicitação sites.json mencionada acima. Se você abrir a aba de rede e olhar os cabeçalhos, você verá um valor x-auth-token . Copie esse valor, pois esse é o token de portador que você precisará usar nas próximas solicitações de API para interagir com o Serviço de Configuração do AEM.

  3. Faça uma cópia do seu site: É uma boa ideia fazer um teste no seu site (aquele com configurações baseadas em arquivos) para que você possa testar esse processo antes de executá-lo em produção. Crie um novo repositório e site EDS e preencha-o com a mesma base de código do seu site atual (caso ainda não possua um repositório de desenvolvimento). Idealmente, também, crie uma fonte de conteúdo de desenvolvimento para que você tenha um ambiente de testes totalmente equipado e operacional para experimentar.

  4. Execute o comando Migrate em modo de teste: Execute o seguinte comando, que fará uma simulação da migração do serviço baseado em arquivos para o serviço de configuração:

    curl --request GET --url 'https://admin.hlx.page/config/{my-org}/sites/{my-site}.json?migrate=true&validate=true' -H "Authorization: token $MY_AUTH_TOKEN_NOTED_ABOVE"

    Se isso funcionar, exibirá um texto de validação como o seguinte, que indicará se a migração funcionará ou não. No meu caso, significa que NÃO estou pronto para migrar e tenho coisas a resolver:

    "error": "validation failed.", "message": "/sidekick/plugins/0/environments/0 must be equal to one of the allowed values; /sidekick/plugins/2/environments/0 must be equal to one of the allowed values",

    Além disso, se você receber um erro 400 (Bad Request) na sua invocação, também poderá usar o cabeçalho x-error na resposta HTTP, que também informará sobre quaisquer problemas na solicitação de simulação de migração:

    Neste caso, o erro está me dizendo que na minha lista de plugins do AEM Sidekick, o primeiro plugin em /tools/sidekick/config.json é inválido, pois configurar um plugin desta forma não é mais suportado no Config Service. Neste exemplo, preciso migrar este plugin para a planilha da Biblioteca DA para plugins do DA.

  5. Corrija quaisquer problemas de validação conforme mencionado acima: você precisará revisar e corrigir quaisquer problemas que surgirem e, em seguida, executar novamente sua solicitação de validação.

    Pegue todos os plugins existentes definidos como plugins Sidekick no projeto e coloque-os no DA. No caso de problemas com o plugin Sidekick como este, os plugins DA seriam configurados em https://da.live/config#/[orgname]/[sitename]/ na aba "biblioteca" da planilha.

    Ou outro problema como este:

    Isso indica que tínhamos algumas propriedades ilegais em nossos cabeçalhos que não são mais suportadas (ou talvez nunca tenham sido suportadas e simplesmente não causavam problemas, então foram deixadas lá por engano).

    Assim que esses problemas forem resolvidos, você estará pronto para executar a migração propriamente dita.

  6. Envie/Migre a configuração limpa e validada para o serviço de configuração: Para enviar a configuração, use o seguinte comando:

    curl --request POST --url 'https://admin.hlx.page/config/{my-org}/sites/{my-site}.json?migrate=true' -H "Authorization: token $MY_AUTH_TOKEN_NOTED_ABOVE"

    Essencialmente o mesmo comando que acima, mas com um POST em vez de um GET. Isso irá migrar você para o serviço de configuração.

  7. Validação: Há algumas coisas que você precisa validar imediatamente após a migração.

    1. Validar índices: Acesse https://tools.aem.live/tools/index-admin/index.html e verifique se seus índices foram importados corretamente.
    2. Validar Sitemaps: Acesse https://tools.aem.live/tools/sitemap-admin/index.html e verifique se todos os sitemaps foram enviados corretamente.
    3. Validar usuários: Vá para https://tools.aem.live/tools/user-admin/index.html?org={orgname}&site={sitename} e verifique se seus usuários de Visualização/Publicação estão aparecendo lá.
    4. Validar usuários no DA: Vá para https://da.live/apps/aem-permissions#/{orgname}/{sitename} , que permitirá que você veja uma lista amigável das permissões de visualização/publicação conforme elas são expostas ao DA. É também aqui que você agora poderá
    5. Validar Pré-visualização/Publicação: Ao iniciar sessão como um utilizador com permissões de pré-visualização/publicação, certifique-se de que ainda consegue pré-visualizar/publicar corretamente. Obtenha um usuário que NÃO tenha acesso à pré-visualização ou publicação e certifique-se de que esse acesso esteja devidamente restrito.
    6. Qualquer outra validação diversa que você julgue necessária para o seu site.
  8. Teste de estabilidade: Realize testes de qualidade e integração com a equipe, corrija quaisquer outros problemas de pré-visualização/publicação que surgirem e deixe a nova configuração em funcionamento por pelo menos uma semana para identificar quaisquer outros problemas que possam aparecer.

  9. Limpeza dos arquivos de configuração: Após a conclusão do período de testes (burn-in), você não precisará mais das configurações internas do repositório e poderá começar a removê-las uma a uma. Recomendo manter cópias limpas das suas configurações atuais no Git para controle de versão, apenas para fins de recuperação de desastres, caso alguém faça uma requisição de API incorreta que, por algum motivo, não possa ser desfeita.

Notas sobre as implicações de CI/CD do Config Service

Uma observação sobre CI/CD: agora que você tem a flexibilidade inerente de um serviço de configuração baseado em API, você também tem a desvantagem de que seu CI/CD baseado em Git não terá mais efeito.

A boa notícia é que existem ferramentas como o Version Admin para acompanhar as alterações de configuração e quem fez cada alteração:

A má notícia é que isso remove a estrutura de CI/CD integrada e centrada em pull requests que todos conhecemos e adoramos no Edge Delivery. Portanto, se você tiver situações em que deseja que um engenheiro júnior proponha alterações, será significativamente mais difícil para ele fornecer uma solicitação de pull request que demonstre que a alteração de configuração proposta pode ser implementada com segurança.

A situação se complica ainda mais pelo fato de a autorização da API ser baseada no usuário atualmente conectado, o que torna um pouco difícil a integração de um conjunto persistente de chaves em um pipeline de CI/CD. Tenho certeza de que é possível, só vai exigir alguns ajustes.

Portanto, para isso (até o momento da redação deste texto), você precisará implementar seu próprio processo de CI/CD com o qual se sinta confortável, levando em consideração o tamanho e a estrutura da sua organização.

Espero que isso ajude, e por favor, entre em contato se tiver algum problema com alguma dessas etapas!

Sobre o autor

Tad Reeves

Arquiteto Principal na Arbory Digital

Tad é bicampeão do AEM e trabalha com o Adobe Experience Manager e o CQ desde 2010. Desde 1996, ele desempenhou praticamente todas as funções na área de desenvolvimento de websites, desde arquitetura de soluções até gerenciamento de produtos, além de anos de experiência em DevOps e administração de sistemas. Ele adora o fato de a Arbory Digital lhe dar a oportunidade de fornecer soluções honestas e eficazes, mesmo que isso signifique desafiar as perspectivas de vendas predominantes. Quando Tad não está trabalhando (e às vezes até quando está), ele gosta de andar de bicicleta nas montanhas e explorar a natureza com sua esposa e seus 3 filhos.

Entre em contato com Tad pelo LinkedIn.

Gostou do que ouviu? Tem dúvidas sobre o que é certo para você? Adoraríamos conversar! Entre em contato conosco.

Mais artigos que você pode gostar

category
Podcasts, AEM Technical Help, AEM News, Arbory Digital News, Customer Stories, Podcasts
tags
AEM, EDS
number of rows
1