Co zrobić, kiedy aplikacja o architekturze monolitycznej nie nadąża za potrzebami biznesu? Niech odpowiedzią będzie przypadek naszego klienta, który z zachowaniem ciągłości prac rozwojowych oraz z naszą pomocą, zmodernizował swój system i przeniósł go w świat skalowalnych mikroserwisów.
Biznes naszego klienta rósł bardzo dynamicznie, więc system musiał radzić sobie z przetwarzaniem większej ilości danych niż te, które pierwotnie zakładano. Dane kumulowały się, a proces ich obrabiania trwał dłużej. Trzeba było tak przekształcić istniejącą aplikację, żeby była gotowa na rozwój biznesu klienta, bezawaryjna i skalowalna. Do tego potrzebni byli wykwalifikowani inżynierowie, którzy technicznie poradzą sobie z procesem przenoszenia systemu i będą gotowi rozwiązać napotkane problemy.
Naszą rolą była modernizacja technologiczna i architektoniczna monolitycznej aplikacji. Cały proces rozpoczęliśmy od wnikliwej analizy biznesowej, która stanowiła punkt wyjścia dla naszych prac. Musieliśmy zmodernizować proces, umożliwiając proste skalowanie przy jednoczesnym zapewnieniu ciągłości i niezawodności działania. System klienta przeszedł tranzycję do skalowalnej, mikroserwisowej aplikacji umieszczonej na platformie Kubernetes, z zachowaniem ciągłości prac rozwojowych, które równolegle z nami prowadziły inne zespoły.
Przeprojektowany został również jeden z głównych procesów, odpowiedzialny za zbieranie danych rozproszonego systemu – w tym celu wprowadziliśmy model komunikacji asynchronicznej oparty na narzędziu Apache Kafka. Dodatkowo, żeby przyśpieszyć zbieranie danych, które rzutowało na sumaryczny czas przetwarzania, zastosowano narzędzie klasy In-Memory Data Grid pod postacią Hazelcast’a.
Przy projekcie, w metodologii scrum z elementami SAFe, pracowało kilku inżynierów oraz testerów.
Klient przyszedł do nas z konkretnym problemem, dla którego rozwiązanie trzeba było zaprojektować i wdrożyć. Projekt wymagał dogłębnej analizy dotychczasowych rozwiązań w celu ich adaptacji do nowej architektury systemu. Narzędzia które zastosowaliśmy zostały tak dobrane, aby mogły być wykorzystane w kolejnych etapach projektu, które będą prowadzone już wewnętrznie przez zespół klienta. Codzienna współpraca była doskonała. Klient był otwarty na wszelkie sugestie rozwiązań i usprawnień co zaowocowało sprawnym rozwojem i wdrożeniem projektu.
Senior Software Engineer, Solwit S.A.
Zmodernizowaliśmy system klienta pod kątem technologicznym i architektonicznym. Monolityczna aplikacja rozbita została na bezstanowe mikroserwisy, dzięki którym skalowanie będzie łatwe, a nawet przyjemne. Główny proces przetwarzania danych znacząco przyspieszył i jest gotowy na dalszy rozwój biznesu klienta, a tym samym wzrost ilości przetwarzanych danych. Do developmentu wykorzystaliśmy technologie jak: Java 17 i Spring, Apache Kafka i Hazelcast, dzięki czemu istnieje możliwość wdrażania i rozwoju niezależnych modułów systemu. Przeszkoliliśmy też zespół klienta, żeby w przyszłości, we własnym zakresie, mógł dokonywać zmian i rozbudowywać aplikację.
Powiedz nam czego dokładnie potrzebujesz.
Ustalmy priorytety i kolejność wykonywanych funkcjonalności / funkcji / zmian Twojego oprogramowania.
Chcemy wiedzieć, na kiedy potrzebujesz gotowego rozwiązania.