Architektura #MultiFlexi aneb roztrhanl jsem bumbrlíčka
Ekosystém MultiFlexi se skládá z několika vzájemně propojených projektů, z nichž každý plní specifickou roli v celkové architektuře. Níže je uveden přehled hlavních členských projektů a jejich vztahů:
Základní komponenty
Základní knihovna PHP poskytující hlavní obchodní logiku, datové modely a sdílené nástroje pro platformu MultiFlexi. Všechny ostatní komponenty závisí na tomto balíčku pro základní funkcionalitu.
Obsahuje definice schémat databáze a migrační skripty pro MultiFlexi. Používá se serverem a dalšími komponentami k inicializaci a aktualizaci struktury databáze.
Rozhraní příkazového řádku pro správu zdrojů MultiFlexi (aplikace, společnosti, uživatelé, úlohy atd.). Spoléhá na základní knihovnu a interaguje s databází.
Hlavní backendový server poskytující REST API a webové uživatelské rozhraní pro MultiFlexi. Orchestruje plánování úloh, správu uživatelů a integruje se s hlavní knihovnou a databází.
Vyhrazená služba nebo agent zodpovědný za provádění úloh a úkolů podle plánu serveru. Komunikuje se serverem a může běžet v izolovaných prostředích.
Kolekce Ansible poskytující playbooky a role pro nasazení a správu komponent MultiFlexi v různých prostředích.
Meta-repozitář, který agreguje všechny výše uvedené projekty a poskytuje jednotný zdroj pro vývoj, nasazení a integraci.
Vztahy mezi projekty
Klíčová knihovna je závislostí pro CLI, server a exekutor.
Databázový projekt poskytuje schéma a migrace pro všechny komponenty, které vyžadují trvalé úložiště.
CLI a server interagují s databází i s knihovnou jádra, ale obsluhují různá uživatelská rozhraní (příkazový řádek vs. web/API).
Exekutor je spravován serverem a je zodpovědný za bezpečné a izolované spouštění úloh.
Kolekce ansible se používá k automatizaci nasazení a konfigurace všech komponent.
#ZeŽivotaVývojáře #OpenSource