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.

How useful was this post?

Click on a star to rate it!

Average rating 5 / 5. Vote count: 1

No votes so far! Be the first to rate this post.

W przypadku naruszenia Regulaminu Twój wpis zostanie usunięty.
Votre nom et prénom

_Wszystkie wpisy z tej kategorii

Dlaczego warto używać Azure Cloud dla rozwiązań IoT

Cyfrowa transformacja zmienia sposób, w jaki połączone są produkty, aktywa, dane i operacje, aby dostarczyć biznesową wartość dla klientów. Przekształcenie danych cyfrowych na pozytywne i wartościowe doświadczenia klienta pozwala osiągnąć realne, wymierne korzyści i zyski dla przedsiębiorstwa. Technologie cyfrowe tworzą nowe możliwości biznesowe na całym świecie i prowadzą do ewolucji przedsiębiorstw, produktów i procesów. Poniższy artykuł przybliża wybrane, najpopularniejsze technologie Przemysłu 4.0 w kontekście biznesowym. W tekście opisana zostanie koncepcja Internetu Rzeczy oraz infrastruktura chmury obliczeniowej wraz z możliwością ich wykorzystania w cyfrowej transformacji.
Czytaj dalej

Wizualizacja danych w IoT

Jedną z niewątpliwych zalet rozwiązania, jakim jest Internet Rzeczy, jest możliwość gromadzenia i przetwarzania ogromnej liczby różnorodnych danych (np. wartość temperatury, liczba wyprodukowanych elementów, ilość pozostałych płynów, wskaźnik wilgotności, czas pracy maszyn). Wiąże się z tym jednak pewne niebezpieczeństwo – wielość informacji może utrudnić ich efektywne wykorzystywanie. Rozwiązaniem tego problemu jest wizualizacja danych, a odpowiednio dobrany typ wykresu może zwiększyć wartość danych. W tym artykule zaprezentujemy korzyści płynące z dobrej wizualizacji danych oraz jakie mogą mieć zastosowanie w Twojej organizacji.
Czytaj dalej

Skalowanie Horyzontalne w ThingWorx 9

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?
Czytaj dalej

High Availability w aplikacjach IoT

Współczesne serwisy internetowe odpowiadają na miliony zapytań użytkowników. Wszystkie one działają w środowiskach klastrowych. Obsługa wielu zapytań wymaga znacznych zasobów, takich jak czas procesora (CPU) oraz pamięć RAM. Każde połącznie do serwera generuje jego dodatkowe obciążenie. W takiej sytuacji jeden serwer wymagałby ogromnych ilości zasobów, a prawo Moor'a już się nie sprawdziło. Aby temu zaradzić potrzebujemy wielu serwerów, które obsługują zapytania użytkowników. Aplikacje webowe (w tym także IoT) używają protokołu HTTP(S), który działa na zasadzie: żądanie-odpowiedź. Gdy użytkownik otwiera stronę, lub wywołuje akcję, zostaje wysłane żądanie do serwera. Na każde żądanie użytkownika serwer musi przygotować odpowiedź. Każda odpowiedź musi zostać w odpowiedni sposób przeprocesowana, a to stanowi główne kryterium estymacji ilości zasobów serwera - żądania mogą być różne, od danych statycznych jak style CSS lub obrazy, po skomplikowane jak pobieranie danych z bazy, filtrowanie lub wyliczanie pewnych współczynników.
Czytaj dalej

IoT Hub Connector dla ThingWorx – Połączenie ThingWorx z Chmurą Azure

Thingworx IoT Hub Connector jest mostem, który łączy platformę Thingworx z chmurą Azure (a dokładniej z Azure IoT Hub). Zapewnia on bezpieczną (opartą na certyfikatach) komunikację, dzięki której możemy korzystać z ogromnych możliwości chmury obliczeniowej. Jest to rozwiązanie bardzo rozbudowane, ale również generyczne.
Czytaj dalej

Czym jest AIoT? Artificial Intelligence of Things w Przemyśle 4.0 

Synergia, tak można określić to naturalne połączenie technologii, które znacząco wpłynie na wygląd przyszłości produkcyjnej. Ostatnimi czasy coraz większą popularność zyskuje, obok Internetu Rzeczy (IoT), sztuczna inteligencja (AI). Zestawienie tych dwóch trendów technologicznych zwiastuje praw-dziwą rewolucję przemysłu 4.0.  
Czytaj dalej

Co nowego w ThingWorx 9.0?

Tegoroczny Liveworx, ze względu na globalną sytuację wywołaną przez pandemię COVID-19, wyjątkowo odbywał się wyłącznie w wersji on-line. Już pierwszego dnia zapowiedziano wypuszczenie do komercyjnego użytku nowej wersji ThingWorx - najpopularniejszej platformy maksymalizującej potencjał przemysłowego internetu rzeczy. Zgodnie z zapowiedziami Joe Birona, CTO odpowiedzialnego za technologię IoT w PTC, ma być szybciej, taniej i efektywniej.
Czytaj dalej

Machine Learning & ThingWorx vs COVID-19

Rozwój sztucznej inteligencji, a wraz z nią uczenia maszynowego nabrał w ostatnich latach dużego rozpędu. Ciągłe dążenie do zwiększenia mocy obliczeniowej komputerów dało możliwość wykorzystania algorytmów oraz aparatu matematycznego stworzonych w drugiej połowie XX wieku na niespotykaną dotąd skalę. Mając w perspektywie rychłe nadejście komercyjnego komputera kwantowego można powoli zacząć obawiać się scen rodem z filmów z Arnoldem Schwarzeneggerem w tytułowej roli Terminatora. Nie wybiegając jednak za daleko w przyszłość, a skupiając się na teraźniejszości postanowiłem sprawdzić jakie możliwości daje dostępna dzisiaj technologia oraz czy można wykorzystać ją w predykcji rozprzestrzeniania się choroby COVID-19.
Czytaj dalej

Sieć 5G kluczem do Przemysłowego Internetu Rzeczy

Przemysłowy Internet Rzeczy zmienia dziś nasze spojrzenie na klasyczne pojęcie produkcji. Największe koncerny wytwórcze chętnie sięgają po rozwiązania technologiczne, które usprawniają i zwiększają efektywność procesów produkcyjnych. Wraz z rozwojem kolejnych technologii rośnie zainteresowanie koncepcją przemysłu 4.0, a w rezultacie także liczba połączonych urządzeń. Aby zaspokoić zapotrzebowanie w zakresie infrastruktury o odpowiedniej przepustowości i prędkości niezbędna była ewolucja w kierunku kolejnej generacji sieci- 5G. Jak 5G wpłynie na rozwój Fabryk przyszłości i dlaczego to kluczowe z perspektywy Internetu rzeczy? Wszystkiego dowiesz się z artykułu.
Czytaj dalej

Koronawirus, a ciągłość produkcji – IoT i AR dla przemysłu

Nagła epidemia koronawirusa SARS-CoV-2 i wywoływanej przez niego choroby COVID-19 wpłynęła na każdą sferę funkcjonowania współczesnego świata. Wywołane zagrożeniem epidemiologicznym ograniczenie przepływu ludzi, towarów i usług już negatywnie wpłynęło na ciągłość procesów produkcyjnych wielu branż, a każdy dzień utrzymywania się tej sytuacji, bez wiarygodnych prognoz powrotu do normalności wciągał będzie kolejne w spiralę zagrożenia zatrzymaniem.
Czytaj dalej

Jak Internet Rzeczy zmienia branżę lotniczą?

Internet Rzeczy stosowany jest w coraz szerszym zakresie, a z rozwiązań optymalizujących czy gromadzących informacje korzystają światowi giganci. Wszystko po to, aby usprawniać dotychczasowe procesy, pozyskiwać, przetwarzać i raportować większą ilość danych lub nawet wprowadzać nowe usługi.
Czytaj dalej

Jak Internet Rzeczy rozwija przemysł motoryzacyjny?

Nikogo nie zaskoczy stwierdzenie, że przemysł motoryzacyjny jest z natury innowacyjny. Samochody to maszyny, które historycznie zrewolucjonizowały wiele obszarów przemysłu, a dziś można śmiało powiedzieć, że branża motoryzacyjna nie spoczywa na laurach i nadal skupia się na rozwoju technologicznym, który ma służyć konsumentom prywatnym oraz biznesowym.
Czytaj dalej

Internet Rzeczy w branży logistycznej

Wydawałoby się, że Internet Rzeczy jest dedykowany wyłącznie branży przemysłowej. Z nią jednak bardzo związane są transport oraz logistyka, które również mogą skorzystać na trwającej właśnie rewolucji.
Czytaj dalej

LiveWorx 2019 – trendy świata IoT na przyszły rok

Jak zwykle w ostatnich latach, silna drużyna Transition Technologies PSC była obecna w Bostonie na jednym z najważniejszych wydarzeń IoT tego roku – LiveWorx 2019.   No to zaczynamy   Nawet z 10 uczestnikami z różnych obszarów biznesu, aktywnie poszukującymi nowych informacji i prezentacji, udało nam się uczestniczyć jedynie w małej części z ponad 240 …
Czytaj dalej

Czwarta (R)Ewolucja Przemysłowa

Przemysł 4.0 i jego fundament – Internet Rzeczy (IoT – zwłaszcza w przemysłowym wydaniu: IIoT) zdominowały w ciągu ostatnich lat sposób myślenia o zaawansowanym zarządzaniu zasobami przedsiębiorstw produkcyjnych. Każda nowa maszyna, aplikacja, sterownik… szczyci się gotowością do podłączenia do Internetu Rzeczy. Czy jednak jest to faktycznie nowa jakość i wartość dodana otwierająca nowe horyzonty, czy …
Czytaj dalej

Czym ThingWorx różni się od Axeda i czy warto rozważyć zmianę?

Odkąd PTC odzyskało ThingWorx w 2013, było jasne, że pionier parametrycznego CAD’a oraz jeden z liderów PLM chciał znacznie powiększyć ślad swojej obecności na...
Czytaj dalej

Czy twoje zasoby danych są gotowe? Wsparcie ThingWorx dla InfluxDB

Jakiś czas temu PTC ogłosiło wydanie nowej wersji Platformy ThingWorx (8.4), która posiada wsparcie OOTB integracji z InfluxDB. Na pierwszy rzut oka, to 'jedynie’ wsparcie dla kolejnej bazy danych, ale jeśli przyjrzeć się temu bliżej, to kolosalne posunięcie, które sprawia, że środowisko Internetu Rzeczy (IoT) PTC staje się bardziej niezawodne pod względem potencjału zbioru danych. …
Czytaj dalej

Internet Rzeczy – 9 trendów na rok 2019!

Niegdyś niedoceniany sposób podejścia do tematu, dziś rozwija skrzydła i staje się kluczowym zbiorem rozwiązań globalnych korporacji. Choć nie tylko, bo śladami wielkich podążają również średnie i mniejsze firmy. Zatem zalety Internetu Rzeczy dostrzegli już wszyscy. Jakie jednak trendy rozwoju będziemy mogli dostrzec w 2019 roku? 1. Przepustowość danych W wielu branżach ilość przesyłanych danych …
Czytaj dalej

Czy nadszedł już czas aby inwestować w IoT?

W ostatnich latach bardzo dużo mówiło się na temat Internet of Things (IoT) oraz sposobach w jakim miałbym on odmienić przemysł. Jednakże póki co widzieliśmy znacznie więcej ludzi dużo mówiących o tej technologii niż takich, którzy realnie ją wdrażali. Zatem, czy IoT jest już technologią na tyle „dojrzałą” aby móc stać się prawdziwą okazją dla …
Czytaj dalej

_Zostańmy w kontakcie

Skontaktuj się