Antywzorca: zarządzaj zasobami brzegowymi bez używania kontroli źródła

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Apigee Edge udostępnia wiele różnych typów zasobów, a każdy z nich służy do innego celu. Istnieją pewne zasoby, które można skonfigurować (czyli utworzyć, zaktualizować lub usunąć) tylko za pomocą interfejsu Edge, interfejsów API zarządzania lub narzędzi korzystających z interfejsów API zarządzania oraz przez użytkowników, którzy mają wymagane role i uprawnienia. Na przykład tylko administratorzy organizacji należący do określonej organizacji mogą konfigurować te zasoby. Oznacza to, że tych zasobów nie mogą być konfigurowane przez użytkowników za pomocą portali dla deweloperów ani w żaden inny sposób. Te zasoby obejmują:

  • Proxy interfejsów API
  • Przepływy współdzielone
  • Usługi API
  • Pamięci podręczne
  • KVM
  • Magazyny kluczy i magazyny zaufanych certyfikatów
  • Hosty wirtualne
  • Serwery docelowe
  • Pliki zasobów

Chociaż dostęp do tych zasobów jest ograniczony, jeśli autoryzowani użytkownicy wprowadzą w nich jakiekolwiek zmiany, dane historyczne zostaną po prostu zastąpione nowymi danymi. Wynika to z tego, że te zasoby są przechowywane w Apigee Edge tylko w ich bieżącym stanie. Główne wyjątki od tej reguły to proxy interfejsów API i przepływy współdzielone.

Proxy interfejsów API i przepływy współdzielone pod kontrolą wersji

Proxy interfejsów API i przepływy współdzielone są zarządzane – czyli tworzone, aktualizowane i wdrażane – za pomocą wersji. Wersje są numerowane kolejno, co umożliwia dodawanie nowych zmian i zapisywanie ich jako nowej wersji lub przywracanie zmiany przez wdrożenie poprzedniej wersji proxy interfejsu API lub współdzielonego przepływu. W danym momencie w środowisku może być wdrożona tylko 1 wersja proxy interfejsu API lub przepływu współdzielonego, chyba że wersje mają inną ścieżkę podstawową.

Chociaż proxy interfejsów API i współdzielone przepływy są zarządzane za pomocą wersji, jeśli w istniejącej wersji zostaną wprowadzone jakiekolwiek modyfikacje , nie będzie można wycofać zmian, ponieważ stare zmiany zostaną po prostu zastąpione.

Kontrole i historia

Apigee Edge udostępnia funkcje kontroli oraz historii interfejsów API, usług i organizacji, które mogą być przydatne w rozwiązywaniu problemów. Te funkcje umożliwiają wyświetlanie informacji, takich jak to, kto wykonał określone operacje (tworzenie, odczytywanie, aktualizowanie, usuwanie, wdrażanie, i wycofywanie), oraz kiedy operacje zostały wykonane na zasobach Edge. Jeśli jednak na którymkolwiek z zasobów Edge zostaną wykonane operacje aktualizacji lub usuwania, kontrole nie będą mogły dostarczyć starszych danych.

Antywzorzec

Zarządzanie zasobami Edge (wymienionymi powyżej) bezpośrednio za pomocą interfejsu Edge lub interfejsów API zarządzania bez użycia systemu kontroli wersji

Istnieje błędne przekonanie, że Apigee Edge będzie w stanie przywrócić zasoby do poprzedniego stanu po ich zmodyfikowaniu lub usunięciu. Jednak Edge Cloud nie umożliwia przywracania zasobów do poprzedniego stanu. Dlatego to użytkownik jest odpowiedzialny za to, aby wszystkie dane związane z zasobami Edge były zarządzane za pomocą systemu kontroli wersji. Dzięki temu w przypadku przypadkowego usunięcia lub sytuacji, w których trzeba cofnąć zmiany, można szybko przywrócić stare dane . Jest to szczególnie ważne w przypadku środowisk produkcyjnych, w których te dane są wymagane do obsługi ruchu w czasie działania.

Wyjaśnijmy to na kilku przykładach i pokażmy, jakie mogą być skutki, jeśli dane nie są zarządzane za pomocą systemu kontroli wersji i zostaną zmodyfikowane lub usunięte świadomie lub nieświadomie:

Przykład 1. Usunięcie lub zmodyfikowanie proxy interfejsu API

Gdy proxy interfejsu API zostanie usunięte lub gdy wdrożona zostanie zmiana w istniejącej wersji, poprzedniego kodu nie będzie można odzyskać. Jeśli proxy interfejsu API zawiera kod w języku Java, JavaScript, Node.js lub Python, który nie jest zarządzany w systemie kontroli wersji (SCM) poza Apigee, można utracić dużo pracy i wysiłku.

Przykład 2. Określanie proxy interfejsów API korzystających z określonych hostów wirtualnych

Certyfikat na hoście wirtualnym wygasa i ten host wirtualny wymaga aktualizacji. Jeśli jest wiele proxy interfejsów API, określenie które z nich używają tego hosta wirtualnego do celów testowych, może być trudne. Jeśli proxy interfejsów API są zarządzane w systemie SCM poza Apigee, łatwo będzie przeszukać repozytorium.

Przykład 3. Usunięcie magazynu kluczy lub magazynu zaufanych certyfikatów

Jeśli magazyn kluczy lub magazyn zaufanych certyfikatów używany przez hosta wirtualnego lub konfigurację serwera docelowego zostanie usunięty, nie będzie można go przywrócić, chyba że szczegóły konfiguracji magazynu kluczy lub magazynu zaufanych certyfikatów, w tym certyfikaty lub klucze prywatne, są przechowywane w systemie kontroli wersji.

Wpływ

  • Jeśli którykolwiek z zasobów Edge zostanie usunięty, nie będzie można go odzyskać wraz z jego zawartością z Apigee Edge.
  • Żądania do interfejsu API mogą kończyć się niepowodzeniem z powodu nieoczekiwanych błędów, co może prowadzić do awarii, dopóki zasób nie zostanie przywrócony do poprzedniego stanu.
  • Trudno jest wyszukiwać zależności między proxy interfejsów API a innymi zasobami w Apigee Edge.

Sprawdzona metoda

  • Do zarządzania proxy interfejsów API i przepływami współdzielonymi używaj dowolnego standardowego systemu SCM połączonego z potokiem trybu ciągłej integracji i ciągłego wdrażania (CICD).
  • Do zarządzania innymi zasobami Edge, w tym usługami API, pamięciami podręcznymi, KVM, serwerami docelowymi, hostami wirtualnymi i magazynami kluczy, używaj dowolnego standardowego systemu SCM.
    • Jeśli istnieją już jakieś zasoby Edge, użyj interfejsów API zarządzania, aby uzyskać szczegóły ich konfiguracji w postaci ładunku JSON lub XML i zapisać je w systemie kontroli wersji.
    • Zarządzaj nowymi aktualizacjami tych zasobów w systemie kontroli wersji.
    • Jeśli trzeba utworzyć nowe zasoby Edge lub zaktualizować istniejące, użyj odpowiedniego ładunku JSON lub XML przechowywanego w systemie kontroli wersji i zaktualizuj konfigurację w Edge za pomocą interfejsów API zarządzania.

* Zaszyfrowanych KVM nie można wyeksportować w postaci zwykłego tekstu z interfejsu API. Użytkownik jest odpowiedzialny za przechowywanie informacji o tym, jakie wartości są umieszczane w zaszyfrowanych KVM.

Więcej informacji