Budowa nowoczesnej pipeline DevOps i cyfrowego portalu self-service dla średniej wielkości firmy recyklingowej
Akademicki projekt praktyczny w zakresie rozwoju oprogramowania i operacji IT
Wprowadzenie
Ten projekt praktyczny został przeprowadzony w certyfikowanej firmie zarządzającej odpadami, która specjalizuje się w recyklingu drewna. Głównym celem było zaprojektowanie i wdrożenie nowoczesnego cyklu rozwoju i operacji IT oraz cyfrowego portalu klienta zintegrowanego z procesami firmy.
Praca skupiła się na dwóch kluczowych aspektach. Po pierwsze, konfiguracja środowiska DevOps, które wspiera ciągły rozwój, integrację, wdrażanie i działanie portalu. Po drugie, koncepcja i wdrożenie portalu klienta opartego na sieci, który poprawia retencję klientów poprzez zapewnienie przejrzystego dostępu do danych ważenia, kontraktów, faktur i informacji controllingu oraz poprzez optymalizację wewnętrznych procesów ważenia i utylizacji.
Projekt rozwiązał kilka wyzwań w codziennych operacjach firmy, w tym nieefektywną komunikację z klientami, ograniczoną dostępność dokumentów i manualne procesy administracyjne, które mogły być usprawnione poprzez digitalizację.
Podstawy i wymagania
Analiza wymagań
Projekt rozpoczął się od kompleksowej analizy wymagań poprzez wywiady z zarządem i pracownikami. Zidentyfikowane kluczowe problemy obejmowały:
- Nieefektywne procesy komunikacji z klientami wymagające częstych rozmów telefonicznych i e-maili
- Ograniczona dostępność danych ważenia i dokumentów dla klientów
- Manualna praca administracyjna, która mogłaby być zautomatyzowana
- Brak przejrzystości w statusie projektu i śledzeniu postępów
- Brak ustandaryzowanych procesów rozwoju i wdrażania
Wymagania techniczne
Na podstawie analizy wywiedziono następujące wymagania techniczne:
- Wdrożenie pipeline ciągłej integracji i wdrażania
- Rozwój modułowej architektury portalu klienta
- Integracja z istniejącym systemem ERP i danymi ważenia
- Bezpieczne uwierzytelnianie i kontrola dostępu oparta na rolach
- Responsywny design dla dostępu mobilnego i desktopowego
Koncepcja i architektura
Koncepcja DevOps
Koncepcja DevOps została zaprojektowana w celu wsparcia ciągłego rozwoju, integracji, wdrażania i działania. Architektura obejmowała:
- Kontrola wersji z GitLab do zarządzania kodem i współpracy
- Ciągła integracja z automatycznymi buildami i testami przy użyciu TeamCity
- Konteneryzacja z Docker dla spójnych środowisk wdrażania
- Zautomatyzowane pipeline wdrażania dla środowisk staging i produkcyjnych
- Monitorowanie i logowanie dla operacyjnych spostrzeżeń
Architektura portalu
Portal klienta został zaprojektowany jako modułowa aplikacja webowa z następującymi głównymi modułami:
Moduł ważenia
Klienci mogą przeglądać i pobierać karty ważenia powiązane z ich numerem klienta, umożliwiając pełną przejrzystość dostarczonych ilości i jakości.
Moduł dyspozycji
Planowanie transportów kontenerowych z integracją klientów, kontenerów, pracowników i odpowiednich pojazdów w celu wsparcia procesu logistycznego.
Moduł kontraktów i cen
Stała dostępność cen i dokumentów kontraktowych z eksportem jako PDF w celu wsparcia przejrzystej komunikacji i szybkiego dostępu do umów.
Moduł księgowości
Wyszukiwanie i pobieranie faktur w formacie PDF, wyrównanych z danymi ważenia, w celu zmniejszenia manualnych żądań i wsparcia cyfrowych przepływów pracy księgowych.
Controlling i analityka
Ocena dostarczonych ilości, jakości dostawy i cen w celu wsparcia controllingu operacyjnego i strategicznego podejmowania decyzji.
Self-service danych głównych
Opcje dla klientów do utrzymywania wybranych danych głównych i informacji kontaktowych, zmniejszając manualną pracę administracyjną dla firmy.
Stos technologiczny
Programowanie i web
DevOps i współpraca
Dane i integracja
Infrastruktura i narzędzia
Implementation
Konfiguracja środowiska rozwoju
Pierwsza faza obejmowała konfigurację dedykowanego środowiska rozwoju z serwerem web, bazą danych, IDE i niezbędnymi narzędziami do wsparcia ciągłego rozwoju. To obejmowało konfigurację lokalnych serwerów rozwoju, połączeń z bazą danych i narzędzi rozwoju.
Wdrożenie DevOps
Cykl DevOps został wdrożony poprzez integrację GitLab, TeamCity i Docker. To umożliwiło:
- Ciągłą integrację z automatycznymi buildami i testami
- Zautomatyzowane pipeline wdrażania dla staging i produkcji
- Przepływy pracy kontroli wersji ze strategiami branching
- Skonteryzowane środowiska dla spójnych wdrożeń
Rozwój portalu
Portal klienta został wdrożony przy użyciu frameworka Laravel. Proces rozwoju obejmował:
- Utworzenie modułowej architektury z oddzielnymi modułami dla ważenia, dyspozycji, kontraktów, księgowości, controllingu i danych głównych
- Rozwój interfejsów użytkownika z responsywnym designem dla dostępu mobilnego i desktopowego
- Integracja z istniejącym systemem ERP i danymi ważenia poprzez API REST
- Wdrożenie uwierzytelniania i kontroli dostępu opartej na rolach
- Rozwój funkcjonalności eksportu PDF dla dokumentów i faktur
Testowanie i opinie
W całym procesie rozwoju przeprowadzono testy funkcjonalne, utworzono dane testowe i ustanowiono pętle opinii z interesariuszami w celu walidacji użyteczności, wydajności i poprawności procesów biznesowych. To iteracyjne podejście zapewniło, że rozwiązanie spełnia wymagania i oczekiwania.
Wyniki i wnioski
Osiągnięte wyniki
Wdrożenie cyklu DevOps i portalu klienta przyniosło znaczące ulepszenia:
- Poprawiona efektywność rozwoju: Zautomatyzowane pipeline CI/CD zmniejszyły czas wdrażania i zminimalizowały błędy manualne, umożliwiając szybsze cykle iteracji.
- Ulepszone doświadczenie klienta: Klienci uzyskali dostęp 24/7 do swoich danych, zmniejszając zapytania telefoniczne i poprawiając satysfakcję poprzez możliwości self-service.
- Usprawnione procesy wewnętrzne: Cyfrowe przepływy pracy zmniejszyły obciążenie administracyjne i poprawiły dokładność danych poprzez zautomatyzowane procesy.
- Lepsza przejrzystość danych: Dostęp w czasie rzeczywistym do danych ważenia, faktur i kontraktów poprawił komunikację i zaufanie między firmą a jej klientami.
- Skalowalna architektura: Modułowy design umożliwia przyszłą ekspansję i integrację dodatkowych funkcji w miarę ewolucji potrzeb biznesowych.
Wyciągnięte lekcje
Projekt dostarczył cennych spostrzeżeń dotyczących nowoczesnych praktyk rozwoju oprogramowania:
- Znaczenie ustanowienia właściwego cyklu DevOps od początku w celu wsparcia ciągłego rozwoju i wdrażania
- Wartość modułowej architektury w umożliwianiu elastycznych i utrzymywalnych rozwiązań programistycznych
- Znaczenie opinii interesariuszy i iteracyjnego rozwoju w zapewnianiu jakości rozwiązania
- Korzyści konteneryzacji i zautomatyzowanego wdrażania w zmniejszaniu złożoności operacyjnej
Przyszłe rekomendacje
Dla dalszej ekspansji cyklu DevOps i funkcji portalu, sformułowano następujące rekomendacje:
- Wdrożenie zautomatyzowanych systemów monitorowania i alertowania dla proaktywnego wykrywania problemów
- Rozszerzenie portalu o dodatkowe moduły oparte na opiniach klientów i potrzebach biznesowych
- Integracja aplikacji mobilnych dla zwiększonej dostępności
- Ciągłe ulepszanie pipeline CI/CD z dodatkowymi automatycznymi testami i bramami jakości