‫W porządku, teraz, gdy nauczyliśmy się wszystkiego na temat skalowania Swarm z nałożoną siecią i siatką routingu,
‫chcę, abyś faktycznie przeszedł proces tworzenia zasobów lub obiektów, które musisz wdrożyć w
‫scenariuszu rój.
‫Więc nie używamy już polecenia uruchamiania dokera, ale sieci i woluminy są trochę
‫takie same, ale nieco inne.
‫Chcę przedstawić rzeczywisty scenariusz wielowarstwowej aplikacji, a my zamierzamy użyć aplikacji rozproszonej głosowania
‫Dockera.
‫To tak naprawdę nazywa się Przykładowa aplikacja do głosowania.
‫Być może widzieliście to w keynotach Dockera lub w innych laboratoriach lub tutorialach.
‫Jest to dość powszechna i, jak sądzę, świetna aplikacja, ponieważ ma do niej co najmniej pięć ról lub
‫różne pojemniki, które trzeba wdrożyć.
‫Wszystkie one pełnią specjalną funkcję i faktycznie robią rzeczy, które faktycznie działają, w rzeczywistości robią to,
‫co powinny.
‫Dzięki temu można się z nim bawić i ma on bardzo typowe, rozproszone komponenty architektury, takie
‫jak frontend sieciowy i zaplecze
‫robocze oraz kluczową wartość w bazie danych. Myślę, że to naprawdę pomocne. W tym przypadku użyjesz
‫katalogu rój-app-1. W rzeczywistości jest w trakcie repo kursu. W tym
‫jest tylko readme i obraz. Z tego pliku musisz przejść do tworzenia woluminu i kilku sieci oraz
‫pięciu usług, które są niezbędne do pełnej funkcjonalności tej aplikacji.
‫Może ci pomóc wypróbować niektóre z tych poleceń lokalnie, lub faktycznie napisać je w edytorze tekstu i skomponować je, ponieważ
‫będą one trochę skomplikowane, prawda. Po utworzeniu tej usługi
‫tworzenia dokowania należy połączyć ją z określoną siecią i otworzyć porty, a następnie nazwać
‫ją konkretną nazwą i użyć określonego obrazu. Łatwiej więc będzie ją edytować lokalnie, a następnie po prostu
‫wycinać i wklejać do powłoki, gdziekolwiek jest twój Swarm.
‫Ale to tylko ja.
‫Wszystko będzie używać obrazów Docker Hub, ponieważ w produkcji Swarm nie chcesz budować.
‫To nie jest proces, którego potrzebujesz na swojej produkcji Swarm, zazwyczaj.
‫Zwykle chcesz zbudować budynek za pomocą zautomatyzowanej usługi online, takiej jak Docker Hub
‫lub Docker Cloud, lub gdzieś w rurociągu CI / CD, który nie je zasobów w twojej produkcji Swarm.
‫W tym scenariuszu możemy sobie wyobrazić, że nasze obrazy są budowane gdzie indziej i
‫przechowywane w Docker Hub, a my po prostu musimy je ściągnąć, niezależnie od najnowszych wersji, do naszego Swarm.
‫Powiem to tak, jak wiele rzeczy w informatyce, jest to jedna połowa nauki, jedna połowa sztuki.
‫Twoje polecenia mogą być w zupełnie różnych zamówieniach lub mają zupełnie inne zamówienia niż moje.
‫Możesz nazwać swoje sieci różnymi rzeczami.
‫W porządku.
‫Efektem końcowym jest to, że aplikacja działa, że jest w stanie rozmawiać ze sobą
‫we właściwy sposób, że wszystkie porty zostały opublikowane i że dane są chronione w woluminie.
‫Rzućmy okiem na to, z czym masz do czynienia.
‫Wyobraź sobie, że musisz zaprojektować polecenia i architekturę tego.
‫I to jest to, co dałby programista, który napisał tę aplikację.
‫Cóż, w tym przypadku prawdopodobnie wielu programistów napisało tę aplikację, prawda?
‫Ponieważ w rzeczywistości mamy frontend, który jest w Pythonie, mamy backend sieciowy działający
‫w węźle.
‫Mamy proces roboczy, który działa. NET, a następnie mamy magazyn wartości kluczy
‫Redis i bazę danych PostgreSQL.
‫To jest coś, co widzę coraz częściej, gdzie różne zespoły piszą różne części rozwiązania
‫i potrafią wybrać język, który według nich jest najlepszy dla tego scenariusza.
‫A w świecie kontenerów ten rodzaj aplikacji naprawdę świeci. Ponieważ nasze aplikacje są podzielone na segmenty,
‫nadal mogą
‫być uruchamiane technicznie na tym samym komputerze, ale wszystkie są chronione przed innymi, tak
‫aby nie kończyły się konfliktem węzłów z zależnościami w Pythonie lub cokolwiek innego.
‫Zauważysz tu również przepływ ruchu, a aplikacja do głosowania go nie ma, ale powinna
‫mieć małą strzałkę, w której użytkownicy będą wchodzić na część z
‫głosowaniem.
‫I widzisz, że aplikacja do głosowania rzeczywiście musi popchnąć twoje głosy na tę aplikację, która, nawiasem mówiąc, będziesz
‫głosować na koty i psy.
‫Wpisze to w Redis, a następnie robotnik sprawdzi w systemie Redis wszystko,
‫co znajduje się w kolejce, a następnie przesyła wyniki do PostgreSQL, które następnie zostaną wyświetlone
‫w backendu WebSockets, który jest aktualizowany na bieżąco, głosowanie.
‫Jeśli wskoczymy do katalogu naprawdę szybko, zamieściłem tu kilka notatek, aby pomóc ci po drodze, ponieważ jest
‫kilka rzeczy, które są trochę inne i nowe.
‫Ale obszar usług byłby napisany tak, jakby pochodził od kogoś, kto znał ich aplikacje, ale nie wiedział,
‫jak to zaimplementować w Dockerze. A to dość powszechny scenariusz.
‫Widać, że w usługach wymieniłem obraz, który należy rozmieścić, rzeczywistą nazwę,
‫którą należy podać, ponieważ są one ważne.
‫Są to obrazy, które są, niestety, zakodowane na sztywno pod kątem nazw, których będą szukać w sieci.
‫Idealnie byłoby, gdybyś chciał, aby aplikacje, które można skonfigurować w locie, były potrzebne dla nazw, ale
‫w tym przypadku głos będzie szukał rekordu DNS o nazwie redis. Widać, że w rzeczywistości są tu
‫dwie sieci. Mamy frontend i sieć zapleczową. Jest to dość typowe
‫dla większej aplikacji, w której być może chcesz chronić bazę danych w sieci wewnętrznej, aby
‫aplikacja użytkownika frontend nie miała do niej bezpośredniego dostępu.
‫I to właśnie tutaj pokazujemy, a zauważysz, że pracownik faktycznie jest podłączony do dwóch sieci.
‫Więc kiedy używasz polecenia create, pamiętaj, że korzystasz z usługi dokowania, a nie z dokowania.
‫Dlatego przy korzystaniu z polecenia tworzenia okna dokowanego należy podać dwukrotnie
‫--network, raz dla nakładki i raz dla zaplecza.
‫Oczywiście, musisz najpierw stworzyć swoje sieci.
‫Więc niektóre z tego są tu określone. A jeśli potrzebujesz obraz ponownie diagram architektury jest
‫również tutaj, na wszelki wypadek, który pomaga koncepcyjnie z tym, jak masz zamiar wdrożyć to.
‫I, oczywiście, będziesz mieć dokumentację Docker. Konieczne może być użycie opcji
‫--help w komendzie service create, która zawiera wszystkie potrzebne opcje.
‫Będziesz potrzebował tylko trzech lub czterech z nich. Jeśli utkniesz przy samych
‫komendach, możesz przejrzeć faktyczną dokumentację, którą umieściłem w zasobach tej sekcji.
‫Ale ten konkretny dokument pod adresem Swarm faktycznie dotyczy tworzenia usług i konfigurowania usług.
‫Jest trochę rozwlekły, ale zawiera wiele informacji, które mogą ci pomóc, jeśli utkniesz
‫tutaj.
‫Kolejne wideo, które sam wykonam, wykonam samodzielnie, tak jakbym był tobą.
‫Życzymy powodzenia i dobrej zabawy.