Automatyzowanie wdrożeń interfejsu API za pomocą metodyki APIOps

Azure API Management
Azure DevOps
Azure Pipelines

ApiOps to metodologia, która stosuje pojęcia metodyki GitOps i Metodyki DevOps do wdrażania interfejsu API. Podobnie jak metodyka DevOps, metodyka APIOps ułatwia członkom zespołu łatwe wprowadzanie zmian i wdrażanie ich w iteracyjny i zautomatyzowany sposób. Ta architektura pokazuje, jak można poprawić cały cykl życia interfejsu API i jakość interfejsu API przy użyciu metodyki APIOps.

Architektura

Diagram architektury dla zautomatyzowanych wdrożeń interfejsu API przy użyciu metodyki APIOps na platformie Azure.

Pobierz plik programu Visio z tą architekturą.

Przepływ pracy

  1. Operatory interfejsu API uruchamiają potok wyodrębniania, aby zsynchronizować repozytorium Git z wystąpieniem usługi API Management i wypełnić repozytorium Git obiektami usługi API Management w wymaganym formacie.

  2. Jeśli w wystąpieniu usługi API Management zostanie wykryta zmiana interfejsu API, zostanie utworzone żądanie ściągnięcia dla operatorów do przejrzenia. Operatorzy scalają zmiany w repozytorium Git.

  3. Deweloperzy interfejsu API klonują repozytorium Git, tworzą gałąź i tworzą definicje interfejsu API przy użyciu wybranej specyfikacji interfejsu OpenAPI lub narzędzi.

  4. Jeśli deweloper wypchnie zmiany do repozytorium, żądanie ściągnięcia zostanie utworzone do przeglądu.

  5. Żądanie ściągnięcia można automatycznie zatwierdzić lub przejrzeć w zależności od wymaganego poziomu kontroli.

  6. Po zatwierdzeniu i scaleniu zmian potok publikowania wdraża najnowsze zmiany w wystąpieniu usługi API Management.

  7. Operatorzy interfejsu API tworzą i modyfikują zasady usługi API Management, diagnostykę, produkty i inne odpowiednie obiekty, a następnie zatwierdzają zmiany.

  8. Zmiany są przeglądane i scalane po zatwierdzeniu.

  9. Po scaleniu zmian potok publikowania wdraża zmiany przy użyciu procesu definicji interfejsu API.

Składniki

  • Usługa Azure API Management tworzy spójne, nowoczesne bramy interfejsu API dla usług zaplecza. Oprócz routingu wywołań interfejsu API do zaplecza ta platforma weryfikuje również poświadczenia, wymusza limity przydziału użycia i metadane dzienników.

  • Azure DevOps to usługa służąca do zarządzania całym cyklem życia programowania, w tym planowaniem i zarządzaniem projektami, zarządzaniem kodem i kontynuowaniem kompilowania i wydawania.

  • Usługa Azure Pipelines umożliwia ciągłą integrację i ciągłe dostarczanie (CD) do testowania i kompilowania kodu oraz dostarczania go do dowolnego miejsca docelowego.

  • Usługa Azure Repos to zestaw narzędzi kontroli wersji, w tym standardowe narzędzie Git, którego można użyć do zarządzania kodem.

Alternatywy

To rozwiązanie korzysta z usługi Azure Repos , aby zapewnić funkcjonalność usługi Git, a usługa Azure Pipelines udostępnia potoki. Można użyć dowolnych porównywalnych technologii.

Szczegóły scenariusza

Usługa APIOps używa kontroli wersji do zarządzania interfejsami API i tworzenia dziennika inspekcji zmian w interfejsach API, zasadach i operacjach.

Deweloperzy interfejsów API, którzy korzystają z metodologii apiOps, przeglądają i przeprowadzają inspekcję interfejsów API wcześniej i częściej, przechwytując i rozpoznawając odchylenia od standardów interfejsu API szybciej, aby poprawić specyfikacje i jakość interfejsu API. Im więcej interfejsów API kompilujesz i wdrażasz za pomocą metody APIOps, tym większa jest spójność między interfejsami API.

Ta architektura interfejsu APIOps używa usługi Azure API Management jako platformy API Management . Usługa Azure DevOps organizuje zarządzanie interfejsami API. Usługa Azure Repos udostępnia funkcje usługi Git, a usługa Azure Pipelines tworzy potok ciągłej integracji/ciągłego wdrażania.

Potencjalne przypadki użycia

  • Każda organizacja tworząca interfejsy API i zarządzająca nimi
  • Wysoko regulowane branże: ubezpieczenie, bankowość, finanse, rząd

Kwestie wymagające rozważenia

Te zagadnienia implementują filary platformy Azure Well-Architected Framework— zestaw wytycznych, których można użyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.

To rozwiązanie zapewnia kilka korzyści związanych z zabezpieczeniami. Indywidualni deweloperzy — a nawet operatorzy — nie uzyskują bezpośredniego dostępu do wystąpienia usługi API Management w celu stosowania zmian ani aktualizacji. Zamiast tego użytkownicy wypychają zmiany do repozytorium Git, a potoki wyodrębniania i publikowania odczytują je i stosują do wystąpienia usługi API Management. Takie podejście jest zgodne z najlepszymi rozwiązaniami w zakresie zabezpieczeń najniższymi uprawnieniami , nie dając zespołom uprawnień do zapisu w wystąpieniu usługi API Management. W scenariuszach diagnostycznych lub rozwiązywania problemów można udzielić podwyższonych uprawnień przez ograniczony czas w przypadku.

Aby upewnić się, że wystąpienia usługi API Management korzystają z najlepszych rozwiązań w zakresie zabezpieczeń, możesz rozszerzyć to rozwiązanie, aby wymusić najlepsze rozwiązania interfejsu API przy użyciu narzędzi innych firm i testowania jednostkowego. Zespoły mogą przekazywać wczesne opinie za pośrednictwem przeglądu żądania ściągnięcia, jeśli proponowane zmiany w interfejsie API lub zasadach naruszają standardy.

Oprócz zadania konfigurowania uprawnień repozytorium rozważ zaimplementowanie następujących środków zabezpieczeń w repozytoriach Git, które są synchronizowane z wystąpieniami usługi API Management:

  • Przegląd żądania ściągnięcia: użyj gałęzi i chroń gałęzie reprezentujące stan wystąpień usługi API Management przed wypchnięciem zmian bezpośrednio do nich. Wymagaj, aby żądania ściągnięcia miały co najmniej jednego recenzenta, aby wymusić zasadę czterech oczu.
  • Niezmienna historia: zezwalaj tylko na nowe zatwierdzenia na podstawie istniejących zmian. Niezmienna historia jest szczególnie ważna w celach inspekcji.
  • Uwierzytelnianie wieloskładnikowe: wymagaj od użytkowników aktywowania uwierzytelniania dwuskładnikowego.
  • Podpisane zatwierdzenia: zezwalaj tylko na podpisane zatwierdzenia, których nie można zmienić po fakcie.

Optymalizacja kosztów

Optymalizacja kosztów polega na zmniejszeniu niepotrzebnych wydatków i poprawie wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.

  • Koszty możesz szacować za pomocą kalkulatora cen platformy Azure.

  • Usługa API Management oferuje następujące warstwy: Zużycie, Deweloper, Podstawowa, Standardowa i Premium.

  • Usługa GitHub oferuje bezpłatną usługę. Jednak do korzystania z zaawansowanych funkcji związanych z zabezpieczeniami, takich jak właściciele kodu lub wymagane recenzenci, potrzebny jest plan zespołu. Aby uzyskać więcej informacji, zobacz Cennik usługi GitHub.

Doskonałość operacyjna

Doskonałość operacyjna obejmuje procesy operacyjne, które wdrażają aplikację i działają w środowisku produkcyjnym. Aby uzyskać więcej informacji, zobacz Omówienie filaru doskonałości operacyjnej.

Metodyka APIOps może zwiększyć produktywność metodyki DevOps na potrzeby tworzenia i wdrażania interfejsu API. Jedną z najbardziej przydatnych funkcji jest możliwość używania operacji usługi Git do szybkiego wycofywania zmian, które zachowują się nieoczekiwanie. Wykres zatwierdzeń zawiera wszystkie zatwierdzenia, dzięki czemu może pomóc w analizie pośmiertnej.

Operatory interfejsów API często zarządzają wieloma środowiskami dla tego samego zestawu interfejsów API. Zazwyczaj istnieje kilka etapów interfejsu API wdrożonego w różnych wystąpieniach usługi API Management lub w udostępnionym wystąpieniu usługi API Management. Repozytorium Git, które jest pojedynczym źródłem prawdy, pokazuje, które wersje aplikacji są obecnie wdrażane w klastrze.

Gdy ktoś tworzy żądanie ściągnięcia w repozytorium Git, operator interfejsu API wie, że ma nowy kod do przejrzenia. Na przykład gdy deweloper przyjmuje specyfikację interfejsu OpenAPI i kompiluje implementację interfejsu API, dodaje ten nowy kod do repozytorium. Operatorzy mogą przejrzeć żądanie ściągnięcia i upewnić się, że interfejs API, który został przesłany do przeglądu, spełnia najlepsze rozwiązania i standardy.

Efektywność wydajności

Efektywność wydajności to możliwość skalowania obciążenia w celu zaspokojenia zapotrzebowania użytkowników w wydajny sposób. Aby uzyskać więcej informacji, zobacz Omówienie filaru wydajności.

Metodyka APIOps ma wiele korzyści, ale wraz ze wzrostem poziomów usługi API Management złożoność zarządzania nimi. To rozwiązanie pomaga sprostać wyzwaniom, takim jak:

  • Utrzymywanie przeglądu wszystkich środowisk i wystąpień usługi API Management.
  • Śledzenie krytycznych zmian w interfejsach API i zasadach.
  • Tworzenie dziennika inspekcji dla wszystkich wdrożonych zmian.

Wdrażanie tego scenariusza

Wdrożenie tego rozwiązania obejmuje następujące kroki:

  • Opracuj interfejs API w portalu lub wprowadź zmiany w specyfikacji interfejsu OpenAPI przy użyciu wybranego narzędzia.

    • Jeśli wprowadzisz zmiany w portalu, możesz uruchomić moduł wyodrębniania, aby automatycznie wyodrębnić wszystkie interfejsy API i inne odpowiednie zasady, operacje i konfiguracje z usługi API Management. Te informacje można zsynchronizować z repozytorium git.

    • Opcjonalnie użyj interfejsu wiersza polecenia usługi Azure DevOps, aby utworzyć nowe żądanie ściągnięcia.

  • Przepływ pracy programu wyodrębniającego obejmuje następujące czynności, które należy wykonać:

  • W naszym scenariuszu potok, który pobiera zmiany w portalu do wystąpienia usługi API Management, ma następujące etapy: Moduł wyodrębniania kompilacji, Tworzenie artefaktów z portalu i Tworzenie gałęzi szablonu.

    • Kompilowanie ekstraktora

      Ten etap kompiluje kod wyodrębniającego.

    • Tworzenie artefaktów z portalu

      Ten etap uruchamia moduł wyodrębniania i tworzy artefakty przypominające strukturę repozytorium Git, jak pokazano na poniższym zrzucie ekranu:

      Zrzut ekranu przedstawiający

      • Tworzenie gałęzi szablonu

        Po wygenerowaniu artefaktu ten etap tworzy żądanie ściągnięcia ze zmianami wyodrębnianymi dla zespołu platformy w celu przejrzenia.

        Przy pierwszym uruchomieniu modułu wyodrębniania pobiera wszystko z repozytorium Git. Utworzone żądanie ściągnięcia będzie mieć wszystkie interfejsy API, zasady, artefakty itd.

        Późniejsze wyodrębniania mają tylko zmiany wprowadzone przed wyodrębnianiem w żądaniu ściągnięcia. Czasami zmiany mogą dotyczyć tylko specyfikacji interfejsu API, czyli w poniższym przykładzie żądania ściągnięcia.

        Zrzut ekranu przedstawiający przykładowe żądanie ściągnięcia po wyodrębnieniu, które pokazuje proponowane zmiany w pliku o nazwie

  • Recenzent przechodzi do żądania ściągnięcia , aby wyświetlić zaktualizowane żądania ściągnięcia. Możesz również skonfigurować automatyczne zatwierdzenia, aby zautomatyzować ten krok.

    Zrzut ekranu przedstawiający przykładowe żądanie ściągnięcia, które pokazuje zmiany zawartości w pliku

  • Po zatwierdzeniu żądania ściągnięcia wyzwala kolejny potok, który publikuje z usługi API Management do portalu. W naszym przykładzie przedstawiono następujące etapy: tworzenie twórców, terminator kompilacji i publikowanie wystąpień usługi APIM.

    Zrzut ekranu przedstawiający etapy w potoku APIM-publish-to-portal.

    • Etap twórcy kompilacji obsługuje tworzenie nowych interfejsów API.
    • Etap zakończenia kompilacji obsługuje wszelkie usunięcia.
    • Etap publikowania wystąpień usługi APIM publikuje zmiany w wystąpieniu usługi API Management.

    Zrzut ekranu przedstawiający zadania w przykładowym uruchomieniu potoku APIM-publish-to-portal.

    Po pomyślnym uruchomieniu tego potoku publikuje zmiany w wystąpieniu usługi API Management.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Główny autor:

Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki