Google PCD: Dane aplikacji, stan i wzorce przechowywania — Przewodnik do nauki

Część Google Professional Cloud Developer — Przewodnik do nauki. Ćwicz ze zweryfikowanymi odpowiedziami w centrum egzaminów Google, albo rozwiąż testy na czas na ExamRoll.io.

Przegląd

Nowoczesne aplikacje w Google Cloud rutynowo łączą wiele magazynów danych, aby zrównoważyć opóźnienia, spójność, skalowalność, koszty i złożoność operacyjną. Wybór usług i wzorców dopasowanych do celu — oraz zrozumienie ich trybów awarii — ma kluczowe znaczenie dla projektowania odpornych systemów. Ta sekcja podsumowuje praktyczne wskazówki dotyczące usług Cloud SQL, Cloud Spanner, Firestore, Bigtable, Memorystore i Cloud Storage, a także omawia migracje, partycjonowanie i ochronę danych.

Dane relacyjne w Cloud SQL

Cloud SQL dostarcza zarządzane bazy danych MySQL, PostgreSQL i SQL Server ze znaną semantyką RDBMS.

Typowe tryby awarii i sposoby ich łagodzenia:

Relacyjna baza danych o skali planetarnej w Cloud Spanner

Cloud Spanner zapewnia skalowalność horyzontalną z opcjami globalnej spójności.

Kompromisy:

Migracja, spójność, partycjonowanie i ochrona danych

Praktyczny scenariusz problemowy

Firma Aurora Outfitters migruje monolityczną platformę e-commerce do Google Cloud. Muszą: 1) przenieść bazę MySQL metodą lift-and-shift, aby zredukować ryzyko, 2) obsługiwać przesyłanie plików multimedialnych o rozmiarze 500 MB bez przeciążania aplikacji, 3) skalować przepustowość odczytu dla katalogów produktów oraz 4) egzekwować limity zapytań na użytkownika (rate limits) podczas szczytów sprzedaży.

Podejście:

  1. Migracja MySQL do Cloud SQL z prywatnym adresem IP i regionalną wysoką dostępnością (HA)

    • Uzasadnienie: Prywatny adres IP eliminuje publiczną ekspozycję i potrzebę stosowania list dozwolonych adresów IP (allowlists), upraszczając bezpieczną łączność z GKE i Compute Engine. Regionalna wysoka dostępność (HA) chroni przed awariami strefowymi; należy spodziewać się krótkich przerw w połączeniu podczas przełączania awaryjnego (failover), więc aplikacja zaimplementuje transakcje z możliwością ponowienia i logikę ponownego łączenia.
  2. Włączenie automatycznych kopii zapasowych i PITR oraz walidacja odtwarzania

    • Uzasadnienie: Automatyczne kopie zapasowe i dzienniki transakcji umożliwiają odtwarzanie do punktu w czasie (point-in-time recovery) po błędach użytkownika lub aplikacji. Zaplanowane cotygodniowe odtwarzanie do instancji nieprodukcyjnej weryfikuje użyteczność kopii zapasowych i mierzy RTO.
  3. Dodanie repliki do odczytu (read replica) dla zapytań do katalogu

    • Uzasadnienie: Przeniesienie zapytań do katalogu na replikę do odczytu zmniejsza rywalizację o zasoby na instancji głównej (primary). Aplikacja odczytuje z instancji głównej, gdy wymagana jest spójność typu write-after-read (koszyk/finalizacja zakupu), a z repliki podczas przeglądania katalogu, rozumiejąc kompromisy związane z opóźnieniem repliki (replica lag).
  4. Wprowadzenie pulowania połączeń po stronie aplikacji i ograniczenie współbieżności

    • Uzasadnienie: Narzędzia takie jak PgBouncer/HikariCP ograniczają i ponownie wykorzystują połączenia, unikając burz połączeń (connection storms) podczas autoskalowania i przełączeń awaryjnych HA. Pule są wymiarowane do liczby rdzeni CPU, a nie do maksymalnej liczby podów, co zapobiega przeciążeniu.
  5. Przeniesienie obsługi przesyłania mediów do Cloud Storage z użyciem podpisanych adresów URL (signed URLs) i wznawialnych transferów (resumable uploads)

    • Uzasadnienie: Aplikacja wystawia krótkotrwałe podpisane adresy URL, aby klienci mogli przesyłać pliki bezpośrednio. Wznawialne transfery są dostosowane do zawodnych sieci; serwis mediów nasłuchuje powiadomień o finalizacji z Pub/Sub, aby uruchomić przetwarzanie. Nagłówki warunków wstępnych (precondition headers), takie jak ifGenerationMatch, chronią przed wyścigami zapisu (overwrite races).
  6. Wdrożenie Memorystore for Redis do buforowania stron, obsługi sesji i ograniczania liczby zapytań (rate limiting)

    • Uzasadnienie: Pamięci podręczne typu read-through zmniejszają obciążenie bazy danych dla stron produktów, z czasem życia (TTL) dostosowanym do częstotliwości aktualizacji. Dane sesji są przechowywane efemerycznie w Redis z krótkim TTL; stan aplikacji pozostaje w Cloud SQL. Strategia tokenów w stałym oknie czasowym (fixed-window) wykorzystuje INCR/EXPIRE do limitowania żądań na użytkownika. Pamięć podręczna jest traktowana jako nieautorytatywna; aplikacja toleruje utratę pamięci podręcznej i uzupełnia ją w przypadku braku trafienia (cache miss).
  7. Przygotowanie etapowej ścieżki migracji do Cloud Bigtable dla funkcji przeglądania katalogu o wysokiej przepustowości

    • Uzasadnienie: W miarę wzrostu ruchu, zdenormalizowane, zoptymalizowane pod kątem odczytu widoki katalogu zostaną przeniesione do Bigtable. Klucze wierszy są zaprojektowane jako bucket#kategoria#odwrócony_znacznik_czasu, aby rozproszyć zapisy i wspierać listowanie uporządkowane czasowo bez tworzenia gorących punktów (hotspotting).
  8. Ustanowienie procedur migracji schematu i wycofywania zmian (rollback)

    • Uzasadnienie: Migracje są addytywne: dodawane są kolumny/indeksy, dane są uzupełniane za pomocą idempotentnych zadań, wdrażany jest kod, który odczytuje/zapisuje obie wersje, a następnie stare pola są usuwane. Flagi funkcjonalności (feature flags) chronią nowe ścieżki kodu; wycofanie zmian (rollback) wyłącza zapisy do nowych pól bez destrukcyjnego DDL.
  9. Ustawienie polityk cyklu życia i ochrony danych

    • Uzasadnienie: Buckety Cloud Storage używają reguł cyklu życia do przenoszenia miniatur do chłodniejszej klasy przechowywania i usuwania nieaktualnych, tymczasowych plików. Kopie zapasowe Cloud SQL oraz Spanner/Bigtable (w miarę ich wdrażania) są regularnie odtwarzane w celach weryfikacyjnych. Dzienniki audytu rejestrują przepływy pracy związane z usuwaniem; asynchroniczny charakter Bigtable GC jest odnotowany w dokumentacji zgodności (compliance).
  10. Wdrożenie ponawiania prób po stronie klienta i serwera z obciętym wykładniczym czasem wycofania (truncated exponential backoff)

    • Uzasadnienie: Cloud Storage może zwracać błędy 429/5xx podczas skoków obciążenia; mechanizm backoff wygładza obciążenie i zmniejsza liczbę błędów. Operacje na bazie danych i pamięci podręcznej używają kluczy idempotencji, aby zapewnić bezpieczne ponawianie prób, szczególnie podczas przełączania awaryjnego i chwilowych problemów z siecią.

Ten plan zapewnia natychmiastową redukcję ryzyka dzięki Cloud SQL z prywatną łącznością i HA, utrzymuje responsywność i efektywność kosztową aplikacji dzięki buforowaniu i przesyłaniu plików przez signed URL oraz tworzy jasną ścieżkę do skalowania przepustowości odczytu i odporności danych w miarę wzrostu ruchu.


Projektowanie API · Wszystkie domeny · Tożsamość

Przećwicz te pytania → · Testy na czas na ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Zdaj egzamin →

Przeglądaj Google →

Related guides

Dostęp all-in-one

Jedna subskrypcja. Każdy egzamin.

Każdy plan odblokowuje nieograniczone wyszukiwanie odpowiedzi, testy praktyczne, wyjaśnienia AI i pełną bibliotekę zasobów — w ponad 20 językach.

Miesięczny
24.87
Just €0.83/day
Wszystko w cenie:
  • Nieograniczone wyszukiwanie odpowiedzi
  • Nieograniczone testy praktyczne
  • Wyjaśnienia wspomagane AI
  • Pełna biblioteka zasobów
  • Ponad 20 języków
  • Cotygodniowe aktualizacje treści
  • Nagrody i polecenia
  • Priorytetowe wsparcie
Rozpocznij bezpłatny okres próbny

Karta kredytowa nie jest wymagana*

Najlepsza wartość
12 miesięcy
179.87
Just €0.49/daySave 40%
Wszystko w cenie:
  • Nieograniczone wyszukiwanie odpowiedzi
  • Nieograniczone testy praktyczne
  • Wyjaśnienia wspomagane AI
  • Pełna biblioteka zasobów
  • Ponad 20 języków
  • Cotygodniowe aktualizacje treści
  • Nagrody i polecenia
  • Priorytetowe wsparcie
Rozpocznij bezpłatny okres próbny

Karta kredytowa nie jest wymagana*

✓ Plan darmowy w zestawie · ✓ Anuluj w dowolnym momencie · ✓ Wszystkie plany odblokowują pełny produkt