Autor: Radek Šustr, vedoucí týmu Integrace a Cloud

Pro zákazníka jsme navrhli a implementovali e‑shopové řešení, které pokrývá potřeby na prodej zboží pro více jednotlivých oddělení. Řešením je systém několika e‑shopů, které zastřešují prodejní agendy různých oddělení. Pro implementaci bylo vybráno několik open-source e‑shopů, které pokrývají kompletní business funkcionalitu zákazníka v oblasti eCommerce a zároveň dané řešení zapadá do architektonického a technologického rámce zadavatele.

Základní podporovaná funkcionalita e-shopu:

  1. Výběr zboží z katalogu a jeho uložení do nákupního košíku (zákazník).
  2. Vytvoření a dokončení objednávky (zákazník).
  3. Úhrada objednávky (zákazník).
  4. Příjem a zpracování objednávky (pracovník e-shopu).
  5. Příprava a vypravení zásilky (pracovník e-shopu, popř. dodavatel zboží).
  6. Dodání zboží (dodavatel, přepravce).

Mezi důležité nefunkční požadavky patří také uchovávání auditní stopy.

Řešení je netriviální s ohledem na integrace s dalšími systémy (interními i externími). Systém je napojen např. na:

  1. Autentizační služby – na aplikační vrstvě jsou tyto služby realizovány s ohledem na typ zákazníka.
    1. Interní zákazník – využívá typicky autentizační služby společnosti (Azure Entra ID).
    2. Externí zákazník – využívá autentizaci e-shopu nebo autentizační mechanismy třetích stran (Facebook, Google, MSFT apod.).
    3. Smluvní zákazník – využívá databázi klientů, autentizace typicky probíhá přes systém datových schránek.
  2. Produktové portfolio – závisí na typu e-shopového řešení a na přihlášeném zákazníkovi. Informace o produktech jsou získávány z hlavního účetního a ekonomického systému (SAP) a dále upravovány v administrační produktové části e-shopu.
  3. Platební služby – poskytují mimo jiné:
    1. informace o možnostech platby v e-shopu,
    2. komunikaci s platební bránou,
    3. potvrzení o proběhlé platbě, které je nutné k uzavření zakázky.
  4. Systém pro správu dokladů – zajišťuje všechny nutné doklady v průběhu zpracování zakázky. Služba je zajištěna hlavním ekonomickým a účetním systémem (SAP).
  5. Služby dopravce – externí služby třetích stran, které poskytují, mimo jiné:
    1. možnost zvolit dopravce, místo a čas doručení zboží,
    2. zajištění samotné dopravy,
    3. vypořádání případné platby,
    4. podklady pro uzavření zakázky.

 

Technologická část řešení

Řešení je navrženo primárně pro běh v Azure službách – PaaS. Důraz je kladen na bezpečnost řešení, proto jsou využity pokročilé služby Azure chránící před útoky z vnějšího prostředí.

Figure 1: Architektura řešení

 

Řešení využívá základní komponenty pro nasazení aplikace dle guidance & best-practices pro provoz webových aplikací v cloudovém prostředí Azure. Následující seznam zahrnuje i služby, které jsou vhodné z pohledu vyšší bezpečnosti řešení.

  • Azure App Service – poskytuje rámec pro vytváření, nasazování a škálování webových aplikací. V navrhovaném systému bude využita pro back-end služby a API.
  • Azure Virtual Network – zajišťuje komunikaci, izolaci a segmentaci. Umožňuje filtrovat a směrovat provoz a navazovat spojení mezi různými lokalitami.
  • Azure DDoS Protection – poskytuje funkce pro obranu a zmírňování dopadů DDoS útoků.
  • Azure Key Vault – ukládá a řídí přístup k heslům, certifikátům a klíčům.
  • Blob Storage – poskytuje škálovatelné a optimalizované úložiště objektů.
  • Azure Front Door – umožňuje definovat, spravovat a monitorovat globální směrování webového provozu. Zajišťuje optimalizaci provozu pro nejlepší výkon a umožňuje vysokou dostupnost při selhání provozu využívaných služeb.
  • Azure Monitor – základní služba pro logování a monitoring (nejen) výkonu systému.

Vysokou spolehlivost a dostupnost zajistí nativní prostředky využitých služeb: App Service, Blob Storage (replikace do více regionu), databázové služby (nativní implementace high-availability – Azure SQL database, Azure Database for MySQL flexible server apod.).