Distribuera koden

Senaste uppdatering: 2024-01-17

Lär dig hur du distribuerar koden till Production med Cloud Manager-pipelines AEM as a Cloud Service.

Produktionspipeline

Distribuera kod sömlöst till scenen och sedan till produktionen via en produktionsprocess. Körningen av produktionspipeline är uppdelad i två logiska faser.

  1. Distribution till scenmiljö
    • Koden byggs och distribueras till scenmiljön för automatisk funktionstestning, UI-testning, upplevelsegranskning och UAT (User accept testing).
  2. Distribution till produktionsmiljö
    • När bygget har validerats på scenen och godkänts för att befordras till produktion distribueras samma bygge-artefakt till produktionsmiljön.

Det är bara pipeline-typen Full Stack Code som har stöd för kodskanning, funktionstestning, gränssnittstestning och upplevelsegranskning.

Distribuera din kod med Cloud Manager på AEM as a Cloud Service

När du har har konfigurerat produktionsförloppet som databas-, miljö- och testmiljö är du redo att driftsätta koden.

  1. Logga in i Cloud Manager på my.cloudmanager.adobe.com och välja lämplig organisation.

  2. Mina program ska du trycka eller klicka på det program som du vill distribuera kod för.

  3. Klicka Distribuera från uppmaning till åtgärd på Ökning för att starta distributionsprocessen.

    CTA

  4. The Körning av pipeline visas. Klicka Bygge för att starta processen.

    Pipeline Execution screen

Byggprocessen distribuerar koden i tre faser.

  1. Scendistribution
  2. Scentestning
  3. Produktionsdistribution
TIPS

Du kan granska stegen från olika distributionsprocesser genom att visa loggar eller granska resultaten för att se testvillkoren.

Scendistributionsfas

The Scendistribution fas. omfattar de här stegen.

  • Validering - Detta steg säkerställer att pipeline är konfigurerad att använda de tillgängliga resurserna. Du kan till exempel testa att den konfigurerade grenen finns och att miljöerna är tillgängliga.
  • Build & Unit Testing - Det här steget kör en innesluten byggprocess.
  • Kodskanning - I det här steget utvärderas kvaliteten på programkoden.
  • Skapa bilder - Den här processen gör att du kan omvandla innehåll och dispatcherpaket som skapats av byggsteget till Docker-bilder och Kubernetes-konfigurationer.
  • Distribuera till scenen - Bilden distribueras till testmiljön som förberedelse för Scenens testfas.

Scendistribution

Scentestfas

The Stage testing dessa steg.

  • Funktionstestning av produkten - Molnhanterarens pipeline kör tester som körs mot scenmiljön.

  • Anpassad funktionstestning - Det här steget i pipeline körs alltid och kan inte hoppas över. Om inget test-JAR produceras av bygget godkänns testet som standard.

  • Anpassade gränssnittstestningar - Det här steget är en valfri funktion som automatiskt kör gränssnittstester som skapats för anpassade program.

    • Användargränssnittstester är självstudiebaserade tester som paketeras i en Docker-bild för att möjliggöra ett brett val av språk och ramverk (t.ex. Java och Maven, Node och WebDriver.io eller andra ramverk och tekniker som bygger på Selenium).
    • Se Anpassade gränssnittstestningar för mer information.
  • Experience Audit - Det här steget i pipeline körs alltid och kan inte hoppas över. När en produktionsprocess körs inkluderas ett steg för upplevelsegranskning efter anpassad funktionstestning som kör kontrollerna.

    • De konfigurerade sidorna skickas till tjänsten och utvärderas.
    • Resultaten är informativa och visar poängen och förändringen mellan aktuella och tidigare poäng.
    • Den här insikten är värdefull för att avgöra om det finns en regression som introduceras i den aktuella distributionen.
    • Se Upplevelsegranskningsresultat för mer information.

Scentestning

Produktionsdistributionsfas

Processen för att distribuera till produktionstopologier skiljer sig något för att minimera påverkan för besökare på en AEM.

Produktionsinstallationer följer i allmänhet samma steg som tidigare, men på ett rullande sätt.

  1. Distribuera AEM som ska författas.
  2. Koppla loss dispatcher1 från belastningsutjämnaren.
  3. Distribuera AEM paket till publish1 och dispatcherpaketet till dispatcher1, flush dispatcher cache.
  4. Placera dispatcher1 i belastningsutjämnaren igen.
  5. När dispatcher1 är tillbaka i tjänst frigör du dispatcher2 från belastningsutjämnaren.
  6. Distribuera AEM paket till publish2 och dispatcherpaketet till dispatcher2, flush dispatcher cache.
  7. Placera dispatcher2 i belastningsutjämnaren igen.

Den här processen fortsätter tills distributionen har nått alla utgivare och utgivare i topologin.

Produktionsdistributionsfas

Timeout

Följande steg gör timeout om du väntar på användarfeedback:

Steg Timeout
Testning av kodkvalitet 14 dagar
Säkerhetstestning 14 dagar
Prestandatestning 14 dagar
Ansökan om godkännande 14 dagar
Schemalägg produktionsdistribution 14 dagar
Stöd för CSE 14 dagar

Distributionsprocess

Alla driftsättningar av Cloud Service följer en rullande process för att säkerställa noll driftavbrott. Se Hur rullande distributioner fungerar om du vill veta mer.

OBSERVERA

Dispatcher-cachen rensas bort för varje distribution. Den värms upp senare innan de nya publiceringsnoderna accepterar trafik.

Köra om en produktionsdistribution

I sällsynta fall kan produktionsdistributionsstegen misslyckas av tillfälliga orsaker. I sådana fall stöds omkörning av produktionsdistributionssteget så länge produktionsdistributionssteget har slutförts, oavsett typ av slutförande (t.ex. avbruten eller misslyckad). Omkörning skapar en ny körning med samma pipeline som består av tre steg.

  1. Valideringssteget - Detta är i stort sett samma validering som sker under en normal pipeline-körning.
  2. Byggsteget - I samband med en omkörning kopieras artefakter och ingen ny byggprocess utförs.
  3. Produktionsdistributionssteget - Detta använder samma konfiguration och alternativ som produktionsdistributionssteget i en normal pipeline-körning.

I sådana fall där ett återgenomförande är möjligt visas statussidan för produktionsflödet på sidan med Kör igen alternativ bredvid det vanliga Hämta bygglogg alternativ.

Alternativet Kör igen i översiktsfönstret för pipeline

OBSERVERA

I en omkörning markeras byggsteget i användargränssnittet för att reflektera att det är kopieringsartefakter och inte återskapande.

Begränsningar

  • Det går bara att köra produktionsdistributionssteget på nytt för den senaste körningen.
  • Omkörning är inte tillgängligt för push-uppdateringskörningar.
    • Om den senaste körningen är en push-uppdateringskörning går det inte att utföra om.
  • Om den senaste körningen misslyckades någon gång före produktionsdistributionssteget går det inte att utföra om.

Kör API igen

Förutom att vara tillgänglig i användargränssnittet kan du använda Cloud Manager API för att utlösa omkörningar och identifiera körningar som utlöstes som omkörningar.

Utlösa en omkörning

Gör en PUT-begäran till HAL Link om du vill utlösa en omkörning https://ns.adobe.com/adobecloud/rel/pipeline/reExecute i produktionsdistributionssteget.

  • Om den här länken finns kan körningen startas om från det steget.
  • Om den inte finns kan inte körningen startas om från det steget.

Den här länken är bara tillgänglig för produktionsdistributionssteget.

 {
  "_links": {
    "https://ns.adobe.com/adobecloud/rel/pipeline/logs": {
      "href": "/api/program/4/pipeline/1/execution/953671/phase/1575676/step/2983530/logs",
      "templated": false
    },
    "https://ns.adobe.com/adobecloud/rel/pipeline/reExecute": {
      "href": "/api/program/4/pipeline/1/execution?stepId=2983530",
      "templated": false
    },
    "https://ns.adobe.com/adobecloud/rel/pipeline/metrics": {
      "href": "/api/program/4/pipeline/1/execution/953671/phase/1575676/step/2983530/metrics",
      "templated": false
    },
    "self": {
      "href": "/api/program/4/pipeline/1/execution/953671/phase/1575676/step/2983530",
      "templated": false
    }
  },
  "id": "6187842",
  "stepId": "2983530",
  "phaseId": "1575676",
  "action": "deploy",
  "environment": "weretail-global-b75-prod",
  "environmentType": "prod",
  "environmentId": "59254",
  "startedAt": "2022-01-20T14:47:41.247+0000",
  "finishedAt": "2022-01-20T15:06:19.885+0000",
  "updatedAt": "2022-01-20T15:06:20.803+0000",
  "details": {
  },
  "status": "FINISHED"

Syntaxen för HAL-länkens href-värde är bara ett exempel. Det faktiska värdet ska alltid läsas från HAL-länken och inte genereras.

Om du skickar en PUT-begäran till den här slutpunkten får du ett svar från 2010 om det lyckas, och svarstexten är representationen av den nya körningen. Det liknar att starta en vanlig körning via API:t.

Identifiera en körning som utförts på nytt

Körda körningar kan identifieras av värdet RE_EXECUTE i trigger fält.

På denna sida