Aktualizacja systemu monitorowania oddechu dziecka: zoptymalizowane koszty rozwoju

Innowise znacząco zmodernizował platformę monitorowania oddechu niemowląt i przygotował system do rozszerzenia zestawu funkcji i skalowania.

Klient

Region
UE
Klient od
2022

The customer is a global manufacturer of a wide range of consumer electronics, with a specialized division dedicated to baby healthcare devices. This division focuses on creating innovative products, such as breathing monitors, video baby monitors, and dreamers, designed to monitor infants’ breathing patterns and improve their sleep. Parents can access essential health monitoring and support through web and mobile applications.

Szczegółowe informacje o kliencie nie mogą być ujawnione zgodnie z postanowieniami NDA.

Wyzwanie

Przezwyciężenie niestabilności aplikacji na wczesnym etapie i słabej struktury kodu

Klient posiadał aplikacje mobilne i internetowe dla swojego systemu monitorowania oddechu dziecka, ale były one na wczesnym etapie rozwoju i zawierały liczne błędy. Słabo zorganizowana baza kodu utrudniała zarówno poprawki błędów, jak i rozwój nowych funkcji. Opóźnienia i niestabilność systemu doprowadziły do zwiększenia kosztów wsparcia i rozwoju, negatywnie wpływając na wyniki finansowe. Dodatkowo, problemy te zmniejszały konkurencyjność firmy i jej udział w rynku.

Firma Innowise została zaangażowana do ustabilizowania środowiska, usunięcia istniejących błędów i przygotowania systemu do przyszłych dodatków i skalowania.

Rozwiązanie

Wdrażanie kompleksowego usuwania błędów, refaktoryzacji systemu i zautomatyzowanego wdrażania w celu poprawy wydajności.

Innowise sprostał wyzwaniom, naprawiając błędy zarówno na backendzie, jak i frontendzie. Zrestrukturyzowaliśmy bazę kodu, stworzyliśmy nowe mikrousługi w celu poprawy modułowości i dokonaliśmy migracji bazy danych z PostgreSQL do AWS DynamoDB w celu poprawy skalowalności i obniżenia kosztów. Nasz zespół wdrożył również potoki CI/CD, aby zautomatyzować wdrażanie i zapewnić jakość kodu. Ponadto byliśmy odpowiedzialni za automatyzację wdrażania i wersjonowania infrastruktury przy użyciu Terraform.

Usuwanie błędów i testowanie

W pierwszej kolejności zajęliśmy się krytycznymi błędami wpływającymi na wydajność i niezawodność systemu. Jednocześnie nasz zespół opracował kompleksowe testy jednostkowe i integracyjne, aby zweryfikować funkcjonalność zarówno nowych, jak i istniejących funkcji. Te rygorystyczne testy pozwoliły nam zidentyfikować i rozwiązać potencjalne problemy na wczesnym etapie, zapewniając wysoką jakość produktu końcowego.

Refaktoryzacja kodu

Istniejąca baza kodu była nieuporządkowana i niezgodna ze standardami PEP-8 i zasadami czystej architektury, co utrudniało pracę. Nasz zespół systematycznie refaktoryzował kod, dostosowując go do wytycznych PEP-8 i poprawiając jego ogólną strukturę. Proces ten obejmował czyszczenie kodu, optymalizację funkcji, zapewnienie spójności i przestrzeganie zasad SOLID.

Dokumentacja

Nasz zespół stworzył szczegółową dokumentację techniczną dla istniejącej bazy kodu, nowych funkcji, mikrousług i procesów wdrażania. Ta kompleksowa dokumentacja umożliwiła obecnym i przyszłym programistom lepsze zrozumienie systemu i przyczyniła się do płynniejszego wdrażania i transferu wiedzy.

Rozwój mikrousług

Oprócz ustabilizowania istniejącego systemu monitorowania oddechu dziecka, opracowaliśmy nowe mikrousługi wykorzystujące platformę konteneryzacji, taką jak Docker, i zorganizowaliśmy je za pomocą Kubernetes. Zwiększyło to modułowość i skalowalność, umożliwiając niezależne wdrażanie i skalowanie poszczególnych usług.

Każda mikrousługa, taka jak moduł analizy wzorców oddechowych lub usługa powiadamiania o alarmach, została zaprojektowana do obsługi określonych zadań, komunikując się ze sobą za pośrednictwem lekkich protokołów RESTful API. Taka architektura poprawiła ogólną wydajność systemu, jego wydajność i odporność na błędy, ponieważ poszczególne usługi mogły być aktualizowane lub wymieniane bez wpływu na cały system.

Migracja baz danych

Nasi eksperci zarządzali migracją z PostgreSQL do AWS DynamoDB, aby wykorzystać jego skalowalność, wydajność, opłacalność i elastyczne możliwości modelowania danych. Przejście to obejmowało skrupulatny proces przeprojektowania schematu danych w celu dostosowania go do nierelacyjnej struktury DynamoDB, staranne mapowanie i transformację danych oraz dokładną walidację w celu zapewnienia integralności danych.

Dodatkowo zoptymalizowaliśmy wzorce zapytań i strategie indeksowania, aby zmaksymalizować wydajność DynamoDB dla określonych wzorców dostępu systemu monitorowania oddechu dziecka.

Wdrożenie CI/CD

Wdrożyliśmy potoki ciągłej integracji i ciągłego wdrażania (CI/CD) przy użyciu Jenkins i GitLab CI w celu zautomatyzowania procesów kompilacji, testowania i wdrażania. Usprawniło to procesy deweloperskie i zapewniło szybką informację zwrotną. Dodatkowo wykorzystaliśmy Terraform do definiowania i zarządzania naszą infrastrukturą w chmurze jako kodem. Umożliwiło nam to wydajne udostępnianie i skalowanie zasobów, utrzymanie spójności infrastruktury w różnych środowiskach oraz śledzenie zmian za pomocą kontroli wersji.

Zintegrowaliśmy również zautomatyzowane struktury testowe z naszymi potokami CI/CD, aby zapewnić jakość kodu i stabilność aplikacji przed wdrożeniem. To płynne połączenie praktyk CI/CD i IaC znacznie zmniejszyło liczbę ręcznych interwencji, zminimalizowało liczbę błędów i przyspieszyło cykle wydawnicze, co zaowocowało bardziej solidnym i niezawodnym systemem monitorowania oddechu dziecka.

Technologie

JavaScript (React, TypeScript), Redux

AWS, Lambda, SQS, SNS, SES, IoT Core, Timestream, Cognito, DynamoDB

VCS

Git, GitLab

Narzędzia

Material-UI, FastAPI, Tortoise ORM, boto3

Proces

Rozpoczęliśmy od fazy odkrywania, przeprowadzając wstępne spotkania z interesariuszami firmy, aby dokładnie zrozumieć ich bolączki i wymagania. Nasi analitycy biznesowi stworzyli następnie kompleksowy dokument wyszczególniający kluczowe usprawnienia i zapewniający techniczną wykonalność proponowanego rozwiązania.

Mając jasno udokumentowane wymagania klienta, zespół programistów Innowise rozpoczął pracę nad projektem. proces inżynierii oprogramowania. Korzystając z metodologii Scrum, zorganizowaliśmy naszą pracę w dwutygodniowe sprinty, aby utrzymać regularny postęp i zdolność adaptacji. Odbywaliśmy spotkania co trzy tygodnie, aby zająć się krytycznymi kwestiami i zapewnić skuteczną koordynację. Dodatkowo, kierownik projektu przeprowadzał cotygodniowe rozmowy telefoniczne, aby informować klienta o postępach w rozwoju i zbierać informacje zwrotne, co pozwoliło nam stale udoskonalać nasze podejście.

Zespół

1

Kierownik projektu

1

Analityk biznesowy

2

Programiści Full-Stack

1

Manual QA Engineer

1

QA Automation Engineer

Expected results

The implementation of the project leds to a significant improvement in system stability and reliability, resulting in increased user satisfaction and enhanced brand trust. The optimized architecture and rewritten codebase simplifies further development and support, reducing development costs.

Migrating to a higher-performing database and introducing microservices provides flexibility and scalability, enabling a faster response to user growth. Automating testing and deployment also cuts down the time it takes to release updates, speeding up the launch of new features.

Czas trwania projektu
  • Czerwiec 2022 r. - wrzesień 2023 r.

25%

redukcja kosztów rozwoju

15%

increase in solution performance
*The expected results outlined in this section are examples of what can be achieved with such solutions. These results do not pertain to a specific project and do not reflect the actual outcomes of the described case.

    Skontaktuj się z nami

    Umów się na rozmowę lub wypełnij poniższy formularz, a my odezwiemy się do Ciebie po przetworzeniu Twojego zgłoszenia

    Wyślij nam wiadomość głosową
    Załącz dokumenty
    Prześlij plik

    Można załączyć 1 plik o rozmiarze do 2 MB. Prawidłowe formaty plików: pdf, jpg, jpeg, png.

    Klikając Wyślij, wyrażasz zgodę na przetwarzanie Twoich danych osobowych przez Innowise zgodnie z nasz Polityką Prywatności w celu przekazania Ci odpowiednich informacji. Podając numer telefonu, zgadzasz się na kontakt za pośrednictwem połączeń głosowych, SMS-ów lub komunikatorów. Mogą obowiązywać opłaty za połączenia, wiadomości i transmisję danych.

    Możesz także wysłać swoje zapytanie
    na adres contact@innowise.com
    Co dalej?
    1

    Po otrzymaniu i przetworzeniu zgłoszenia skontaktujemy się z Tobą, aby szczegółowo opisać projekt i podpisać umowę NDA w celu zapewnienia poufności.

    2

    Po zapoznaniu się z Twoimi potrzebami i oczekiwaniami, nasz zespół opracuje projekt wraz z zakresem prac, wielkością zespołu, czasem i szacunkowymi kosztami.

    3

    Zorganizujemy spotkanie w celu omówienia oferty i ustalenia szczegółów.

    4

    Na koniec podpiszemy umowę, błyskawicznie rozpoczynając pracę nad projektem.

    strzałka