0Pricing
Azure Fundamentals · Lekcja

Identyfikowanie i eliminowanie marnotrawstwa

Proszę użyć usługi Azure Cost Management i rekomendacji Advisor, aby znaleźć bezczynne maszyny wirtualne, niepodłączone dyski, nadmiernie aprowizowane usługi i nieużywane zasoby, a następnie je wycofać.

Identyfikowanie i eliminowanie marnotrawstwa to bezpłatna lekcja Azure Fundamentals na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Azure Fundamentals, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Azure Fundamentals zawiera 4 lekcji w sumie.

Marnotrawstwo w chmurze: ukryty czynnik kosztów

Badania konsekwentnie pokazują, że organizacje marnują 25–35% wydatków na chmurę na zasoby bezczynne, nadmiernie zwymiarowane lub zapomniane. W Azure do typowych źródeł marnotrawstwa należą maszyny wirtualne działające przez całą dobę przy niemal zerowym użyciu procesora, niepodłączone dyski zarządzane pozostałe po usunięciu maszyny wirtualnej, osierocone publiczne adresy IP oraz nieużywane plany App Service. Identyfikacja i eliminacja tego marnotrawstwa to pierwszy i zapewniający najwyższy zwrot z inwestycji krok w każdej praktyce FinOps.

Zalecenia dotyczące kosztów w Azure Advisor

Azure Advisor stale analizuje wykorzystanie zasobów i automatycznie generuje zalecenia dotyczące kosztów. Typowe zalecenia obejmują: zmianę rozmiaru lub wyłączenie niedostatecznie wykorzystywanych maszyn wirtualnych (poniżej 5% wykorzystania procesora lub 2% pamięci przez 7 dni), zakup wystąpień zarezerwowanych dla stale działających maszyn wirtualnych, usunięcie niepodłączonych publicznych adresów IP oraz usunięcie bezczynnych wystąpień Application Gateway. Każde zalecenie przedstawia szacowane miesięczne oszczędności, dzięki czemu można ustalać priorytety według wpływu.

# List Advisor cost recommendations via CLI
az advisor recommendation list \
  --category Cost \
  --query '[].{Resource:resourceName, Impact:impact, Savings:extendedProperties.annualSavingsAmount}' \
  --output table

Znajdowanie bezczynnych i niedostatecznie wykorzystywanych maszyn wirtualnych

Azure Monitor zbiera dla każdej maszyny wirtualnej metryki procentowego użycia procesora oraz ruchu sieciowego przychodzącego i wychodzącego. Maszyna wirtualna stale utrzymująca użycie procesora poniżej 5% jest dobrym kandydatem do zmiany rozmiaru lub wyłączenia. Użyj funkcji Virtual Machine Insights w Azure Monitor, aby zobaczyć zbiorczy widok wykorzystania procesora i pamięci w całej flocie w okresie 24 godzin, 7 dni lub 30 dni. Zalecenie Advisor dotyczące niedostatecznie wykorzystywanych maszyn wirtualnych prowadzi bezpośrednio do wykresów wydajności, dzięki czemu można potwierdzić ten wzorzec przed podjęciem działania.

# Query average CPU for a VM over the last 7 days
az monitor metrics list \
  --resource /subscriptions/<sub>/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM \
  --metric 'Percentage CPU' \
  --interval PT1H \
  --start-time 2024-06-01T00:00:00Z \
  --end-time 2024-06-08T00:00:00Z \
  --aggregation Average

Niepodłączone dyski i migawki

Gdy maszyna wirtualna zostanie usunięta bez wybrania opcji usunięcia jej dysków, dyski zarządzane pozostają i nadal generują opłaty. W portalu Azure przefiltruj dyski według wartości Disk state: Unattached, aby znaleźć te osierocone dyski. Podobnie często zapomina się o starych migawkach utworzonych na potrzeby tworzenia kopii zapasowych lub migracji. Magazyn migawek jest tańszy niż magazyn dysków zarządzanych, ale rok przechowywania zapomnianych migawek w dużej subskrypcji może kosztować łącznie tysiące dolarów rocznie.

# Find all unattached managed disks in a subscription
az disk list \
  --query '[?diskState == `Unattached`].{Name:name, RG:resourceGroup, SizeGB:diskSizeGb}' \
  --output table

Osierocone publiczne adresy IP i interfejsy sieciowe

Publiczne adresy IP w Azure są naliczane nawet wtedy, gdy nie są skojarzone z działającym zasobem. Po usunięciu maszyn wirtualnych lub modułów równoważenia obciążenia ich publiczne adresy IP i interfejsy sieciowe mogą pozostać. W portalu przefiltruj publiczne adresy IP według wartości Associated to: None i usuń te, których już nie potrzebujesz. Podobnie można bezpiecznie usunąć osierocone interfejsy sieciowe, które nie są dołączone do żadnej maszyny wirtualnej ani usługi. Pojedyncze opłaty są niewielkie, ale sumują się w przypadku setek zasobów.

# Find unassociated public IP addresses
az network public-ip list \
  --query '[?ipConfiguration == null].{Name:name, RG:resourceGroup, SKU:sku.name}' \
  --output table

Zasoby zombie: środowiska przejściowe i deweloperskie

Zasoby zombie to długo działające środowiska przejściowe, testowe lub demonstracyjne, które zostały utworzone, a następnie zapomniane. W przeciwieństwie do bezczynnych produkcyjnych maszyn wirtualnych mogą one być umiarkowanie wykorzystywane w godzinach pracy, ale nie służą żadnemu aktywnemu projektowi. Wprowadź zasady tagowania zasobów wymagające tagów Environment i Project dla każdego zasobu, a następnie zaplanuj automatyczne alerty dla zasobów, w przypadku których Environment=Dev lub Environment=Test i które mają więcej niż 90 dni.

# Find resources tagged as Dev that are over 90 days old (approximate via createdTime)
az resource list \
  --tag Environment=Dev \
  --query '[].{Name:name, Type:type, RG:resourceGroup}' \
  --output table

Automatyczne wyłączanie maszyn wirtualnych deweloperskich i testowych

Maszyny wirtualne Azure obsługują funkcję Auto-Shutdown, która automatycznie zatrzymuje maszynę o skonfigurowanej porze każdego dnia. Włącz ją dla wszystkich maszyn wirtualnych deweloperskich i testowych, aby nie działały w nocy ani w weekendy. Na przykład maszyna wirtualna deweloperska działająca przez całą dobę kosztuje tyle samo co 24 godziny, natomiast maszyna skonfigurowana tak, aby automatycznie wyłączała się o 18:00 i uruchamiała o 8:00 wyłącznie w dni robocze, wykorzystuje 50 godzin tygodniowo zamiast 168, co pozwala zaoszczędzić około 70% kosztów obliczeniowych.

# Enable auto-shutdown at 18:00 UTC on a dev VM
az vm auto-shutdown \
  --resource-group myRG \
  --name myDevVM \
  --time 1800 \
  --email admin@contoso.com

Azure Cost Management: wykrywanie anomalii

Azure Cost Management obejmuje funkcję Anomaly Detection, która wykorzystuje uczenie maszynowe do identyfikowania nieoczekiwanych skoków wydatków. Gdy koszt subskrypcji lub grupy zasobów znacznie odbiega od przewidywanych wzorców — na przykład ktoś przypadkowo wdroży maszynę wirtualną GPU albo zapomni usunąć bramę ExpressRoute — Cost Management wysyła alert o anomalii pocztą elektroniczną. Skonfigurowanie alertów o anomaliach to szybkie działanie, które pozwala wykryć niekontrolowany wzrost kosztów, zanim pojawi się on na miesięcznej fakturze.

# Create a cost anomaly alert
az costmanagement alert create \
  --name 'AnomalyAlert' \
  --scope '/subscriptions/<subscriptionId>' \
  --type 'Anomaly' \
  --contact-emails 'finance@contoso.com'

Zmiana rozmiaru warstw magazynu i baz danych

Nie każde marnotrawstwo dotyczy zasobów obliczeniowych. Bazy danych Azure SQL aprowizowane w warstwie Business Critical, ale wykonujące proste zapytania intensywnie odczytujące dane, mogą działać identycznie w warstwie General Purpose przy połowie kosztów. Dane w usłudze Blob Storage, do których dostęp uzyskuje się rzadko, należy przenieść z warstwy Hot do warstwy Cool lub Archive za pomocą zasad zarządzania cyklem życia. Azure Advisor przedstawia zalecenia dotyczące zmiany rozmiaru baz danych i magazynu obok zaleceń dotyczących zasobów obliczeniowych.

# Create a Blob lifecycle policy to move data to Cool tier after 30 days
az storage account management-policy create \
  --account-name mystorageacct \
  --resource-group myRG \
  --policy @- << 'POLICY'
{
  'rules': [{
    'name': 'MoveOldDataToCool',
    'type': 'Lifecycle',
    'definition': {
      'actions': { 'baseBlob': { 'tierToCool': { 'daysAfterModificationGreaterThan': 30 } } },
      'filters': { 'blobTypes': ['blockBlob'] }
    }
  }]
}
POLICY

Tworzenie listy zadań eliminacji marnotrawstwa

Traktuj optymalizację kosztów jako stałą praktykę inżynierską, a nie jednorazowe działanie. Utwórz listę zadań FinOps w Azure DevOps lub Jira, dodając co tydzień elementy generowane na podstawie zaleceń Advisor i alertów o anomaliach kosztów. Przypisz każdy element zespołowi odpowiedzialnemu za dany zasób i ustal docelową datę rozwiązania. Śledź zrealizowane oszczędności w porównaniu z wykrytymi możliwościami oszczędności, aby mierzyć dojrzałość FinOps. Zaplanuj comiesięczny przegląd kosztów z liderami zespołów inżynieryjnych i działem finansowym, aby utrzymać eliminację marnotrawstwa w centrum uwagi całej organizacji.

Zarządzanie zapobiegające przyszłemu marnotrawstwu

Zapobieganie jest bardziej opłacalne niż usuwanie skutków. Użyj Azure Policy, aby bez zatwierdzenia blokować tworzenie drogich jednostek SKU maszyn wirtualnych (takich jak GPU lub serie M), wymagać tagów Environment i ExpiryDate dla wszystkich zasobów oraz automatycznie włączać automatyczne wyłączanie nowo utworzonych maszyn wirtualnych w subskrypcjach deweloperskich. Połącz zasady z alertami budżetowymi ustawionymi na poziomie 80% i 100% miesięcznego przydziału, aby zespoły otrzymywały powiadomienia przed przekroczeniem wydatków.

Szybkie sprawdzenie

Sprawdź swoją wiedzę na temat zagadnień Microsoft Azure Fundamentals (AZ-900) omówionych w tej lekcji.

Podsumowanie lekcji

W tej lekcji poznali Państwo następujące zagadnienia: Azure Advisor przedstawia możliwe do zastosowania zalecenia dotyczące kosztów bezczynnych maszyn wirtualnych, niepodłączonych dysków i nadmiernie zwymiarowanych usług, automatyczne wyłączanie deweloperskich maszyn wirtualnych może zmniejszyć wydatki na zasoby obliczeniowe o 70%, a zasady zarządzania z tagowaniem zapobiegają narastaniu przyszłego marnotrawstwa. W następnej części przyjrzymy się technikom zmiany rozmiaru i strategiom automatycznego skalowania.

Często zadawane pytania

Czy lekcja „Identyfikowanie i eliminowanie marnotrawstwa” jest bezpłatna?

Tak — pełny tekst „Identyfikowanie i eliminowanie marnotrawstwa” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Azure Fundamentals, przejdź na CoddyKit PRO. Kurs Azure Fundamentals zawiera 4 lekcji w sumie.

Co nauczysz się w „Identyfikowanie i eliminowanie marnotrawstwa”?

Proszę użyć usługi Azure Cost Management i rekomendacji Advisor, aby znaleźć bezczynne maszyny wirtualne, niepodłączone dyski, nadmiernie aprowizowane usługi i nieużywane zasoby, a następnie je wycof… Ćwiczysz Azure Fundamentals z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Azure Fundamentals?

Nie wymagamy żadnego doświadczenia. Azure Fundamentals w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Identyfikowanie i eliminowanie marnotrawstwa”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Azure Fundamentals?

Tak. Każda lekcja Azure Fundamentals zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Identyfikowanie i eliminowanie marnotrawstwa
  2. Dobór rozmiaru i automatyczne skalowanie
  3. Azure Savings Plans i rezerwacje
  4. FinOps i modele chargeback
← Powrót do Azure Fundamentals