Udostępnij za pośrednictwem


Automatyzacja platformy i metodyka DevOps dla usługi AKS

Jako konstrukcja natywna dla chmury platforma Kubernetes wymaga natywnego dla chmury podejścia do wdrażania i operacji. Platformy Azure i Kubernetes to otwarte i rozszerzalne platformy z zaawansowanymi i dobrze zaprojektowanymi interfejsami API, zapewniając możliwość automatyzacji w pełnym zakresie. Planowanie metodyki DevOps i wysoce zautomatyzowanego podejścia, opierając się na automatyzacji i ogólnych najlepszych rozwiązaniach metodyki DevOps.

Uwagi dotyczące projektowania

Poniżej przedstawiono kilka zagadnień dotyczących projektowania automatyzacji platformy AKS i metodyki DevOps:

  • Podczas określania podejścia do inżynierii i automatyzacji należy wziąć pod uwagę ograniczenia usługi platformy Azure oraz środowisko ciągłego wdrażania i ciągłego wdrażania. Aby zapoznać się z innym przykładem, zobacz ograniczenia użycia usługi GitHub.

  • Podczas zabezpieczania i ochrony dostępu do środowisk programistycznych, testowych, Q&A i produkcyjnych należy wziąć pod uwagę opcje zabezpieczeń z perspektywy ciągłej integracji/ciągłego wdrażania. Wdrożenia są wykonywane automatycznie, więc odpowiednio mapuj kontrolę dostępu.

  • Rozważ użycie prefiksów i sufiksów z dobrze zdefiniowanymi konwencjami, aby jednoznacznie zidentyfikować każdy wdrożony zasób. Te konwencje nazewnictwa unikają konfliktów podczas wdrażania rozwiązań obok siebie i poprawy ogólnej elastyczności zespołu i przepływności.

  • Utwórz spis przepływów pracy do obsługi w systemach inżynierii, aktualizowania i wdrażania rozwiązania w normalnych systemach planu odzyskiwania po awarii (DRP). Rozważ mapowanie potoków zgodnie z tymi przepływami pracy, maksymalizując znajomość i produktywność.

    Oto przykładowe scenariusze i potoki, które należy wziąć pod uwagę:

    • Wdrażanie, stosowanie poprawek i uaktualnianie klastrów
    • Wdrażanie i uaktualnianie aplikacji
    • Wdrażanie i obsługa dodatków
    • Przełączanie w tryb failover na potrzeby odzyskiwania po awarii
    • Wdrożenia niebiesko-zielone
    • Obsługa środowisk kanarowych
  • Rozważ użycie siatki usług, aby dodać więcej możliwości zabezpieczeń, szyfrowania i rejestrowania do obciążeń.

  • Rozważ wdrożenie innych zasobów, takich jak subskrypcje, tagowanie i etykiety, aby obsługiwać środowisko devOps, śledząc wdrożenia i śledzenie wdrożeń oraz powiązanych artefaktów.

  • Należy wziąć pod uwagę wpływ bydła w porównaniu ze zmianą paradygmatu zwierząt domowych . Spodziewaj się, że zasobniki i inne aspekty platformy Kubernetes będą efemeryczne i odpowiednio wyrównać infrastrukturę automatyzacji i potoku. Nie należy polegać na adresach IP ani innych zasobach, które mają być stałe ani stałe.

Zalecenia dotyczące projektowania

Poniżej przedstawiono kilka zaleceń projektowych dotyczących automatyzacji platformy AKS i metodyki DevOps:

  • Polegaj na potokach lub akcjach, aby:

    • Maksymalizuj stosowane praktyki w całym zespole.
    • Usuń znaczną część ciężaru ponownego wynalezienia koła.
    • Zapewnianie przewidywalności i wglądu w ogólną jakość i elastyczność.
  • Wdrażaj wcześnie i często przy użyciu potoków opartych na wyzwalaczach i zaplanowanych. Potoki oparte na wyzwalaczach zapewniają, że zmiany przechodzą przez właściwą walidację, podczas gdy zaplanowane potoki zarządzają zachowaniem w zmieniających się środowiskach.

  • Oddziel wdrożenie infrastruktury od wdrożenia aplikacji. Podstawowa infrastruktura zmienia się mniej niż aplikacje. Traktuj każdy typ wdrożenia jako oddzielny przepływ i potok.

  • Wdrażanie przy użyciu opcji natywnych dla chmury. Użyj infrastruktury jako kodu , aby wdrożyć infrastrukturę, w tym płaszczyznę sterowania, oraz użyć narzędzia Helm i wzorca operatora na platformie Kubernetes, aby wdrożyć i obsługiwać składniki natywne platformy Kubernetes .

  • Wdrażanie i obsługa aplikacji przy użyciu metodyki GitOps . Usługa GitOps używa repozytorium Git jako pojedynczego źródła prawdy, unikając dryfu konfiguracji i zwiększania produktywności i niezawodności podczas wycofywania i powiązanych procedur.

  • Użyj tożsamości zarządzanych przez zasobniki i dostawcy usługi Azure Key Vault dla sterownika CSI magazynu wpisów tajnych, aby chronić wpisy tajne, certyfikaty i parametry połączenia.

  • Staraj się dążyć do zmaksymalizowania współbieżności wdrożenia, unikając zakodowanych na stałe elementów konfiguracji i ustawień.

  • Polegaj na dobrze znanych konwencjach we wdrożeniach związanych z infrastrukturą i aplikacjami. Użyj kontrolerów przyjęć w połączeniu z dodatkiem usługi Azure Policy dla platformy Kubernetes , aby zweryfikować i wymusić konwencje między innymi zdefiniowanymi zasadami.

  • Ujmij zmianę w lewo zgodnie z:

    • Zabezpieczenia, dodając narzędzia do skanowania luk w zabezpieczeniach, takie jak skanowanie kontenerów na wczesnym etapie potoku.
    • Zasady, używając zasad jako kodu i wymuszając zasady w sposób natywny dla chmury za pośrednictwem kontrolerów przyjęć.
  • Traktuj każdą awarię, błąd lub awarię jako okazję do zautomatyzowania i poprawy ogólnej jakości rozwiązania. Zintegruj to podejście w strukturze inżynierii niezawodności lokacji (SRE) w lewo i w lewo.