Dlaczego orkiestracja kontenerów jest ważna?

Ukończone

W tej lekcji możesz śledzić zespół Tailspin podczas eksplorowania strategii dostarczania nowej dyrektywy z zakresu zarządzania. Zespół sprawdza, jak platforma Kubernetes może pomóc w przejściu do architektury mikrousług.

Przyszłość jest mniejsza

Wszystko patrzy na Tailspin. W niedawnym poza siedzibą zarządu Andy przedstawił ostatnie sukcesy swojego zespołu w usłudze Azure DevOps, które zostały dobrze odebrane. Andy przedstawił również pokaz ostatniego projektu weryfikacji koncepcji zespołu przy użyciu kontenerów platformy Docker. Te demonstracje doprowadziły do serii produktywnych rozmów na temat technicznej przyszłości organizacji. Następnego dnia Andy powraca, aby podzielić się wiadomościami z zespołem internetowym Space Game.

Andy: Rzeczy poszły naprawdę dobrze na mojej prezentacji poza siedzibą wczoraj. Kierownictwo jest pod wrażeniem pracy, którą wykonaliśmy do tej pory, i wydało nam specjalne zadanie.

Tim: Uh oh. Byłem na tyle długi, aby zobaczyć pułapkę podobną do tej pochodzącej z mili.

Andy: Nie, to dla nas świetna okazja. Zarządzanie kochało pokaz kontenera platformy Docker i chce, abyśmy poznali wdrożenie architektury mikrousług.

Amita: Mikrousługi? Jak aplikacje dla telefonów i zegarków?

Andy: Nie, mikrousługi są typowymi aplikacjami, takimi jak nasza aplikacja internetowa. Główną różnicą jest to, że zamiast kompilować i wdrażać pojedynczą aplikację monolityczną, refaktoryzujemy wszystkie składniki, które byłyby lepiej utrzymywane i zarządzane jako usługi autonomiczne. Następnie tworzymy te usługi, aby były dobre w tym, co robią, i wdrażamy je niezależnie.

Tim: Nie jestem pewien, że lubię dźwięk tego. Mam już do czynienia z tak wieloma usługami w naszych środowiskach. Nie wiem, czy chcę więcej na talerzu.

Andy: To zrozumiałe obawy. Na szczęście istnieje kilka doskonałych narzędzi do zarządzania wieloma kontenerami w danym środowisku. Poproszono nas o wprowadzenie rozwiązania z wieloma kontenerami dla naszej aplikacji internetowej, które jest orkiestrowane przy użyciu platformy Kubernetes. Chcą również wiedzieć, jak będzie to miało wpływ na nasz proces DevOps.

Mara: Czytałem się na Platformie Kubernetes. Platforma Azure ma świetną obsługę za pośrednictwem usługi Azure Kubernetes Service i wiem, że istnieje obsługa potoków w usłudze Azure DevOps.

Amita: Ten proces brzmi jak to będzie się skomplikowane. Jak będzie to miało wpływ na testowanie?

Mara: Nie powinno to być znaczącą zmianą. Platforma Kubernetes oferuje nam sposób wdrażania w różnych przestrzeniach nazw. Umożliwia to partycjonowanie wdrożeń, dzięki czemu możemy mieć całe środowiska dedykowane do testowania i produkcji. Ponieważ wszystkie działają w tym samym klastrze i korzystają z tych samych kontenerów, środowisko testowania powinno zaoferować to, czego oczekujemy w środowisku produkcyjnym.

Amita: Czy trudno będzie śledzić, jakie środowisko jest gdzie?

Mara: Nie, możemy użyć środowisk usługi Azure DevOps, aby to zrobić. Będziesz w stanie dowiedzieć się, gdzie znajduje się każda usługa i jak się tam znajduje, korzystając z portalu. To wszystko jest zautomatyzowane za pośrednictwem potoku, więc nie będzie nic, co musimy ręcznie śledzić. Jedynym problemem, jaki mam teraz, jest to, jak duży wpływ będzie miał na nasze doświadczenie programistyczne, aby to zbudować.

Andy: Dobrą wiadomością jest to, że wpływ jest minimalny. Zakładając, że nasze projekty zostały skonfigurowane do tworzenia kontenerów platformy Docker, wszystkie musimy wdrożyć na platformie Kubernetes to pliki manifestu opisujące usługi i ich wdrożenia.

Mara: Czy myślisz o tym, co refaktoryzujemy jako drugi kontener? Wiem, że było kilka zespołów z prośbą o udostępnienie naszej rankingu za pośrednictwem internetowego interfejsu API.

Andy: Jestem o krok przed tobą. Wyprzedałem projekt platformy Docker ostatniej nocy i refaktoryzowałem funkcje danych rankingowych do własnej mikrousługi. Spowoduje to pozostawienie nam jednego kontenera dla witryny internetowej, a drugiego dla interfejsu API rankingu. Oba kontenery są skonfigurowane tak, aby miały własne publiczne punkty końcowe, które możemy udostępnić każdemu, kto chce korzystać z witryny lub interfejsu API, niezależnie od tego, jakiego stosu technologii używa aplikacja. Jeśli obciążenie wzrośnie znacznie w obu przypadkach, możemy niezależnie skalować jego kontenery.

Mara: Ten projekt brzmi niesamowicie! Zacznijmy od aktualizowania potoku wydania.

Co to jest platforma Kubernetes?

Kubernetes to platforma orkiestracji kontenerów typu open source, która automatyzuje wdrażanie, skalowanie i zarządzanie konteneryzowanymi aplikacjami. Zapewnia ona platformę do uruchamiania systemów rozproszonych w sposób deklaratywny, dynamiczny i może uruchamiać kontenery na wielu hostach, zapewniając wydajne wykorzystanie zasobów i zwiększoną niezawodność.

Zespół Tailspin wybrał rozwiązanie Kubernetes dla tego scenariusza, ponieważ spełnia wszystkie ich potrzeby:

  • Złożoność wdrożeń obejmujących wiele kontenerów: platforma Kubernetes została zaprojektowana przede wszystkim w celu zautomatyzowania procesów związanych z wdrażaniem i konserwowaniem wdrożeń kontenerów.

  • Spójność między środowiskami i etapami: podobnie jak kontenery zapewniają spójne wdrożenie dla aplikacji, które zawierają, platforma Kubernetes zapewnia spójne wdrożenie kontenerów zarządzanych przez klaster.

  • Obsługa usługi Azure DevOps: Usługa Azure DevOps oferuje najwyższej klasy obsługę pracy z platformą Kubernetes.

  • Łatwość programowania: wpływ platformy Kubernetes na projekt źródłowy jest porównywalny z dodaniem obsługi platformy Docker, która jest minimalna i ograniczona do konfiguracji deklaratywnej.

Wdrożenie rozwiązania Kubernetes znacząco upraszcza proces wdrażania architektury mikrousług, która korzysta z wielu kontenerów platformy Docker.

Sprawdź swoją wiedzę

1.

Które z poniższych nie jest dobrym powodem do korzystania z mikrousług?

2.

Jak są podobne platformy Docker i Kubernetes?

3.

Załóżmy, że twój zespół ma wiele projektów platformy .NET Core w rozwiązaniu tworzącym wiele kontenerów platformy Docker. Ile obciążenia wymaga dodanie obsługi platformy Kubernetes?