Obecnie, w branży spożywczej restauracje i firmy kurierskie konkurują nie tylko oferowanym jedzeniem, ale także aplikacjami webowymi i mobilnymi.

W przypadku problemów z działaniem aplikacji lub stron internetowych istnieje duże ryzyko utraty klientów bez zamówienia i spróbowania jedzenia. Dlatego ważne jest, aby platforma internetowa lub mobilna była prosta w obsłudze i działała poprawnie.

Jednym z kluczowych wyzwań, przed którym stanął nasz zespół, było ulepszenie platformy dla jednej z wiodących firm dostarczających żywność. Specjaliści Agiliway musieli pomóc przebudować platformę, aby była skalowalna i elastyczna. Nasz zespół dokonał również zmian, które przerosły oczekiwania klienta.

Zespół Agiliway miał na początku projektu dwa główne zadania: poprawić stronę internetową klienta i rozbudować jego system, aby zautomatyzować jak najwięcej usług.

W tym celu ustalono kluczowe wymagania, takie jak zmniejszenie obciążenia systemu centralnego, stworzenie centralnego hostingu serwisu, skonfigurowanie wymiany danych, uporządkowanie struktury usług, ustanowienie bezpiecznego połączenia z maszynami wirtualnymi oraz rozwiązanie problemu z dynamiczną synchronizacją danych.

Po dokładnej analizie wszystkich problemów i ich wpływu na działanie klienta, zespół programistów Agiliway rozpoczął naprawę wszystkich problemów z serwisem oraz ulepszanie systemu. W rezultacie jest teraz bardziej przyjazny dla użytkownika i łatwiejszy w utrzymaniu, co pozwala zaoszczędzić mnóstwo pieniędzy.

Inżynierowie Agiliway musieli przeprojektować system, aby był skalowalny i elastyczny, biorąc pod uwagę, że system ma architekturę mikroserwisową i składa się z ponad piętnastu różnych komponentów.

  • – Dapr jest używany do integracji mikroserwisów, a każda aplikacja w platformie ma przejrzystą strukturę architektury. Platforma zawiera kilkanaście różnych usług;
  • – Aby odciążyć system i zapewnić równomierne rozłożenie obciążenia, inżynierowie Agiliway podzielili główną logikę biznesową na wiele usług, w tym system lojalnościowy, koszyk, autoryzację, powiadomienia i inne;
  • – Zdecydowano o wykorzystaniu różnych baz danych dla różnych usług, ponieważ każda usługa ma swoje własne wymagania dotyczące bazy danych;
  • – PostgreSQL jest używany do usług administracyjnych, które konfigurują wszystkie produkty i połączenia między nimi. MongoDB jest używany do obsługi zamówień, a Elastic Search do przechowywania dzienników i audytu;
  • – Zespół Agiliway wybrał Amazon jako centralny hosting ze względu na to, że większość usług wykorzystywanych w projekcie jest dostarczana przez Amazon;
  • – Funkcje lambda zostały wykorzystane do umożliwienia przesyłania danych pomiędzy różnymi usługami przy użyciu komponentów Dapr, a także usług Amazon SQS/SNS;
  • – Aby poprawić komunikację między usługami, wszystkie usługi w systemie zostaly przepisane/skonfigurowane ponownie z wykorzystaniem platformy .Net;
  • – Do przekazywania klientom informacji na żywo dotyczących różnych wydarzeń, takich jak nieudane płatności, śledzenie statusu dostawy czy statusu płatności podczas składania zamówienia, wykorzystywane są WebSockets;
  • – W celu poprawy bezpieczeństwa, adresy IP wykorzystywane do połączeń z maszynami wirtualnymi zostały zastąpione przez DNS;
  • – Aby zapewnić bezpieczeństwo aplikacji, DefectDojo było podłączone w celu wykrywania podatności w front-endzie i back-endzie. W ten sposób, system może zidentyfikować narzędzia lub biblioteki, które wymagają aktualizacji, lub naprawić problemy z połączeniem;
  • – Wdrożono również Jaegera. Pozwala to śledzić żądania bazy danych lub powolne zapytania front-end;
  • – Ustawiono dynamiczną synchronizację danych;
  • – Wykorzystanie monorepo i czystej architektury pozwoliło na skrócenie czasu programowania, ułatwiło wsparcie oraz zwiększyło szybkość odpowiedzi;
  • – Next.js z podejściem ISR był wykorzystany do renderowania i pobierania danych dla komponentów front-end po stronie serwera.

Zespół programistów Agiliway zajmował się nie tylko naprawą problemów w systemie klienta, ale również zautomatyzował konfigurację harmonogramu dostaw żywności i przeniósł dane z różnych źródeł do zunifikowanego systemu.

Technologie użyte w projekcie obejmują m.in. Asp.Net Core, .NET 5, Entity Framework Core, Dapr, AutoMapper, FluentValidation, MediatR, CQRS, DDD, AMQ dla back-endu oraz React, React Native, Recoil, Next.js dla front-endu. Jako bazy danych wykorzystano AWS DocumentDB, PostgreSQL i MongoDB, a do zarządzania kontenerami używaliśmy Dockera i Kubernetesa.

Jaka jest wartość dla naszego klienta?

Praca nad tym złożonym rozwiązaniem była wyzwaniem, ale również satysfakcjonująca dla zespołu programistycznego. Udało nam się nie tylko rozwiązać problemy zarówno po stronie back-endu, jak i front-endu, ale także wprowadzić zmiany, które pozwoliły na:

  • – automatyzację większości procesów biznesowych;
  • – odciążenie systemu;
  • – wykorzystanie Amazon do stworzenia centralnego hostingu;
  • – naprawienie problemów z synchronizacją danych;
  • – ustanowienie poprawnej wymiany danych oraz bezpiecznych połączeń z maszynami wirtualnymi.

Nowy system pozwolił lepiej zrozumieć gotowość i dostawę zamówień, co z kolei pomogło w odciążeniu call center. Z biznesowego punktu widzenia, wszystkie wprowadzone modyfikacje doprowadziły do ustrukturyzowania danych klienta. Teraz dane te mogą być wykorzystywane do bardziej zaawansowanych kampanii marketingowych, prostszych procesów zarządzania witryną, a w rezultacie do pozyskiwania większej liczby nowych klientów.

Podsumowanie

Dostosowanie się do szybkiego tempa rozwoju branży dostaw żywności jest wyzwaniem dla właścicieli firm na całym świecie. Aby sprostać wymaganiom, poszukują oni najlepszych i najbardziej elastycznych rozwiązań, które pozwolą na automatyzację całego procesu zamawiania i dostarczania jedzenia.

W tle procesu składania zamówienia, od przetwarzania i żądania zapłaty, po przekierowanie do właściwej restauracji, zachodzi wiele działań. Zespoły programistów wkładają wiele wysiłku i kreatywności, aby zapewnić, że następnym razem, kiedy zamówisz jedzenie, dotrze ono do Ciebie szybko i w dobrej jakości.


Bądź na bieżąco i zostań jednym z ponad 14 tysięcy naszych obserwujących!

zostaw odpowiedź

Please enter your comment!
Please enter your name here