Nuova funzione: Utilizzo di archivi Git privati con AEM as a Cloud Service
In AEM as a Cloud Service o nel prodotto AEM 6.5 ospitato da Adobe (AEM Managed Services o "AMS"), esiste da tempo il requisito che la distribuzione di qualsiasi codice in qualsiasi ambiente ospitato da Adobe richieda prima di tutto l'inserimento di tale codice nell'archivio Git ospitato di Adobe.
Il ragionamento è abbastanza semplice: il framework CI/CD di Cloud Manager di Adobe deve eseguire una serie di controlli sul codice, quindi eseguire le build su tale codice dal servizio di build containerizzato e quindi anche essere in grado di contrassegnare le versioni nel repository una volta completate le distribuzioni di produzione.
Privato vs Adobe Repos - Contesto
Ci sono state a lungo una serie di complessità e limitazioni che i clienti AEMaaCS e AMS hanno dovuto affrontare, nell'utilizzo di questo, il che ha reso una funzionalità altamente desiderabile e ricercata la possibilità di utilizzare un repository Git privato con AEM ospitato nel cloud, come ad esempio:
Gestione di due repository
Il repository Adobe Git è solo un repository di distribuzione . Non è pensato per essere il git principale su cui lavorare per sviluppare il tuo sito AEM. Non ha alcun contratto di servizio per la disponibilità o i backup. Pertanto, nell'esecuzione del progetto, è necessario mantenere il proprio repository interno e il repository Adobe per la distribuzione, quindi gestire la sincronizzazione tra tali repository.
Il repository Adobe non dispone di funzionalità come le richieste pull
Ci sono una serie di funzionalità che mancano all'implementazione git di Adobe, il che rende alcune pipeline in fase iniziale un po' impegnative. Ad esempio, Adobe Git non dispone di richieste di threading o pull.
Questo diventa un problema quando la pipeline Adobe CI/CD è l'unico posto in cui è possibile eseguire l'intera suite di test di automazione della compilazione che mostrerebbero cose come violazioni della sicurezza, degrado delle prestazioni, violazioni delle regole Sonarqube, ecc.
Quindi, se hai una nuova funzionalità su cui vuoi aprire una PR che - diciamo - pensi renda il sito più veloce, devi aprire quella PR sul tuo Github, il tuo lead deve "approvarla" anche se non sappiamo se supera i controlli di build, poi la impegni attraverso il git di Adobe a quel punto forse FALLISCE e quindi la tua PR era in qualche modo inutile.
Sicurezza e gestione degli utenti
Non ci sono controlli granulari su Adobe git per controllare la gestione e l'accesso degli utenti. Quindi, finisci per dover implementare la tua sicurezza sul tuo git, quindi fare affidamento sull'automazione della build che crei da parte tua per tentare di limitare quali rami, commit, modifiche, ecc. arrivano al git di Adobe. Può essere fatto, ma aggiunge solo un livello di complessità di Rube Goldberg soggetto a errori.
Archivi Git privati per AEM as a Cloud Service e AMS: cosa ha rilasciato Adobe?
Per essere chiari, si tratta di una prima versione generale di questa funzionalità (annunciata all'Adobe Summit di quest'anno e in anteprima con vari clienti nell'ultimo anno). In quanto tale, non supporta TUTTE le funzionalità che potresti desiderare e ci sono una serie di limitazioni di cui dovresti essere a conoscenza. Ma è un grande passo avanti per chi vive in questo mondo, quindi cercherò di delineare alcune cose che può e non può fare.
Cosa puoi fare ora:
-
Utilizza Github.com nelle pipeline di Cloud Manager: Ora puoi aggiungere un archivio Git github.com come repository di distribuzione in Adobe Cloud Manager.
Nota: Questo si riferisce specificamente al sito https://github.com/ pubblico e non a Github self-hosted o ad altri provider git. Adobe utilizza un'app Github per essere in grado di autenticarsi e mantenere l'accesso per Git, e questa è una parte necessaria del processo in questo momento.Questo è probabilmente uno dei principali ostacoli all'implementazione di altri fornitori di git.
-
Eseguire pipeline di qualità del codice nelle richieste pull: Una parte molto utile di questo "spostamento a sinistra" nella pipeline che questo ti consente di fare, è aprire PR in github che possono quindi avviare una pipeline di qualità del codice di Cloud Manager, che può quindi riportare i suoi risultati DIRETTAMENTE NELLA PR. Questo è enorme per essere in grado di convalidare se una PR è davvero approvabile o se dovrebbe tornare indietro per una rielaborazione.
-
Le pipeline di richiesta pull vengono create e sfoltite automaticamente: Quando apri una richiesta pull che avvia una pipeline di qualità del codice in Cloud Manager, viene creata una pipeline specifica per quella richiesta pull e verrà eseguita e restituita in modo specifico per quella richiesta pull. Quando la richiesta pull viene chiusa, Cloud Manager la rimuoverà automaticamente in modo da non essere intasato da un milione di pipeline PR.
Questo comportamento è configurabile nel progetto. -
Esecuzione di pipeline full-stack: Dopo aver eseguito un controllo della qualità del codice e aver approvato le richieste pull, è possibile configurare le pipeline full-stack di Cloud Manager in modo che possano essere eseguite, direttamente dal repository Github e senza dover transitare nel repository Adobe di Cloud Manager.
Queste distribuzioni possono funzionare fino alla produzione. -
Funziona sia su AMS (AEM 6.5) che su AEM as a Cloud Service: supporta entrambi i tipi di infrastrutture, con le stesse avvertenze qui.
Cosa non puoi ancora fare:
-
Utilizzare altri repository Git non Github: Questa funzione funziona solo su https://github.com. Quindi, se hai "company.github.com" o "gitlab.com" o "bitbucket.com" o Azure Repos o qualsiasi altro provider Git non Github, questo non funzionerà ancora per l'utente.
Adobe ha affermato che stanno lavorando attivamente per dare priorità e abilitare altri fornitori di git in base alle esigenze dei clienti, quindi se hai una NECESSITÀ, non perdere tempo a contattare qualsiasi dipendente Adobe che conosci che ti ascolterà. -
Nessuna pipeline di configurazione, front-end o a livello Web: Attualmente questa funzione funziona solo con la "pipeline Full-Stack" che distribuisce tutto nel progetto AEM. Se si usano le altre pipeline di sottomoduli, ad esempio la pipeline di livello Web per distribuire il codice solo dispatcher o la pipeline di configurazione per distribuire le configurazioni della rete CDN, questa funzionalità non è ancora adatta all'utente.
-
Git Trigger non funziona ancora: Se si sta tentando di avviare una pipeline (qualità del codice o distribuzione) su un trigger Git, in modo che avvii la distribuzione una volta eseguito il commit del codice, questo non funziona ancora.
A questo punto, anche se l'opzione "Trigger di distribuzione: Sulle modifiche Git" è selezionata, sarà comunque necessario attivare manualmente la distribuzione. Questo è ora menzionato anche nella sezione "Limitazioni" della documentazione. (Tanto di cappello a Sathish Balan per avermelo fatto notare!)
Perfezionamento della pipeline AEM
Se questo è qualcosa che potresti voler provare tu stesso, la documentazione è qui su come iniziare con Github autogestito in AEM.
Tuttavia, se non sei sicuro se questo è qualcosa che vuoi implementare o meno, o hai altre preoccupazioni sulla distribuzione o CI/CD di cui vuoi parlare, sono felice di parlare!
Inoltre, per ulteriori informazioni sull'argomento (se ti piacciono i podcast), il nostro CTO Dwayne Hale ed io discutiamo qui i meriti e i demeriti dell'esecuzione di apparecchiature cloud rispetto a quelle AEM self-hosted.

Tad Reeves
Architetto principale presso Arbory Digital
AEM Architect & DevOps guy con 14 anni di esperienza su AEM/CQ e 25+ anni nell'infrastruttura di sistema. Va in mountain bike da più tempo di quanto non si occupi di amministrazione del sistema e, sebbene sia originario del Maine, vive tra le montagne della Georgia nord-occidentale.
Ti piace quello che hai sentito? Hai domande su cosa è giusto per te? Ci piacerebbe parlare! Contattaci
Episodi di podcast e post del blog

Che cos'è AEM? A cosa serve Adobe Experience Manager? Abbiamo cercato di fare una spiegazione di base di ciò che AEM è e fa in 30 minuti o meno - e in qualche modo siamo riusciti a farcela, nonostante i Vigili del Fuoco si siano presentati casualmente a circa 19 minuti dall'inizio della registrazione del podcast!.

Quanto ne sai degli strumenti a tua disposizione per ottimizzare le prestazioni del tuo sito nella Cina continentale? E anche se non hai un sito in lingua cinese, devi preoccuparti delle prestazioni in Cina? DAVVERO!

Nell'odierna guerra tra il rimpatrio del cloud e i nuovi servizi di Edge Delivery incredibilmente veloci, torniamo alla domanda: l'AEM self-hosted esiste ancora?