dot dot dot
Back

Infrastruktura dla warehouse intelligence w PSI

PSI Polska jest częścią koncernu PSI AG z siedzibą w Berlinie, który od ponad 50 lat zajmuje się wytwarzaniem oprogramowania dla przemysłu. Poznański oddział PSI osiągnął sukces we wdrożeniach i rozwoju systemu PSIwms, służącego do zarządzania magazynami. 

W ramach rozwoju systemu PSIwms, zespół opracował koncepcję Warehouse Intelligence, czyli wykorzystania sztucznej inteligencji do optymalizacji procesów logistycznych.

Wyzwanie

Zespół PSI poprosił nas o przygotowanie infrastruktury, która będzie intuicyjna w obsłudze, będzie się szybko uruchamiać i będzie zautomatyzowana.

Środowisko miało być przygotowane tak, żeby osoba bez zaawansowanej wiedzy technicznej mogła nim zarządzać, korzystając ze wszystkich dostępnych komponentów.

Bardzo istotne było zoptymalizowanie czasu tworzenia nowych środowisk oraz przeprowadzania testów. Docelowa platforma, miała być wykorzystywana do opracowywania modeli Machine Learningowych w formie eksperymentów z wykorzystaniem oprogramowania PSI i różnych konfiguracji sprzętowych.

Rozwój platformy – krok po kroku

Rozpoczynając pracę musieliśmy przeprowadzić konsultacje, poznać potrzeby i dokładnie zaplanować rozwój środowiska.  Z uwagi na planowane testy na różnych wielkościach maszyn wirtualnych, klient zdecydował się na rozwijanie platformy bezpośrednio w środowisku chmurowym. 

PSI otrzymało bardzo elastyczne środowisko, skalowalne na potrzeby konkretnych zadań.  Dodatkowo firma nie musiała inwestować w zakup sprzętu potrzebnego do rozwoju i weryfikacji oprogramowania, co w przypadku środowisk badawczo rozwojowych nie tylko minimalizuje ryzyka niewłaściwego doboru hardware’u, ale też niweluje problem starzenia się infrastruktury. . 

Przygotowując infrastrukturę dla naszych klientów, praktycznie zawsze używamy technologii IaC. W tym konkretnym przypadku IaC mogło pokazać swoje ogromne zalety i w krótkim czasie umożliwiło zbudowanie wielu kopii środowiska, dając możliwość równoczesnej pracy w różnych konfiguracjach.

Rozwiązanie

Całe środowisko zbudowaliśmy na platformie Amazon Web Services, wykorzystując instancje Amazon Elastic Compute Cloud (EC2) a z uwagi na planowane duże obciążenia wdrożyliśmy Amazon Elastic Kubernetes Service (EKS), co pozwoliło na zwiększenie ilości instancji w momentach dużego zapotrzebowania i zmniejszanie gdy takiej potrzeby nie było.

Proces skalowania instancji EC2 został przez nas zautomatyzowany dla wygody klienta. Jednocześnie nasze rozwiązanie umożliwia wręcz natychmiastowe uruchomienie instancji EC2 z kartami graficznymi umożliwiając przeprowadzanie testów budowania modeli Machine Learning z wykorzystaniem GPU w razie potrzeby deweloperów i specjalistów współpracujących z klientem w tym zakresie.  Uruchomiliśmy GitLab na potrzeby projektu oraz wszystkie procesy opisaliśmy za pomocą CI/CD – GitLab CI stanowi interface do zarządzania całą platformą z poziomu repozytorium kodu i odpowiednio opracowanych procesów (podejście GitOps). Narzędziem GitOps, które wykorzystaliśmy jest ArgoCD, które zostało wdrożone w przestrzeni klastra Kubernetes platformy.

Usługa Network Load Balancer zapewniła nam wygodne i kontrolowane sterowanie ruchem przychodzącym do klastra. Zastosowaliśmy ją celowo, ponieważ zależało nam na tym, aby środowisko było budowane z wykorzystaniem technologii Cloud Native i możliwe do odtworzenia u innych operatorów chmur publicznych lub w zakresie chmury prywatnej. 

Dane wynikowe umieściliśmy w Amazon Simple Storage Service (S3), to usługa obiektowej pamięci masowej, dzięki której uzyskaliśmy skalowalność, dostępność danych, bezpieczeństwo i wydajność. Logi generowane podczas eksperymentów na platformie są wysyłane do usługi ElasticSearch, którą uruchomiliśmy dla klienta wraz z komponentami LogStash oraz Kibana.

Co udało nam się osiągnąć?

 

Stworzona infrastrukturę opisaliśmy za pomocą kodu w Terraform, tak żeby zespół PSI mógł ją szybko uruchamiać w różnych konfiguracjach z wersjonowaniem w narzędziu GitLab. Wprowadzone przez nas rozwiązanie umożliwia przeprowadzanie rozmaitych eksperymentów Machine Learningowych z wykorzystaniem dedykowanego oprogramowania klienta w zależności od wykorzystywanego typu sprzętu. 

 

Dzięki wykorzystaniu mechanizmów skalowania środowisko automatycznie i szybko dostosowuje się do aktualnego zapotrzebowania na moc obliczeniową. Wszelkie elementy infrastruktury zostały umieszczone w kontenerach i zorkierstrowane z wykorzystaniem technologii Kubernetes. W rezultacie PSI otrzymało wysoce odporne na wszelkie przeciążenia środowisko do testowania i bieżącego rozwoju swojego oprogramowania

ZASTOSOWANE TECHNOLOGIE

Terraform
Amazon EC2
Kubernetes
ArgoCD
Amazon S3
ElasticSearch
LogStash
Kibana

Monitorowanie i zarządzanie operacyjne w platformie Warehouse Intelligence PSI:

Centralizacja logowania z wykorzystaniem stosu ELK:

Logi z eksperymentów są zbierane, przetwarzane i wizualizowane za pomocą ElasticSearch, LogStash i Kibana (stos ELK) w celu monitorowania w czasie rzeczywistym i rozwiązywania problemów.

Monitorowanie wydajności:

Zbieranie i monitorowanie metryk zapewniają zdrowie systemu i optymalną wydajność, prawdopodobnie przy użyciu narzędzi takich jak Prometheus lub CloudWatch.

 

Zarządzanie operacjami:

Infrastruktura jako kod (IaC):

Terraform jest używany do opisywania i zarządzania infrastrukturą, umożliwiając spójne, powtarzalne wdrożenia i szybkie zmiany konfiguracji.

CI/CD i GitOps:

GitLab CI i ArgoCD zarządzają platformą poprzez zautomatyzowane pipelines, usprawniając wdrożenia i redukując błędy ludzkie.

Orkiestracja Kubernetes:

Kontenery są zarządzane za pomocą Kubernetes, co zapewnia odporność, skalowalność i automatyczne odzyskiwanie po awariach.

Automatyczne skalowanie:

Amazon EKS i instancje EC2 automatycznie skalują się w zależności od zapotrzebowania, efektywnie obsługując wymagania obliczeniowe.

Równoważenie obciążenia:

Network Load Balancer rozdziela przychodzący ruch, zwiększając niezawodność i dostępność platformy.

Zarządzanie danymi za pomocą S3:

Amazon S3 zapewnia skalowalne, bezpieczne i wydajne przechowywanie danych generowanych podczas eksperymentów.

previous next
scroll