
Obecnie dużo słyszę o celu polegającym na uruchamianiu sfederowanych aplikacji wśród dostawców usług w chmurze. Chcemy tworzyć te wielochmurowe aplikacje z wielu powodów, w tym:
Aby zoptymalizować podstawowe zasoby chmury dla komponentów aplikacji. Na przykład część aplikacji intensywnie korzystająca z procesora może działać na części usługi w chmurze, która zapewnia najszybsze przetwarzanie przy najniższym koszcie użytkowania. Aby uzyskać najwyższą odporność, biorąc pod uwagę, że awarie zwykle nie obejmują dostawców usług w chmurze. W ten sposób rozkładamy ryzyko na więcej niż jednego dostawcę. Aby uniknąć blokady. Teraz możemy umieścić nasze jaja w wielu różnych koszykach, koncentrując się na abstrakcyjnych platformach wyższego poziomu w porównaniu z otoczonymi murami ogrodami dostawców chmury publicznej.
Jak uruchamiać aplikacje stowarzyszone
Chociaż istnieje wiele sposobów na federacyjne wdrażanie aplikacji, skupmy się na najpopularniejszym: Kubernetes. Zwykle konfigurujesz klaster kontenerów Kubernetes, który obejmuje wielu dostawców usług w chmurze. To stwarza kilka możliwości.
Możesz użyć Federacji Kubernetes do zarządzania wieloma klastrami Kubernetes w różnych chmurach jako pojedynczym klastrem logicznym. Takie podejście wymaga skonfigurowania i połączenia każdego specyficznego dla chmury klastra Kubernetes z płaszczyzną kontroli federacji. Płaszczyzna kontroli jest przeznaczona do zarządzania sfederowanymi klastrami i zapewniania dostępu do wspólnych interfejsów.
Niektórzy dostawcy chmury oferują zarządzane usługi Kubernetes, takie jak Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE) lub Azure Kubernetes Service (AKS). Udostępniasz klastry Kubernetes u każdego dostawcy chmury i ustanawiasz między nimi łączność. Możesz uruchomić je lokalnie, ale zazwyczaj nie jest to najtańsza i najłatwiejsza ścieżka.
Wskazane jest również zapoznanie się z rozwiązaniami Kubernetes między chmurami (takimi jak Rancher), które umożliwiają zarządzanie klastrami u różnych dostawców chmury za pomocą ujednoliconego interfejsu. Oczywiście istnieją inne, równie opłacalne sposoby, aby to osiągnąć; Ranczer jest tylko jeden.
Czy wdrożenia federacyjne to dobry pomysł?
To nie jest kwestia tego, czy możesz to zrobić. Możesz. Lepszym pytaniem jest, czy powinieneś to zrobić? Omówiliśmy korzyści, teraz przyjrzyjmy się potencjalnym wadom.
Złożoność i zwiększone koszty zarządzania. Wdrażanie aplikacji u wielu dostawców chmury wprowadza złożoność pod względem sieci, bezpieczeństwa, zarządzania danymi i strategii wdrażania. Projektowanie, wdrażanie i utrzymywanie wielochmurowego środowiska orkiestracji kontenerów wymaga specjalistycznej wiedzy i umiejętności. Ta złożoność może zwiększyć ogólne koszty zarządzania i koszty operacyjne.
Zależność od funkcji specyficznych dla dostawcy chmury. Kubernetes i inne platformy orkiestracji kontenerów dążą do przenośności i abstrakcji, chociaż niektóre zaawansowane funkcje i integracje mogą być dostępne wyłącznie dla określonych dostawców chmury. Jeśli Twoja aplikacja w dużym stopniu zależy od funkcji specyficznych dla dostawcy, może to ograniczyć jej zdolność do płynnego działania w wielu chmurach.
Ograniczona optymalizacja kosztów. Chociaż wdrożenia wielochmurowe mogą potencjalnie zoptymalizować koszty, osiągnięcie znacznych oszczędności może okazać się trudne. Modele cenowe, typy instancji i struktury rabatów różnią się w zależności od dostawcy chmury. Optymalizacja kosztów w wielu chmurach wymaga starannego monitorowania, zarządzania i planowania, co może zwiększać złożoność i koszty ogólne.
Niespójności we wdrażaniu i rozbieżności między platformami. Pomimo wysiłków zmierzających do zapewnienia spójności zachowanie, funkcje lub wydajność platformy orkiestracji kontenerów u różnych dostawców chmury mogą się różnić. Korzystanie z wielu chmur może skutkować niespójnymi wdrożeniami i nieprzewidywalnymi wynikami, co może wymagać dodatkowej uwagi w celu identyfikacji i rozwiązania.
Specyficzne wymagania aplikacji. Nie wszystkie aplikacje korzystają z działania w chmurach publicznych. Niektóre aplikacje mogą mieć ścisłe wymagania dotyczące suwerenności danych, obciążenia zależne od wydajności lub zależności od wyspecjalizowanych usług w chmurze, których nie można łatwo replikować w wielu chmurach. W takich sytuacjach bardziej odpowiednim rozwiązaniem może być prywatne centrum danych lub pojedynczy dostawca usług w chmurze. Nie widzę wielu z nich, ponieważ większość architektów i programistów chmurowych ma niewielkie doświadczenie w budowaniu sfederowanych aplikacji wielochmurowych. Ponadto istnieje niewiele najlepszych praktyk lub nie ma ich wcale.
Nawet jeśli pokonamy te przeszkody, nadal musimy rozważyć wiele kompromisów. Przed rozpoczęciem tworzenia federacyjnej aplikacji działającej w wielu chmurach przy użyciu Kubernetes i kontenerów należy dokładnie ocenić wszystkie niezbędne czynniki, takie jak protokoły bezpieczeństwa, testy porównawcze wydajności i strategie wdrażania. Poświęcając czas na analizę tych krytycznych aspektów, możesz zapewnić udaną i wydajną implementację swojej aplikacji — i wygląda to na dobrą zabawę.
Prawa autorskie © 2023 IDG Communications, Inc.