Delen via


Duurzame software-engineeringprocedures in Azure Kubernetes Service (AKS)

De principes voor duurzame software-engineering zijn een set competenties die u helpen bij het definiëren, bouwen en uitvoeren van duurzame toepassingen. Het algemene doel is om de koolstofvoetafdruk in elk aspect van uw toepassing te verminderen. De richtlijnen voor het Goed ontworpen Framework van Azure voor duurzaamheid komen overeen met de Principes van Duurzame Software Engineering van de Green Software Foundation en bieden een overzicht van de principes van duurzame software-engineering.

Duurzame software-engineering is een verschuiving in prioriteiten en focus. In veel gevallen markeert de manier waarop de meeste software is ontworpen en uitgevoerd, snelle prestaties en lage latentie. Duurzame software-engineering richt zich op het verminderen van zo veel mogelijk koolstofuitgifte.

  • Het toepassen van duurzame software-engineeringprincipes kan u snellere prestaties of lagere latentie bieden, zoals het verlagen van het totale netwerkverkeer.
  • Het verminderen van koolstofemissies kan leiden tot tragere prestaties of een hogere latentie, zoals het vertragen van workloads met lage prioriteit.

De volgende richtlijnen zijn gericht op services die u in Azure bouwt of gebruikt met Azure Kubernetes Service (AKS). Dit artikel bevat ontwerp- en configuratiecontrolelijsten, aanbevolen ontwerpprocedures en configuratieopties. Voordat u duurzame software-engineeringprincipes toepast op uw toepassing, bekijkt u de prioriteiten, behoeften en afwegingen van uw toepassing.

Vereisten

  • Als u de richtlijnen voor duurzaamheid van het Well-Architected Framework begrijpt, kunt u een hoogwaardige, stabiele en efficiënte cloudarchitectuur produceren. We raden u aan om eerst meer te lezen over duurzame workloads en uw workload te beoordelen met behulp van de Beoordelingsevaluatie van Microsoft Azure Well-Architected .
  • Het is van cruciaal belang dat u duidelijk gedefinieerde bedrijfsvereisten hebt bij het bouwen van toepassingen, omdat ze mogelijk een directe invloed hebben op zowel cluster- als workloadarchitecturen en -configuraties. Wanneer u bestaande toepassingen bouwt of bijwerkt, bekijkt u de ontwerpgebieden voor duurzaamheid van het Well-Architected Framework, naast de holistische levenscyclus van uw toepassing.

Inzicht krijgen in het model voor gedeelde verantwoordelijkheid

Duurzaamheid is een gedeelde verantwoordelijkheid tussen de cloudprovider en de klant of partner die AKS-clusters op het platform ontwerpt en implementeert. Het implementeren van AKS maakt het niet automatisch duurzaam, zelfs als de datacenters zijn geoptimaliseerd voor duurzaamheid. Toepassingen die niet goed zijn geoptimaliseerd, kunnen nog steeds meer koolstof uitstoten dan nodig is.

Meer informatie over het model voor gedeelde verantwoordelijkheid voor duurzaamheid.

Ontwerpbeginselen

  • Koolstofefficiëntie: zend de minste hoeveelheid koolstof uit.

    Een koolstofefficiënte cloudtoepassing is een toepassing die is geoptimaliseerd en het startpunt is de kostenoptimalisatie.

  • Energie-efficiëntie: Gebruik de minste hoeveelheid energie die mogelijk is.

    Een manier om de energie-efficiëntie te verhogen, is door de toepassing op zo weinig mogelijk servers uit te voeren met de servers met het hoogste gebruikspercentage, waardoor ook de hardware-efficiëntie wordt verhoogd.

  • Hardware-efficiëntie: gebruik de minste hoeveelheid opgenomen koolstof die mogelijk is.

    Er zijn twee belangrijke benaderingen voor hardware-efficiëntie:

    • Voor apparaten van eindgebruikers wordt de levensduur van hardware verlengd.
    • Voor cloud-computing neemt het resourcegebruik toe.
  • Koolstofbewustzijn: Doe meer als de elektriciteit schoner is en minder doen wanneer de elektriciteit vuiler is.

    Koolstofbewust zijn betekent reageren op verschuivingen in koolstofgehalte door uw vraag te vergroten of te verlagen.

Ontwerppatronen en -procedures

Voordat u de gedetailleerde aanbevelingen in elk van de ontwerpgebieden bekijkt, raden we u aan zorgvuldig na te denken over de volgende ontwerppatronen voor het bouwen van duurzame workloads op AKS:

Ontwerppatroon Van toepassing op workload Van toepassing op cluster
Ontwerpen voor onafhankelijk schalen van logische onderdelen ✔️
Ontwerpen voor gebeurtenisgestuurd schalen ✔️
Doel voor staatloos ontwerp ✔️
Automatische updates voor clusters en knooppunten inschakelen ✔️
Ondersteunde invoegtoepassingen en extensies installeren ✔️ ✔️
Uw workload waar van toepassing containeriseren ✔️
Energie-efficiënte hardware gebruiken ✔️
Voldoen aan de schaalbaarheidsbehoeften en maken gebruik van mogelijkheden voor automatisch schalen en bursting ✔️
Werkbelastingen en knooppuntgroepen buiten kantooruren uitschakelen ✔️ ✔️
Ongebruikte resources verwijderen ✔️ ✔️
Uw resources taggen ✔️ ✔️
Opslaggebruik optimaliseren ✔️ ✔️
Kies een regio die zich het dichtst bij gebruikers bevindt ✔️
Netwerkdoorkruising tussen knooppunten verminderen ✔️
Evalueren met behulp van een service-mesh ✔️
Logboekverzameling optimaliseren ✔️ ✔️
Statische gegevens in cache opslaan ✔️ ✔️
Evalueren of TLS-beëindiging moet worden gebruikt ✔️ ✔️
Cloudeigen hulpprogramma's en besturingselementen voor netwerkbeveiliging gebruiken ✔️ ✔️
Scannen op beveiligingsproblemen ✔️ ✔️

Toepassingsontwerp

Bekijk deze sectie voor meer informatie over het optimaliseren van uw toepassingen voor een duurzaam toepassingsontwerp.

Ontwerpen voor onafhankelijk schalen van logische onderdelen

Een microservicearchitectuur kan de vereiste rekenresources verminderen, omdat het onafhankelijk schalen van de logische onderdelen mogelijk maakt en ervoor zorgt dat ze worden geschaald op basis van de vraag.

  • Overweeg het Dapr Framework of andere CNCF-projecten te gebruiken om u te helpen uw toepassingsfunctionaliteit te scheiden in verschillende microservices en om onafhankelijk schalen van de logische onderdelen toe te staan.

Ontwerpen voor gebeurtenisgestuurd schalen

Wanneer u uw workload schaalt op basis van relevante zakelijke metrische gegevens, zoals HTTP-aanvragen, wachtrijlengte en cloudevenementen, kunt u helpen het resourcegebruik en de koolstofemissies te verminderen.

  • Gebruik Keda bij het bouwen van gebeurtenisgestuurde toepassingen om omlaag te schalen naar nul wanneer er geen vraag is.

Doel voor staatloos ontwerp

Als u de status uit uw ontwerp verwijdert, worden de gegevens in het geheugen of op de schijf verminderd die nodig zijn voor de werkbelasting om te functioneren.

  • Overweeg stateless ontwerp om onnodige netwerkbelasting, gegevensverwerking en rekenresources te verminderen.

Toepassingsplatform

Bekijk deze sectie voor meer informatie over het maken van beter geïnformeerde platformgerelateerde beslissingen over duurzaamheid.

Automatische updates voor clusters en knooppunten inschakelen

Een up-to-date cluster voorkomt onnodige prestatieproblemen en zorgt ervoor dat u profiteert van de nieuwste prestatieverbeteringen en rekenoptimalisaties.

Ondersteunde invoegtoepassingen en extensies installeren

Invoegtoepassingen en extensies die worden gedekt door het AKS-ondersteuningsbeleid bieden verdere ondersteunde functies voor uw cluster, terwijl u kunt profiteren van de nieuwste prestatieverbeteringen en energieverbruikoptimalisaties gedurende de hele levenscyclus van uw cluster.

Uw workload waar van toepassing containeriseren

Containers maken het mogelijk om onnodige resourcetoewijzing te verminderen en beter gebruik te maken van de resources die zijn geïmplementeerd omdat ze bin-verpakking mogelijk maken en minder rekenresources nodig hebben dan virtuele machines.

  • Gebruik Concept om toepassingscontainerisatie te vereenvoudigen door Dockerfiles en Kubernetes-manifesten te genereren.

Energie-efficiënte hardware gebruiken

De Cloud Native Processors van Ampere zijn uniek ontworpen om te voldoen aan zowel de hoge prestaties als de energie-efficiëntiebehoeften van de cloud.

Voldoen aan de schaalbaarheidsbehoeften en maken gebruik van mogelijkheden voor automatisch schalen en bursting

Een te groot cluster maximaliseert het gebruik van rekenresources niet en kan leiden tot verspilling van energie. Scheid uw toepassingen in verschillende knooppuntgroepen om de juiste grootte en onafhankelijk schalen van clusters mogelijk te maken op basis van de toepassingsvereisten. Naarmate u geen capaciteit meer hebt in uw AKS-cluster, kunt u groeien van AKS naar ACI om extra pods uit te schalen naar serverloze knooppunten en ervoor te zorgen dat uw workload alle toegewezen resources efficiënt gebruikt.

Werkbelastingen en knooppuntgroepen buiten kantooruren uitschakelen

Workloads hoeven mogelijk niet continu te worden uitgevoerd en kunnen worden uitgeschakeld om energieverspilling en koolstofemissies te verminderen. U kunt uw knooppuntgroepen in uw AKS-cluster volledig uitschakelen (stoppen), zodat u ook kunt besparen op de rekenkosten.

  • Gebruik de stop/start van de knooppuntgroep om uw knooppuntgroepen buiten kantooruren uit te schakelen.
  • Gebruik de KEDA CRON-scaler om uw workloads (pods) omlaag te schalen op basis van tijd.

Operationele procedures

Bekijk deze sectie om uw omgeving in te stellen voor het meten en continu verbeteren van de kosten en koolstofefficiëntie van uw workloads.

Ongebruikte resources verwijderen

U moet ongebruikte resources, zoals niet-deductieafbeeldingen en opslagresources, identificeren en verwijderen, omdat ze direct invloed hebben op hardware en energie-efficiëntie. Om continue energieverbruikoptimalisatie te garanderen, moet u het identificeren en verwijderen van ongebruikte resources behandelen als een proces in plaats van een time-activiteit naar een bepaald tijdstip.

  • Gebruik Azure Advisor om ongebruikte resources te identificeren.
  • Gebruik ImageCleaner om verouderde installatiekopieën op te schonen en een risicogebied in uw cluster te verwijderen.

Uw resources taggen

Het verkrijgen van de juiste informatie en inzichten op het juiste moment is belangrijk voor het produceren van rapporten over prestaties en resourcegebruik.

Storage

Bekijk deze sectie voor meer informatie over het ontwerpen van een meer duurzame architectuur voor gegevensopslag en het optimaliseren van bestaande implementaties.

Opslaggebruik optimaliseren

De bewerkingen voor het ophalen van gegevens en gegevensopslag kunnen een aanzienlijke invloed hebben op zowel energie- als hardware-efficiëntie. Het ontwerpen van oplossingen met het juiste patroon voor gegevenstoegang kan het energieverbruik en de opgenomen koolstof verminderen.

  • Inzicht in de behoeften van uw toepassing om de juiste opslag te kiezen en deze te definiëren met behulp van opslagklassen om te voorkomen dat opslag onderbezetting wordt gebruikt.
  • Overweeg volumes dynamisch in te richten om het aantal opslagbronnen automatisch te schalen.

Netwerk en connectiviteit

Bekijk deze sectie voor meer informatie over het verbeteren en optimaliseren van netwerkefficiëntie om onnodige koolstofuitstoot te verminderen.

Kies een regio die zich het dichtst bij gebruikers bevindt

De afstand van een datacentrum tot gebruikers heeft een aanzienlijke invloed op het energieverbruik en de koolstofuitstoot. Het verkorten van de afstand die een netwerkpakket reist, verbetert zowel uw energie- als koolstofefficiëntie.

  • Controleer uw toepassingsvereisten en Azure-geografische gebieden om een regio te kiezen die het dichtst bij de meeste netwerkpakketten ligt.

Netwerkdoorkruising tussen knooppunten verminderen

Het plaatsen van knooppunten in één regio of één beschikbaarheidszone vermindert de fysieke afstand tussen de exemplaren. Voor bedrijfskritieke workloads moet u er echter voor zorgen dat uw cluster wordt verdeeld over meerdere beschikbaarheidszones, wat kan leiden tot meer netwerkkruising en een toename van uw koolstofvoetafdruk.

Evalueren met behulp van een service-mesh

Een service mesh implementeert extra containers voor communicatie, meestal in een sidecar-patroon, om meer operationele mogelijkheden te bieden, wat leidt tot een toename van het CPU-gebruik en netwerkverkeer. Niettemin kunt u uw toepassing loskoppelen van deze mogelijkheden terwijl deze van de toepassingslaag naar de infrastructuurlaag worden verplaatst.

  • Houd zorgvuldig rekening met de toename van het CPU-gebruik en netwerkverkeer dat wordt gegenereerd door service mesh-communicatieonderdelen voordat u de beslissing neemt om er een te gebruiken.

Logboekverzameling optimaliseren

Het verzenden en opslaan van alle logboeken uit alle mogelijke bronnen (workloads, services, diagnostische gegevens en platformactiviteit) kan het opslag- en netwerkverkeer verhogen, wat van invloed is op de kosten en koolstofemissies.

Statische gegevens in cache opslaan

Het gebruik van Content Delivery Network (CDN) is een duurzame benadering voor het optimaliseren van netwerkverkeer, omdat het de gegevensverplaatsing over een netwerk vermindert. Het minimaliseert de latentie door het opslaan van vaak gelezen statische gegevens dichter bij gebruikers en helpt het netwerkverkeer en de serverbelasting te verminderen.

Beveiliging

Bekijk deze sectie voor meer informatie over de aanbevelingen die leiden tot een duurzame, rechtse beveiligingspostuur.

Evalueren of TLS-beëindiging moet worden gebruikt

Transport Layer Security (TLS) zorgt ervoor dat alle gegevens die worden doorgegeven tussen de webserver en webbrowsers privé en versleuteld blijven. Het beëindigen en opnieuw tot stand brengen van TLS verhoogt echter het CPU-gebruik en is mogelijk niet nodig in bepaalde architecturen. Een evenwichtig beveiligingsniveau kan een meer duurzame en energie-efficiënte workload bieden, terwijl een hoger beveiligingsniveau de rekenresourcevereisten kan verhogen.

  • Bekijk de informatie over TLS-beëindiging bij het gebruik van Application Gateway of Azure Front Door. Bepaal of u TLS op uw randgateway kunt beëindigen en doorgaan met niet-TLS naar de load balancer en workload van uw werkbelasting.

Cloudeigen hulpprogramma's en besturingselementen voor netwerkbeveiliging gebruiken

Azure Front Door en Application Gateway helpen bij het beheren van verkeer van webtoepassingen, terwijl Azure Web Application Firewall bescherming biedt tegen OWASP top 10-aanvallen en het laden van slechte bots aan de netwerkrand. Deze mogelijkheden helpen onnodige gegevensoverdracht te verwijderen en de belasting van de cloudinfrastructuur te verminderen met een lagere bandbreedte en minder infrastructuurvereisten.

Scannen op beveiligingsproblemen

Veel aanvallen op de cloudinfrastructuur proberen geïmplementeerde resources te misbruiken voor de directe winst van de aanvaller, wat leidt tot een onnodige piek in gebruik en kosten. Hulpprogramma's voor het scannen van beveiligingsproblemen helpen bij het minimaliseren van het kansvenster voor aanvallers en het beperken van mogelijk schadelijk gebruik van resources.

  • Volg de aanbevelingen van Microsoft Defender voor Cloud.
  • Voer geautomatiseerde hulpprogramma's voor het scannen van beveiligingsproblemen uit, zoals Defender for Containers, om onnodig resourcegebruik te voorkomen. Met deze hulpprogramma's kunt u beveiligingsproblemen in uw afbeeldingen identificeren en het kansvenster voor aanvallers minimaliseren.

Volgende stappen