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.