Skalowalność w aplikacjach webowych stała się standardem. Pojedynczy serwer nie poradzi sobie z rosnącą ilością podłączonych do Internetu urządzeń. Skalowalność to charakterystyka systemu, która odpowiada na pytanie: czy jeśli zwiększy się ilość zasobów, to system będzie działał wydajniej? Nie wszystkie aplikacje, systemy oraz sieci są skalowalne i muszą być do tego celu specjalnie zaprojektowane. Rozwiązania w chmurze z definicji zapewniają przetwarzanie na dużą skalę. Platformy IoT także powinny oferować podobne rozwiązania. Platforma musi oferować stosowny poziom niezawodności nawet, gdy ilość podłączonych urządzeń wzrasta. Ilość urządzeń nie powinna wpływać na dostępność danych, a ich przetwarzanie, analiza i transformacja powinny być szybkie i efektywne. Platformy IoT stają się kluczowe w infrastrukturze, każde żądanie wymaga przygotowania odpowiedzi – od prostych zapytań o aktualne pomiary, aż do złożonych raportów, takich jak roczne MTBF (ang. mean time between failures).

IIoT (ang. Industrial Internet of Things) obsługuje setki tysięcy podłączonych urządzeń, ale także pozwala na grupowanie ich w linie oraz całe hale produkcyjne, a nawet fabryki. Podłączanie nowych linii produkcyjnych, czy też wymiana urządzeń powinna być łatwa i szybka. Skalowanie takich rozwiązań jest bardzo ważne także w kontekście zmniejszania zasobów. Wyłączanie hal produkcyjnych celem oszczędzania energii lub zmniejszenie podaży przy zredukowanym popycie, powinna być odzwierciedlona także w aplikacjach IoT – wyłączanie serwerów nie powinno powodować przestojów.

skalowanie horyzontalne

Środowiska klastrowe zwiększają wydajność poprzez dodawanie nowych serwerów. Jest to przykład skalowalności poziomej (ang. horizontal scaling). Zasoby klastra wzrastają wraz z dodawaniem nowych węzłów. Innym przykładem jest skalowalność wertykalna (ang. vertical scaling), gdzie zasoby dodawane są do samego serwera. To swoisty dylemat, czy lepsza jest ilość, czy wielkość.

Skalowanie wertykalne

Skalowanie w pionie (inaczej w górę lub w dół) oznacza dodawanie lub usuwanie zasobów jednego serwera. Wspomniane zasoby to rdzenie procesora, pamięć RAM oraz przestrzeń dyskowa. Ten przykład skalowania zwiększa przepustowość (ang. throughput), czyli ilość operacji w danej jednostce czasu. Największym mankamentem tego typu skalowania jest potrzeba wyłączenia serwera celem wymiany sprzętu. Oprócz tego, takie skalowanie stosuje się w środowiskach monolitycznych (w odróżnieniu do klastrów, dostępny jest tylko jeden serwer), uszkodzenie sprzętu powoduje nieplanowane przestoje. Jakkolwiek uzasadnione, skalowanie w górę ma swój limit – nie można zwiększać zasobów w nieskończoność.

skalowanie horyzontalne

Zalety:

  • Kod aplikacji pozostaje bez zmian. Ta sama aplikacja będzie działa na serwerze ze zwiększonymi zasobami
  • Pojedynczy serwer jest łatwiejszy w zarządzaniu, a wzrost wydajności widać zaraz po uruchomieniu serwera
  • Często tańsze w kontekście zarządzania i administracji

Wady:

  • Przestoje spowodowane wymianą sprzętu
  • Wysokiej klasy sprzęt może być drogi
  • Górny limit w szczególności w przypadku użycia prekonfigurowanych instancji w chmurze

Skalowanie horyzontalne

Skalowanie w poziomie (inaczej na zewnątrz i do wewnątrz) oznacza dodawanie nowych węzłów do klastra. Teoretyczny brak limitu, łatwość dodawania nowych węzłów oraz zarządzania nimi sprawia, że ten typ skalowania jest znacznie bardziej przystępny i popularny. Warto zaznaczyć brak przestojów, ponieważ nowy serwer nie wpływa w żaden sposób na te obecnie działające. Wymiana uszkodzonych serwerów jest w zasadzie niewidoczna dla użytkowników końcowych. Dodatkowo, skalowanie do wewnątrz (przy braku zapotrzebowania na zasoby) także odbywa się w sposób płynny.

Świetnym aspektem tego typu skalowania jest wysoka dostępność (ang. High Availability), która leży u podstaw takiego rozwiązania – skalowanie w poziomie może odbyć się tylko w środowiskach klastrowych. Każdy węzeł posiada tę samą konfigurację oraz aplikację, dzięki czemu może przejąć ruch sieciowy w przypadku, gdy inny serwer uległ awarii.

skalowanie horyzontalne

Zalety:

  • Serwery są tańsze ze względu na mniejszą ilość zasobów
  • Łatwy do zbudowania scenariusz awaryjny, ze względu na bezproblemową wymianę węzłów
  • Skalowanie jest niewidoczne dla użytkowników i nie wprowadza przestojów – zarówno jeśli chodzi o dodawania, jak i odejmowanie węzłów
  • Teoretyczny brak limitu w skalowaniu na zewnątrz

Wady:

  • Bardziej skomplikowany kod aplikacji wprowadza więcej potencjalnych błędów
  • Mniej przejrzyste kwestie licencjonowania, ze względu na zwiększoną ilość węzłów
  • Bardziej złożone kwestie zarządzania i administracji

Klaster Aktywny-Aktywny w ThingWorx 9

Możliwości skalowania zostały wprowadzone w wersji 9 oprogramowania ThingWorx. Wysoka dostępność oraz klaster Aktywny-Pasywny były wspierane wcześniej, ale nowa wersja pozwala na łatwe skalowanie na zewnątrz i do wewnątrz. Klaster pracuje w trybie Aktywny-Aktywny. Oznacza to, że wszystkie węzły klastra obsługują żądania oraz biorą aktywny udział w działaniu całej platformy. Ten tryb pozwala na zwiększenie zdolności procesowych, co przekłada się na możliwość podłączenia większej ilości urządzeń. Platforma IoT powinna być elastyczna, dać się wpasować w każdy przypadek użycia, powinna także być w stanie obsłużyć wzrost aktywności użytkowników lub urządzeń, optymalizować koszty i minimalizować przestoje.

Podejście Aktywny-Pasywny zakłada, że tylko jeden serwer odpowiada na żądania oraz jest podłączony do zewnętrznych systemów. Równolegle, uruchomiony jest węzeł pasywny (lub więcej), który jest także regularnie aktualizowany danymi i ustawieniami. Często określa się to instancją lustrzaną, nie obsługuje ona żądań, ale jest w gotowości, aby przejąć rolę aktywnego węzła gdy obecny ulegnie awarii.

Nowe podejście zapewnia nawet większą dostępność systemu, dzięki włączeniu wszystkich serwerów do aktywnej pracy nad obsługą urządzeń, połączeń i żądań. Przetwarzanie danych odbywa się w sposób równoległy, a klaster jako całość jest w stanie działać wydajniej niż pojedyncza instancja. Ponadto, klaster działający w trybie Aktywny-Aktywny obsługuje skalowanie w poziomie, dając możliwość dodawania nowych węzłów. Tym samym uzyskuje większą moc obliczeniową i przepustowość, ale także możliwość wyłączania węzłów, gdy taka moc nie jest potrzebna. Przetwarzanie danych na dużą skale w rozwiązaniach IIoT jest prostsze niż kiedykolwiek.

Co składa się na klaster Aktywny-Aktywny

Synchronizacja danych pomiędzy węzłami w ThingWorx 9 odbywa się przy pomocy Apache Ignite. Jest to potężne narzędzie ułatwiające zarządzanie danymi klastra, ale także wprowadzające znaczny stopień elastyczności. Apache Ignite może działać w trzech trybach:

  • Pamięć podręczna w pamięci RAM, wysokiej wydajności i niskiej latencji cache Klucz-Wartość (wspiera zapytania ANSI SQL)
  • Siatka danych w pamięci RAM, zaawansowana siatka danych pozwalająca przyspieszyć odczyt danych z bazy RDBMS nawet stukrotnie
  • Baza danych w pamięci RAM, wielowarstwowa i skalowalna w poziomie i w pionie baza danych

Wymiana danych pomiędzy węzłami w ThingWorx musi być szybka i niezawodna. Dzięki zastosowaniu load balancera, węzeł, który otrzyma dane z czujników musi zapisać je w pamięci trwałej (np. InfluxDB). Celem zapewnienia integralności danych, taki pomiar musi być dostępny także dla innych węzłów. Użycie pamięci podręcznej (ang. cache) staje się idealnym rozwiązaniem. Dane są synchronizowane z bazą danych przy użyciu dodatkowej warstwy w pamięci RAM.

compute and machine learning

Oprogramowanie Apache Ignite wspiera skalowanie horyzontalne – nie wymaga to dodatkowych ustawień, a nowe węzły są dodawane do klastra w sposób automatyczny. Odbywa się to dzięki tzw. Service Discovery, który wykorzystując rejstr węzłów pozwala na komunikację między nimi. Instancje Apache Ignite w ThingWorx 9 wykorzystują Zookeeper Discovery, które pozwala skalować do setek a nawet tysięcy węzłów. Mniejsze klastry mogą skorzystać z szybkiego TCP/IP Discovery, które jest domyślne w Apache Ignite.

 

Podsumowując, klaster Aktywny-Aktywny w ThingWorx 9 składa się z następujących narzędzi:

  • Apache Zookeeper do zarządzania klastrem oraz prowadzenia rejestru węzłów
  • Apache Ignite do synchronizacji i zapewnienia integralności danych oraz zwiększenia wydajności zapytań do bazy danych
  • Wiele instancji serwera ThingWorx, które działają jednocześnie

skalowanie horyzontalne diagram

Na diagramie widać, że wszystkie instancje ThingWorx są aktywne i zarządzają połączeniami. Load balancer wie, ile żądań obsłużył każdy serwer, a także do którego węzła przekazać nowe żądania na podstawie algorytmu balansowania. Całym klastrem zarządza Apache Zookeeper, także użyty jako rejestr (service discovery) dla instancji Apache Ignite. Pamięć podręczna (ang. cache) jest podzielona (domyślnie, co da się skonfigurować) pomiędzy wszystkie węzły. Ciekawa jest także możliwość wykorzystania Apache Ignite jako siatki obliczeniowej (ang. compute grid). Pozwala to podzielić zadania pomiędzy wszystkie węzły, przyspieszając przetwarzanie i umożliwiając analizowanie większej ilości danych jednocześnie. Nowe możliwości obliczania wskaźników KPI i pokazywania ich na żywo na dashboardach to tylko kwestia zrównoleglenia obecnych algorytmów.

Podsumowanie

Oba typy skalowania mają zarówno wady, jak i zalety. Oczywiście finalny wybór należy dostosować do konkretnego zapotrzebowania, jednak w większości przypadków skalowanie horyzontalne sprawdzi się lepiej. Platforma ThingWorx zyskała długo wyczekiwaną opcję obsługi klastra w trybie Aktywny-Aktywny. Jest to niewątpliwie duży krok naprzód. Wiele serwerów obsługujących tę samą aplikację w klastrze zyskuje nowe możliwości przetwarzania, analizy i transformacji danych. Rozwiązania IIoT obsługujące setki tysięcy urządzeń mogą być teraz wdrażane przy lepszym szacowaniu kosztów i czasu, z jeszcze większą dostępnością i niezawodnością. Pozwala to zaoszczędzić pieniądze, przy jednoczesnej redukcji przestojów.

ThingWorx w wersji 9 stał się platformą skali enterprise. Dzięki umożliwieniu skalowania na zewnątrz i do wewnątrz platforma pozwala lepiej szacować koszty utrzymania. Pozostaje też niezawodna, nawet w przypadku nieoczekiwanego (lub oczekiwanego) wzrostu ilości żądań klientów lub urządzeń podłączanych w okresie świątecznym lub w trakcie wydarzeń sportowych. Skalowanie poziome pomaga firmom rozwijać biznes poprzez rozbudowywanie linii i hal produkcyjnych, a nawet łączenie całych fabryk. Wysoka wydajność zmniejsza koszty eliminując nieoczekiwane przestoje. Nowe szanse na rozwój biznesu stają otworem. Firmy mogą skupić się na rozbudowywaniu obecnych i planowaniu nowych rozwiązań zamiast na utrzymaniu. Większa moc obliczeniowa pozwala wdrażać bardziej wyrafinowane modele uczenia maszynowego, a to z kolei stwarza zupełnie nowe możliwości, pozwalając firmom być o krok przed konkurencją.

Jeśli potrzebujesz pomocy we wdrażaniu nowych lub rozbudowywaniu istniejących rozwiązań w oparciu o ThingWorx skontaktuj się z nami.

_Wszystkie wpisy z tej kategorii

blogpost
Artykuły

Lesson Learned Explained: Wdrożenie programu ciągłej innowacji w sektorze obronnym

W dynamicznym świecie lotnictwa i przemysłu zbrojeniowego, jeden z naszych klientów postanowił podjąć wyzwanie: jak skutecznie zwiększyć wykorzystanie nowoczesnych technologii i utrzymać konkurencyjność? Odpowiedzią miało być wdrożenie Programu Ciągłej Innowacji, jako fundamentu nowego modelu biznesowego. Kluczowym elementem tego programu było regularne testowanie technologii, aby wprowadzać na rynek innowacyjne produkty.

Czytaj więcej
blogpost
Artykuły

Lesson Learned Explained: Zaawansowana cyfryzacja produkcji, AR/VR oraz HoloLens w branży farmaceutycznej

Firma z sektora farmaceutycznego postawiła sobie za cel zwiększenie swojej innowacyjności poprzez aktywne testowanie nowoczesnych technologii. Kluczowym wyzwaniem było umiejętne oraz efektywne zintegrowanie nowinek technologicznych z obszarem produkcji, aby zbierać i analizować dane w czasie rzeczywistym. Firma chciała pokazać, że jest w „ścisłym peletonie” cyfryzacji produkcji, co miało również na celu zwiększenie jej konkurencyjności na rynku.

Czytaj więcej
blogpost
Artykuły

Lesson Learned Explained: Integracja systemów i modelowanie danych dla poprawy jakości produkcji półprzewodników

Przedsiębiorstwo z sektora przemysłu elektronicznego, specjalizujące się w wytwarzaniu półprzewodników, postawiło sobie za główny cel wprowadzenie usprawnień wpływających pozytywnie na jakość produktów końcowych. Kluczowym elementem było monitorowanie i identyfikacja korelacji, które pozwolą przewidywać jakość wyrobów schodzących z linii produkcyjnej. Wykorzystano do tego dane pochodzące z maszyn oraz stacji kontroli jakości, które następnie podlegały dogłębnej analizie. Dzięki temu firma mogła lepiej zrozumieć, jakie czynniki wpływają na końcową jakość ich produktów.

Czytaj więcej
blogpost
Artykuły

Lesson Learned Explained: Monitorowanie i poprawa stabilności produkcji oraz wzrost jakości wyrobów – branża motoryzacyjna

Firma z branży motoryzacyjnej potrzebowała rozwiązania do monitorowania produkcji, by poprawić jakość wyrobów końcowych. Kluczowym elementem było zidentyfikowanie problemów poprzez analizę danych jakościowych w korelacji z danymi produkcyjnymi. Szczególną uwagę poświęcono strefie formowania i chłodzenia odlewów, gdzie jakość produktów była szczególnie zmienna.

Czytaj więcej
blogpost
Artykuły

Lesson Learned Explained: Pełna wizualizacja danych w procesie wytwarzania komponentów dla automatyki

Globalna firma z branży produkcji akcesoriów elektrycznych, wykorzystywanych w automatyce, stanęła przed wyzwaniem poprawy kluczowych wskaźników wydajności (KPI), w szczególności zwiększenia dostępności i efektywności gniazd produkcyjnych. Każde gniazdo robocze obejmowało wiele etapów montażu i produkcji na różnych stanowiskach oraz lokalizacjach, co wymagało skoordynowanego podejścia do zarządzania pracą, materiałami oraz odpowiedniego planowania.

Czytaj więcej
blogpost
Artykuły

Lesson Learned Explained: Cyfryzacja procesów raportowania w branży produkcji opakowań szklanych

Klient, lider w sektorze produkcji opakowań szklanych, zgłosił potrzebę wdrożenia zintegrowanego systemu zarządzania danymi produkcyjnymi, który miałby na celu wyeliminowanie przestarzałych, manualnych metod raportowania.

Czytaj więcej
blogpost
Artykuły

Lesson Learned Explained: Poprawa KPI w Branży FMCG dzięki automatyzacji i analizie danych z półautomatycznych linii produkcyjnych

Wprowadzenie W sektorze żywności i napojów (zwanym inaczej FMCG – Fast Moving Consumer Goods) osiąganie wysokich wskaźników KPI, takich jak dostępność, wydajność i jakość, ma kluczowe znaczenie dla efektywności operacyjnej i zachowania przewagi konkurencyjnej. Nasz klient, firma działająca w tej branży, napotkał trudności w utrzymaniu optymalnych wyników na półautomatycznych liniach produkcyjnych ( w tym przypadku pracownicy […]

Czytaj więcej
blogpost
Artykuły

Lesson Learned Explained:  Jak właściwe zbieranie i przechowanie danych okazało się kluczowe w predyktywnym utrzymaniu ruchu

W przemyśle lotniczym i obronnym, który charakteryzuje się szczególnie wysokimi wymaganiami w zakresie precyzji i niezawodności, kluczowe wskaźniki efektywności w utrzymaniu ruchu, przewidywania awarii czy monitorowanie stanu maszyn, mają kluczowe znaczenie.

Czytaj więcej
blogpost
Artykuły

Jak zwiększyć efektywność produkcji bez inwestycji w park maszynowy?

Nie musisz wymieniać maszyn na nowe, aby Twoja produkcja stała się bardziej "inteligentna" oraz wydajniejsza. Twój park maszynowy jest kopalnią danych, a kluczem do sukcesu jest cyfryzacja.

Czytaj więcej
blogpost
Artykuły

Wskaźnik OEE: czy twoja firma wpada w pułapkę manipulacji?

Jeśli wydaje Ci się, że o liczeniu OEE wiesz już wszystko, a Twoja fabryka utrzymuje się wśród najlepszych 10% to... masz rację - wydaje Ci się! 

Czytaj więcej

Zostańmy w kontakcie

Skontaktuj się