Designprinciper för SaaS-arbetsbelastningar i Azure
Som oberoende programvaruleverantör (ISV) som levererar en SaaS-lösning är du ansvarig för lösningens arkitektoniska kvalitet och du delar ansvaret med din kund. De förlitar sig på din lösning, och problem kan överlappa dem. Om din organisation är mogen och har en etablerad kundbas är tillförlitlighet och säkerhet förmodligen dina största problem. Avbrott och säkerhetsöverträdelser kan få negativa konsekvenser för företagets intäkter och rykte.
Men många ISV:er, särskilt isv:er för start, fungerar med begränsade resurser för att minimera kostnaderna. Om din organisation är i startfasen kan du behöva göra aggressiva kompromisser för att gå vidare till nästa tillväxtfas. Du kanske inte har dedikerade team för styrning, säkerhet eller distributionsautomation, men kom ihåg att planera för framtida tillväxt. Om du måste ta risker kan du fatta beräknade beslut.
Hur du utformar en lösning som fungerar på en låg skalningsvolym skiljer sig från en storskalig lösning. För att stödja snabb tillväxt bör du utforma en SaaS-arbetsbelastningsarkitektur med flexibilitet och anpassningsbarhet. I den här artikeln beskrivs de underliggande principerna med hänsyn till tillväxtutvecklingen. Tänk på alla fem välarkitekterade ramverkspelare tillsammans, inklusive kompromisserna. Det finns en minimistandard för alla pelare, så tänk på var och en. Om du inte tillämpar dessa principer kan du införa ekonomiska förluster och minska kundernas förtroende.
Tillförlitlighet
Designprincip | Att tänka på |
---|---|
Prioritera tillgänglighet. | Din lösning är din verksamhet. Upprätthålla hög tillgänglighet så mycket som praktiskt. Om lösningen drabbas av ett avbrott kan effekten påverka inte bara dina kunder utan även deras kunder. |
Var tydlig med serviceavtal (SLA) som du erbjuder dina kunder. | När du skapar ekonomiskt säkerhetskopierade serviceavtal för dina kunder ska du se till att du kan uppfylla dem och att de komponenter du är beroende av är kompatibla med dem. Granska de sammansatta serviceavtalen för underliggande Azure-tjänster som en del av designprocessen för serviceavtal. Gör inga antaganden. Återspegla din modell för delat ansvar i dina serviceavtal. |
Kompromiss: Tillförlitlighet och kostnad. För att uppnå hög tillförlitlighet behöver du ofta distribuera extra resurser. Du kan till exempel distribuera resurser över flera tillgänglighetszoner eller regioner. Vissa Azure-tjänster erbjuder inbyggd geo-replikering eller replikering mellan zoner, men dessa funktioner medför ofta höga kostnader.
Fatta välgrundade beslut om den återhämtningsnivå som din budget tillåter. Om tillförlitligheten för vissa komponenter eller flöden i arbetsbelastningen inte har ekonomiska konsekvenser bör du överväga billiga möjligheter att förbättra din återhämtning. Du kan till exempel använda tillgänglighetszoner för plattformstjänster, regelbundet säkerhetskopiera data till en annan fysisk plats och använda infrastruktur som kod (IaC) för att snabbt omdistribuera resurser under återställningsprocesser.
Säkerhet
Designprincip | Att tänka på |
---|---|
Upprätta styrning som grund för säkerhet. | Upprätta god styrningspraxis från början i stället för att åtgärda problem senare. Många faktorer påverkar säkerheten, till exempel hur du hanterar roller, organiserar resurser och implementerar principer. Utan robust styrning skyddar inte säkerhetskontroller systemet. |
Följ en molnsäkerhetsbaslinje från dag ett. | Förvänta dig säkerhetsgranskningar från dina kunder. Införliva spårningsloggar tidigt i din design. |
Isolera dina kunder och isolera dina segment. | Använd din innehavarmodell som en strategi för dataisolering. Segmentera dina distributioner och miljöer. |
Börja med Nolltillit och ge minsta möjliga åtkomst. | Standardvärdet är en position utan åtkomst. Införa endast minsta åtkomst när det behövs. Använd den här strategin för identitetshantering och nätverkstrafik. Granska regelbundet flöden genom systemet och vidta åtgärder för avvikelser. |
Undvik autentiseringsuppgifter där det är möjligt. Om du måste använda autentiseringsuppgifter skyddar du dem. | Behandla autentiseringsuppgifter som en skuld. Använd välrenommerade identitetsprovidrar och tekniker som minimerar lagring av autentiseringsuppgifter. När det är oundvikligt kan du skydda autentiseringsuppgifter med säkra molnbaserade metoder. Hantera kundens autentiseringsuppgifter och hemligheter med största försiktighet. |
Anta säkerhet som en pågående process. | Utvärdera säkerhetsstatusen kontinuerligt. Överväg det växande hotlandskapet, nya funktioner och protokoll samt uppdaterade efterlevnads- eller regelkrav. |
Kompromiss: Säkerhets- och kostnadsoptimering. Det är dyrt att utforma och använda säkra lösningar. Men du kan uppnå betydande steg mot säkerhet, till exempel god styrning och att följa en säkerhetsbaslinje, med minimala eller inga kostnader. Fastställa balansen mellan kostnadseffektivitet och din idealiska säkerhetsstatus.
Kostnadsoptimering
Designprincip | Att tänka på |
---|---|
Betala bara för det du behöver. | Dra nytta av Microsoft Cost Management-funktioner för att förstå dina totala utgifter. Prioritera de dyraste resurskategorierna för ytterligare granskning. Identifiera områden där du kan spendera för mycket. |
Använd det du betalar för. | Maximera värdet från resurser som du betalar för men som du kanske underanvänder. |
Modellera dina kostnader. | Spåra din kostnad för sålda varor. Förstå kostnaden för att leverera din lösning till kunder. Den här processen liknar tillverkning av en fysisk produkt. För att informera ditt beslutsfattande övervakar du kostnaden för varje kund i förhållande till de intäkter som de genererar. För att snabbt förstå och aggregera dina Azure-utgifter implementerar du styrningsprocesser, till exempel bra resursorganisation och taggning. |
Förstå hur dina kostnader och intäkter är relaterade. | Undvik situationer där kostnaderna ökar utan motsvarande ökning av intäkterna. Kostnaderna kan till exempel öka om du lägger till en ny funktion som erbjuder obegränsad kostnadsfri lagring. På samma sätt, om du debiterar kunder baserat på antalet användare, se till att du kopplar funktioner till användarna. |
Kompromiss: Kostnadsoptimering och tillförlitlighet. För att skapa tillförlitliga lösningar behöver du ofta distribuera extra komponenter, överföra mer data och använda mer motståndskraftiga nyckelkomponent-SKU:er, som alla ökar kostnaderna. Den extra tillförlitligheten är ofta värd kostnaden, men du måste fatta välgrundade beslut. För att kompensera för dessa kostnadsökningar ser du till att du använder andra komponenter effektivt och maximerar deras värde.
Driftsäkerhet
Designprincip | Att tänka på |
---|---|
Förstå modellen med delat ansvar. | Definiera tydligt ansvarsområden för din molnleverantör, dina kunder och din organisation. Se till att alla vet vem som ansvarar för vilka uppgifter. |
Förbered för att driva en lösning för dina kunders räkning. | Konfigurera din organisation, ditt team, dina processer och verktyg för att stödja driften av SaaS i stor skala. |
Anta konsekventa processer. | Använd distributionsstämplar. Skapa konsekvens i stämpelkonfigurationen och arkitekturen. Automatisera eller standardisera processer. |
Formalisera undantag eller skillnader. | Definiera olika SKU:er för att uppfylla olika behov. Använd den här metoden för att undvika anpassade distributioner, konfigurationer eller kod för olika kunder. |
Distribuera ändringar på ett säkert sätt. | Implementera en säker distributionsprocess som du kan använda för progressiv exponering, konstant övervakning och återställning om problem uppstår. Använd en konsekvent process för ändringar i kod, infrastruktur och konfiguration. Kontrollera antalet lösningsversioner som du distribuerar vid en viss tidpunkt. |
Kompromiss: Driftseffektivitet och kostnaden för komplexitet. Automatiserade hanteringsåtgärder kan öka lösningens komplexitet och ta tid att skapa. Initialt kan kostnaden för automatisering uppväga fördelarna, särskilt med en liten kundbas. Men i takt med att antalet kunder växer lönar sig kostnaden för automatisering och fördelarna ökar.
Prestandaeffektivitet
Designprincip | Att tänka på |
---|---|
Implementera global skalning för att aktivera globala prestanda. | Ge en bra upplevelse för globala kunder genom distributioner i flera regioner eller accelererad trafikroutning. |
Kvantifiera den förväntade skalan. | Modellera bästa, genomsnittliga och värsta tänkbara tillväxtscenarier. Analysera trender och kontakta säljteamet för realistiska prognoser. Planera flexibla skalningsstrategier för att tillgodose olika tillväxtmöjligheter. |
Förstå skalningspunkter. | Identifiera var du troligen behöver flexibilitet. Vanliga utlösare är antalet kunder eller klienter, användare och transaktioner per användare. Förstå hur dessa faktorer förändras när ditt företag växer och hur de påverkar din arkitektur. |
Design för utskalning. | Uppskalning har gränser, men utskalning möjliggör större expansion. Allt skalas inte ut, så överväg att använda distributionsstämplar för att skala din lösning som en enhet för att undvika begränsningarna med att skala upp resurser. |
Kompromiss: Prestandaeffektivitet och tillförlitlighet. Tillförlitliga system kräver ofta datareplikering över stora geografiska områden. Beroende på replikeringsdesignen kan den här konfigurationen leda till högre svarstid och lägre dataflöde. Om du till exempel replikerar viktiga data synkront mellan två Azure-regioner med flera hundra mils mellanrum kan du lägga till hundratals millisekunder till svarstiderna på grund av replikering i realtid.
Gå vidare
Börja din utbildningsresa genom att optimera kundens fakturering och din strategi för kostnadshantering.