Hantering och åtgärder för Azure Container Apps – Accelerator för landningszon
Granska funktioner och tjänster i Azure Container Apps som är tillgängliga för att hjälpa dig att utforma och underhålla din app för långsiktig hälsa och stabilitet.
Förstå gränserna för Container Apps.
Överväg att isolera arbetsbelastningar på nätverks-, beräknings-, övervaknings- eller datanivå.
Förstå sätt att styra resursförbrukning efter arbetsbelastningar.
Använd hälsoavsökningar för att rapportera och återställa från försämrad programhälsa.
Använd Dapr för att upprätta säkra anslutningar till externa tjänster.
Använd loggning och övervakning för att ge insikter om eventuella problem som är kopplade till dina program.
Använd aviseringar under kritiska program- och systemhändelser för att säkerställa att driftpersonalen kan vidta snabba åtgärder i händelse av programfel.
Definiera en skalningsstrategi för att säkerställa tillräckligt med tillgänglig kapacitet för att hantera trafik till ditt program, samtidigt som outnyttjad kapacitet minimeras. Skalningsutlösare inkluderar cpu- eller minnesanvändning, tillsammans med alla SKALningsfunktioner som stöds av KEDA.
Var bekant med Envoy eftersom Azure Container Apps använder det som en nätverksproxy.
Tänk på kraven för mål för återställningstid (RTO) och mål för återställningspunkter (RPO) kring affärskontinuitet och haveriberedskap. Definiera ett serviceavtal (SLA) för din infrastruktur och ditt program. Läs mer om serviceavtalet för Azure Container Apps. Mer information om månatliga drifttidsberäkningar finns i avsnittet SLA-information .
Beroende på de specifika kraven för ditt program kan du behöva använda åtgärder med hög tillgänglighet för att säkerställa fortsatt drift om det finns problem med den underliggande Azure-plattformen. Med de olika zonerna och regionerna i Azure kan du skapa lösningar för hög tillgänglighet:
Tillgänglighetszoner är felisoleringskonstruktioner i Azures datacenterdesign. Varje zon har sin egen kraft, sitt nätverk och sin egen kylning för att minimera risken för avbrott som sprids över zoner. Om du vill använda Tillgänglighetszoner kan varje Azure-resurs distribueras antingen till en specifik zon ("zonindelad") eller till alla zoner ("zonredundant").
Lösningar för flera regioner ger den högsta nivån av felisolering och högsta tillförlitlighet, men är ofta svårare att implementera på grund av den högre svarstiden mellan de geografiska regionerna. Den här svarstiden kan orsaka datareplikeringsfördröjningar. Mer information om design i flera regioner finns i dokumentationen om Azure Mission Critical.
Överväg att använda Azure DevOps och GitHub för att tillhandahålla automatiserade sätt att hantera utveckling, bygge och distributionsprocesser.
Rekommendationer
Isolera efter miljö: Skapa distinkta Container Apps-miljöer för fullständig resursisolering. Undvik att använda revisioner för att skapa klientspecifika containerappar. Mer information finns i Azure Container Apps i en lösning med flera klientorganisationer.
Använd gränser för beräkningsresurser: Använd begränsningar för processor- och minnesresurser för containrar för att hantera beräknings- och minnesresurser i en miljö. Standardgränserna för containrar är 2 vCPU och 4 GiB för beräkning respektive minne.
Använd hälsoavsökningar: Lägg till hälsoavsökningar i dina containerappar. Kontrollera att revisionerna innehåller
livenessProbe
,readinessProbe
ochstartupProbe
. Mer information finns i Hälsoavsökningar för Azure Container Apps.Konfigurera hälsoavsökningar korrekt: Hälsoavsökningen ansvarar för att göra anrop till en slutpunkt och förväntar sig att få en statuskod för lyckades, vanligtvis i HTTP 2xx-intervallet, när systemet är i ett felfritt tillstånd. Vi rekommenderar att den här slutpunkten utför kontroller inte bara på systemets hälsa utan även på hälsotillståndet för kritiska underordnade komponenter, till exempel databaser, lagrings- och meddelandetjänster. För att förhindra en kontinuerlig kaskad av hälsokontroller är det viktigt att implementera cachelagring av de underordnade hälsosvaren under en kort tid.
Logga i stor utsträckning: Skapa Log Analytics-frågor för att söka efter varningar, fel och kritiska meddelanden.
Programloggar genereras av meddelanden från containerkonsolens utdata (/
stdout
stderr
). När Dapr är aktiverat innehåller konsolens utdata både programcontainer- och Dapr-sidovagnsmeddelanden. Mer information om hur du kör frågor mot loggar med hjälp av log analytics finns i Loggövervakning .Systemloggar genereras av Azure Container Apps.
Aktivera visuell spårning: När du aktiverar Dapr konfigurerar du DaprAIInstrumentationKey på ACA-miljönivå för att visualisera containerappar som distribueras spårning i Azure Application Insights-programkartan.
Använd Application Insights SDK: Användning av Application Insights SDK för programdata som agent för automatisk instrumentering stöds inte ännu.
Använd tillgänglighetszoner: När du behöver hög tillgänglighet använder du Tillgänglighetszoner på alla resurser. Se till att inte bara containerapparna är zonredundanta, utan även närliggande tjänster som krävs för att uppfylla begäranden, till exempel databaser, lagrings- och meddelandetjänster.
Använd distribuerad replikering: För haveriberedskap (DR) kontrollerar du att dina programdata och källkod är tillgängliga i mer än en Azure-region. Azure Storage-konton tillåter till exempel geo-replikerad lagring och Azure SQL Databases tillåter att skrivskyddade repliker placeras i andra regioner.
Automatisera versioner: Använd automatisering från slutpunkt till slutpunkt för att skapa och distribuera dina Azure Container Apps-program.
Använd ett containerregister: Lagra dina containeravbildningar i Azure Container Registry och geo-replikera registret till varje ACA-region.
Testa planen för haveriberedskap: Skapa och testa en haveriberedskapsplan regelbundet med hjälp av scenarier med nyckelfel. Mer information finns i Testa säkerhetskopiering och haveriberedskap.