Budowa nowoczesnej rurociągu DevOps i cyfrowego portalu samoobsługowego dla średniej wielkości firmy recyklingowej
Akademicki projekt praktyczny w rozwoju oprogramowania i operacjach IT
Wprowadzenie
Ten projekt praktyczny został przeprowadzony w certyfikowanej firmie zarządzania odpadami specjalizującej 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 głównych 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, umów, faktur i informacji kontrolnych 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 cyfryzację.
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ła być zautomatyzowana
- Brak przejrzystości w statusie projektu i śledzeniu postępów
- Brak standaryzowanych 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 kompilacjami 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 wglądu operacyjnego
Architektura Portalu
Portal klienta został zaprojektowany jako modułowa aplikacja webowa z następującymi modułami głównymi:
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ł Umów i Cen
Stała dostępność cen i dokumentów umownych 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ęgowości.
Kontrola i Analityka
Ocena dostarczonych ilości, jakości dostawy i cen w celu wsparcia kontroli operacyjnej i strategicznego podejmowania decyzji.
Samodzielny Serwis Danych Głównych
Opcje dla klientów do utrzymywania wybranych danych głównych i informacji kontaktowych, zmniejszając manualną pracę administracyjną dla firmy.
Stack Technologiczny
Programowanie i Web
DevOps i Współpraca
Dane i Integracja
Infrastruktura i Narzędzia
Implementacja
Konfiguracja Środowiska Rozwoju
Pierwsza faza obejmowała konfigurację dedykowanego środowiska rozwoju z serwerem webowym, 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 kompilacjami i testami
- Zautomatyzowane pipeline wdrażania dla staging i produkcji
- Przepływy pracy kontroli wersji ze strategiami rozgałęzień
- Środowiska konteneryzowane 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, umów, księgowości, kontroli 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 ze 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 samodzielnego serwisu.
- 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 umów poprawił komunikację i zaufanie między firmą a jej klientami.
- Skalowalna Architektura: Modułowy design pozwala na 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 z konteneryzacji i zautomatyzowanego wdrażania w zmniejszaniu złożoności operacyjnej
Rekomendacje Przyszłościowe
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 doskonalenie pipeline CI/CD z dodatkowymi automatycznymi testami i bramami jakości