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

2022 Projekt praktyczny Badania akademickie

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

PHP
Laravel Framework
JavaScript
HTML & CSS
SQL

DevOps i współpraca

GitLab
TeamCity
Continuous Integration
Continuous Deployment
Version Control Workflows

Dane i integracja

MySQL
ERP System Integration
REST APIs

Infrastruktura i narzędzia

Docker
nginx Web Server
PhpStorm IDE
Linux Server Environment

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ł:

  1. Utworzenie modułowej architektury z oddzielnymi modułami dla ważenia, dyspozycji, kontraktów, księgowości, controllingu i danych głównych
  2. Rozwój interfejsów użytkownika z responsywnym designem dla dostępu mobilnego i desktopowego
  3. Integracja z istniejącym systemem ERP i danymi ważenia poprzez API REST
  4. Wdrożenie uwierzytelniania i kontroli dostępu opartej na rolach
  5. 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