Nasza oferta rozwoju produktów cyfrowych
Twórz i rozwijaj Swoje produkty cyfrowe w kategoriach web/mobile/data, korzystając z najnowocześniejszych wzorców i rozwiązań, architektur “composable”, w modelu ciągłej integracji i dostarczania (CI/CD). Jakie techniczne i praktyczne zagadnienia zapewniają zdolność do tworzenia produktów oraz ich uruchamiania w tempie odpowiadającym wymogom rynku?
Gilles Guirand
Technical Director
Czy to właściwy moment, aby opracowywać nowe systemy lub produkty? Jak zminimalizować wysiłek konieczny dla utrzymywania wersji web i mobile? Jak wdrażać sprawnie i szybko, jednocześnie unikając regresji? Jak zredukować izolację front-end i back-end na rzecz interdyscyplinarnych zespołów zorientowanych na funkcje czy moduły? Jak połączyć nowy produkt z rozwiązaniami legacy?
Produkt cyfrowy może zaistnieć w różnorodnych okolicznościach: jako nowa iteracja strony internetowej lub aplikacji mobilnej po wcześniejszych działaniach PoC (ang. Proof of Concept) czy PoV (ang. Proof of Value), jako błyskawiczne wdrożenie podbijające rynek lub jako z góry zaplanowany projekt (ang. Digital roadmap) powiązany z rozwiązaniami cyfrowej fabryki (ang. Digital Factory).
Pomimo różnorodności kontekstów powstawania produktów cyfrowych, na przestrzeni lat wyłonił się powtarzalny i dość uniwersalny wzorzec dla ich architektury. Najlepszym podejściem jest dostosowanie go bez nadmiernego dogmatyzmu, uwzględniając indywidualną historię produktu.
Interfejs webowy i/lub mobilny
Po jasnym zdefiniowaniu strategii front-endowej, uwzględniającym wybór pomiędzy rozdzieleniem natywnych interfejsów web i mobile, a pojedynczym uniwersalnym interfejsem PWA, należy określić strategię rozwoju front-endu:
- Wykorzystanie dojrzałego systemu graficznego typu Material Design dla interfejsów graficznych, posiadających gotowe implementacje w ultra-produktywnych frameworkach komponentowych, takich jak Vuetify (szczególnie do tworzenia graficznych interfejsów do zarządzania).
- Zaprojektowanie spójnego i kompletnego systemu design w odniesieniu do warstwy graficznej front-endu, co czasami jest uważane za znaczny początkowy wysiłek, ale zwraca się w długim okresie, zapewniając łatwość utrzymania i modyfikacji, spójność wizualną i funkcjonalną, produktywność, czy narzędzia dla zespołu deweloperskiego.
- Rozważnie użycia frameworka CSS podnoszącego produktywność, takiego jak Tailwind CSS.
- Projektowanie komponentowe Vue lub React oraz gromadzenie ich dokumentacji oraz renderowania za pomocą rozwiązania Storybook.
- Opracowanie najlepszych strategii renderowania kodu HTML, wybierając pomiędzy modelami Client Side Rendering (CSR), Server Side Rendering (SSR), Server Side Generating (SSG) i ich możliwymi hybrydami.
Back-for-Front i usługi aplikacji zewnętrznych
Widoczna dla użytkowników część aplikacji internetowej czy mobilnej często ukrywa rozległy zbiór back-endów, endpointów API (ang. Application Programming Intefrace) i usług (Web Services) udostępnianych przez istniejące systemy legacy, często o bardzo zróżnicowanej nowoczesności i wydajności. W naszych projektach regularnie stawiamy na wzorzec BFF (ang. Backend for Frontend) wobec aplikacji backend’owych, którego rolą jest:
- Udostępnienie ujednoliconego API dla wywołań front-endowych, najczęściej w oparciu o graphQL (Apollo), dedykowanego i dostosowanego do doświadczeń użytkowników końcowych i ograniczających liczbę zapytań między front-endem a faktycznym back-endem.
- Zapobieganie publicznemu udostępnianiu lub ujawnianiu API biznesowych ze względów bezpieczeństwa, niezawodności i wydajności, a także celem zapewnienia możliwości tzw. decouplingu (możliwość podłączania i odłączania nowych API zgodnie z planem systemu informacyjnego).
- Pobieranie danych z biznesowych systemów backendowych (REST API, SOAP, pliki itp.), repozytoriów treści (headless CMS, takich jak: Strapi, Contentful, Ibexa DXP itp.; systemów innych klas typu PIM czy ERP), w celu ich łączenia, dostosowania i przekształcenia w API serwowane na użytek warstwy front-end.
- Przechowywanie niezbędnych danych w sposób trwały (dane, które nie istnieją na backendzie biznesowym) lub tymczasowo (nietrwała pamięć cache, indeks wyszukiwania itp.), w zależności od potrzeb funkcjonalnych.
- Ujednolicenie uwierzytelniania między różnymi backendami.
- Korzystanie z systemów buforowania wejścia (odpowiedzi API) i wyjścia (pamięć podręczna HTTP) w celu ochrony API biznesowych i samej warstwy BFF przed zbyt dużą liczbą wywołań.
Wyspecjalizowane klasy rozwiązań i systemów
Architektury komponowalne (ang. Composable), w przeciwieństwie do monolitycznych architektur „wszystko w jednym”, zarówno umożliwiają, jak i wymagają wyboru najlepiej dopasowanych narzędzi SaaS lub Open Source dla każdej z głównych funkcji w ekosystemie, w tym:
- rozwiązania CMS (ang. Content Management System) do zarządzanie treścią,
- rozwiązania DXP (ang. Digital Experience Platform) do budowania doświadczeń użytkowników,
- rozwiązania IAM (ang. Identity & Access Management) do zarządzania tożsamością,
- rozwiązania DAM (ang. Digital Asset Management) do zarządzania zasobami cyfrowymi, e-commerce do budowania sklepów i rozwiązań transakcyjnych,
- rozwiązania CRM (ang. Customer Relation Management) do zarządzania relacjami z klientami,
- rozwiązania PIM (ang. Product Information Management) do zarządzania informacją o produktach,
- innych rozwiązań i narzędzi do zaspokojenia potrzeb marketingowych i innych.
Możemy doradzić Ci najodpowiedniejsze rozwiązania dla Twojego biznesu i wyzwań związanych ze skalowalnością, bezpieczeństwem, zarządzaniem i zgodnością z istniejącymi systemami:
- Headless CMS: Strapi, Contentful lub API dla istniejących CMS (Ibexa DXP, Drupal itp.),
- Silniki wyszukiwania: Elastic Search, Algolia lub inne zarządzane usługi w chmurze,
- E-commerce jako rozwiązanie headless SaaS (Bigcommerce) lub jako rozwiązanie na miarę, gdy wymagania są zbyt specyficzne,
- Frameworki backendowe i ich tryby wykonania: Node.js, graphQL, Nest.js w trybie serverless lub kontenerowym,
- Bazy danych: PostgreSQL, MySQL/MariaDB, MongoDB itp.
- Menedżery tożsamości i SSO: Keycloak, Okta, zarządzane tożsamością (IAM) itp.
DevOps i automatyzacja QA
W dzisiejszych czasach firmy i organizacje bardzo często korzystają z jednego lub wielu rozwiązań chmurowych, narzędzi SaaS, narzędzi on-premise, własnych repozytoriów Git i pipeline’ów, czy własnych zestawów szablonów Terraform. Opracowując nowe produkty, konieczne jest dostosowanie się i integracja z zastanym zbiorem rozwiązań i praktyk. W Kaliop zawsze współdziałamy z Twoją cyfrową fabryką i działami IT/IS, aby stworzyć najlepszą możliwą fuzję między Twoimi praktykami, ekosystemem rozwiązań oraz nowymi rozwiązaniami i zmianami wymuszonymi naszym doświadczeniem w zakresie DevOps i automatyzacji:
- Gitflow i pipeline (CI/CD) zgodnie z naszymi praktykami lub we współpracy z Tobą,
- Zarządzanie katalogiem usług w sposób jak najbardziej zbliżony do filozofii AWS, GCP, Azure, Scaleway i Kubernetes,
- Optymalizacja wydajności i łańcucha cache, od CDN (ang. Content Delivery Network) do wewnętrznej pamięci podręcznej aplikacji,
- Dzielenie się praktykami bezpieczeństwa dotyczącymi dostępu VPN, prywatnych kluczy (KMS), szyfrowania, ochrony przed DDoS i WAF,
- Współpraca z działem IT nad skryptami Terraform.
Każdy przypadek takiej integracji jest unikalny i jej strategia musi być dostosowana do rzeczywistych potrzeb i umiejętności zespołów, dlatego warto skorzystać z naszej usługi doradztwa, aby pomóc Ci podjąć właściwe decyzje organizacyjne i architektoniczne.
Aby przyspieszyć czas wprowadzenia produktu na rynek, można zorganizować Digital Factory. To, wraz z kulturą produktową oferującą doświadczenie skoncentrowane na potrzebach użytkowników, jest kluczem do sukcesu projektu cyfrowego, tak samo jak wiedza technologiczna.