[ Article ]
Ibexa bez chaosu w kodzie: jak Kaliop Content Decorator Bundle porządkuje pracę z contentem

Stanisław Klimaszewski

Kaliop
Opublikowano 16 lipca 2024
Skupiona na zwinności, skalowalności i wydajności, architektura MACH oferuje wiele zalet. Opiera się ona na mikrousługach, czyli strukturze, w której komponenty są opracowywane niezależnie od siebie.
Podejście MACH oddziela front-end od back-endu (decoupling), dzięki czemu można nad nimi pracować osobno. Wszystkie funkcje programu są dostępne za pośrednictwem interfejsu API i w pełni wykorzystują możliwości chmury.
Aby lepiej zrozumieć te aspekty techniczne, wyjaśniamy szczegółowo, czym jest architektura MACH.
Akronim MACH dosłownie oznacza:
Przyjrzyjmy się każdemu z tych aspektów technicznych, aby zdefiniować, czym dokładnie jest architektura MACH.
Termin „mikrousługa” odnosi się do architektury, w której buduje się niezależne komponenty realizujące pojedynczą, konkretną funkcję. W architekturze MACH to przede wszystkim sama metoda pracy jest inspirowana podejściem mikroserwisowym.
W praktyce ta metoda wytwarzania oprogramowania zapewnia zespołom ogromną elastyczność. Pozwala to na równoległą pracę nad wieloma projektami i ich wdrażanie w najbardziej odpowiednim momencie. Poszczególne komponenty mogą ewoluować, będąc jednocześnie utrzymywanymi w ramach swojego własnego ekosystemu.
Wszystko, co oferuje wdrożone rozwiązanie, musi być dostępne w podejściu API-first. Wszystkie funkcjonalności powinny być dostępne poprzez API, aby umożliwić łączenie różnych komponentów z aplikacjami biznesowymi lub innymi narzędziami używanymi przez firmę.
Pomaga to zmniejszyć zależność od samych narzędzi. Architektura MACH dosłownie pozwala na podłączanie lub odłączanie każdego z nich w zależności od potrzeb.
Termin Cloud-native odnosi się do architektury dostępnej w chmurze, która w pełni wykorzystuje jej potencjał. Nie chodzi tu tylko o samo przechowywanie danych czy hosting, ale o to, jak technologia skaluje się w tym środowisku. Rozwiązania te opierają się na technologiach takich jak Docker, Kubernetes czy Serverless.
Dzięki podejściu cloud-native rozwiązanie zyskuje na szybkości, skalowalności, responsywności i elastyczności.
Oznacza to oddzielenie warstwy front-endowej od back-endowej. Daje to ogromną swobodę projektowania, dzięki możliwości pracy nad każdą z tych części całkowicie niezależnie. Uwaga skupia się tutaj na konkretnym przeznaczeniu wdrażanego narzędzia.
Na przykład system CMS (system zarządzania treścią) nie jest narzędziem, które powinno dbać o to, jak treść jest prezentowana, a jedynie o to, jak jest ona zarządzana. Choć w przypadku platform takich jak WordPress prezentacja jest możliwa, nie jest to głównym celem CMS-a. Jego podstawową rolą jest zarządzanie treścią.
Podejście Headless zakłada zatem wykorzystanie API, które umożliwia interoperacyjność między różnymi komponentami. Zapewnia to doskonałe dopasowanie do bieżących potrzeb.
Jeden punkt wejścia dla wszystkich narzędzi biznesowych
Oprócz systemu CMS, często niezbędne są rozwiązania typu CRM, ERP, PIM czy SSO. Każda z tych aplikacji odpowiada na bardzo konkretne potrzeby. Szczególnie istotnym elementem jest fakt, że platformy te coraz częściej oferują gotowe interfejsy API.
Twoja firma ma swój unikalny cel, dostarcza wartość dodaną i wchodzi w interakcje z klientami, które przynoszą realne wyniki. Z technicznego punktu widzenia konieczne jest połączenie tego celu z posiadanymi narzędziami. To właśnie zadanie dla rozwiązania o nazwie backend for frontend (BFF). Oprogramowanie to zarządza połączeniami ze wszystkimi narzędziami biznesowymi poprzez API, REST i inne.
System Backend for Frontend zapewnia pojedynczy punkt wejścia dla wszystkich aplikacji. Działając jako platforma cloud-native, udostępnia on API (np. w standardzie GraphQL). Celem jest uniknięcie nadmiernej zależności od konkretnych narzędzi w Twoim systemie IT. Backend for Frontend wystawia wszystkie dostępne dane i pozwala na ich wykorzystanie dokładnie tam, gdzie są w danej chwili potrzebne.
Architektura MACH umożliwia:
Oto praktyczny przykład. System PIM (Product Information Management) zawiera bazę danych albumów CD z następującymi informacjami: artysta, tytuł, format, daty wydania, lista utworów oraz numer SKU. Potrzeba biznesowa polega na połączeniu systemu PIM z systemem CMS, który umożliwia redaktorowi pisanie recenzji wspomnianych płyt CD.
| Redaktor | Backend for frontend | Odbiorca |
|
|
|
W przeciwieństwie do struktur monolitycznych, architektura MACH pozwala na niezależną pracę nad poszczególnymi elementami systemu, oferując tym samym znacznie większą swobodę. Jest to podejście zgodne z filozofią DevOps, które fundamentalnie różni się od tradycyjnego tworzenia stron i aplikacji internetowych. Dzięki tej metodzie nowe funkcje mogą być wdrażane błyskawicznie. To prawdziwie wydajne i odporne na awarie rozwiązanie.
[ Article ]

Stanisław Klimaszewski