Costruzione di una pipeline DevOps moderna e un portale self-service digitale per un'azienda di riciclaggio di medie dimensioni

Progetto pratico accademico in sviluppo software e operazioni IT

2022 Progetto pratico Ricerca accademica

Introduzione

Questo progetto pratico è stato svolto presso un'azienda certificata di gestione dei rifiuti specializzata nel riciclaggio del legno. L'obiettivo principale era progettare e implementare un ciclo moderno di sviluppo e operazioni IT nonché un portale clienti digitale integrato nei processi aziendali.

Il lavoro si è concentrato su due aspetti fondamentali. Primo, la configurazione di un ambiente DevOps che supporta lo sviluppo continuo, l'integrazione, la distribuzione e l'operazione del portale. Secondo, la concezione e implementazione di un portale clienti basato su web che migliora la fidelizzazione dei clienti fornendo accesso trasparente ai dati di pesatura, contratti, fatture e informazioni di controllo, e ottimizzando i processi interni di pesatura e smaltimento.

Il progetto ha affrontato diverse sfide nelle operazioni quotidiane dell'azienda, inclusa comunicazione clienti inefficiente, disponibilità limitata di documenti e processi amministrativi manuali che potrebbero essere semplificati attraverso la digitalizzazione.

Fondamenti e requisiti

Analisi dei requisiti

Il progetto è iniziato con un'analisi completa dei requisiti attraverso interviste con management e dipendenti. I problemi chiave identificati includevano:

  • Processi di comunicazione clienti inefficienti che richiedono frequenti chiamate telefoniche ed email
  • Disponibilità limitata di dati di pesatura e documenti per i clienti
  • Lavoro amministrativo manuale che potrebbe essere automatizzato
  • Mancanza di trasparenza nello stato del progetto e nel tracciamento dei progressi
  • Nessun processo standardizzato di sviluppo e distribuzione

Requisiti tecnici

Sulla base dell'analisi, sono stati derivati i seguenti requisiti tecnici:

  • Implementazione di una pipeline di integrazione e distribuzione continua
  • Sviluppo di un'architettura di portale clienti modulare
  • Integrazione con sistema ERP esistente e dati di pesatura
  • Autenticazione sicura e controllo di accesso basato su ruoli
  • Design responsive per accesso mobile e desktop

Concetto e architettura

Concetto DevOps

Il concetto DevOps è stato progettato per supportare sviluppo continuo, integrazione, distribuzione e operazione. L'architettura includeva:

  • Controllo versione con GitLab per gestione del codice e collaborazione
  • Integrazione continua con build e test automatizzati utilizzando TeamCity
  • Containerizzazione con Docker per ambienti di distribuzione coerenti
  • Pipeline di distribuzione automatizzate per ambienti di staging e produzione
  • Monitoraggio e registrazione per intuizioni operative

Architettura del portale

Il portale clienti è stato progettato come un'applicazione web modulare con i seguenti moduli principali:

Modulo di pesatura

I clienti possono visualizzare e scaricare i buoni di pesatura collegati al loro numero cliente, consentendo piena trasparenza delle quantità e qualità consegnate.

Modulo di disposizione

Pianificazione di trasporti container con integrazione di clienti, container, dipendenti e veicoli adatti per supportare il processo logistico.

Modulo contratti e prezzi

Disponibilità permanente di prezzi e documenti contrattuali con esportazione in PDF per supportare comunicazione trasparente e accesso rapido agli accordi.

Modulo contabilità

Ricerca e download di fatture in formato PDF, allineate con i dati di pesatura, per ridurre richieste manuali e supportare flussi di lavoro contabili digitali.

Controllo e analisi

Valutazione di quantità consegnate, qualità della consegna e prezzi per supportare controllo operativo e processo decisionale strategico.

Self-service dati master

Opzioni per i clienti di mantenere dati master selezionati e informazioni di contatto, riducendo il lavoro amministrativo manuale per l'azienda.

Stack tecnologico

Programmazione e web

PHP
Laravel Framework
JavaScript
HTML & CSS
SQL

DevOps e collaborazione

GitLab
TeamCity
Continuous Integration
Continuous Deployment
Version Control Workflows

Dati e integrazione

MySQL
ERP System Integration
REST APIs

Infrastruttura e strumenti

Docker
nginx Web Server
PhpStorm IDE
Linux Server Environment

Implementation

Configurazione ambiente di sviluppo

La prima fase ha coinvolto la configurazione di un ambiente di sviluppo dedicato con server web, database, IDE e strumenti necessari per supportare lo sviluppo continuo. Questo includeva la configurazione di server di sviluppo locali, connessioni database e strumenti di sviluppo.

Implementazione DevOps

Il ciclo DevOps è stato implementato attraverso l'integrazione di GitLab, TeamCity e Docker. Questo ha abilitato:

  • Integrazione continua con build e test automatizzati
  • Pipeline di distribuzione automatizzate per staging e produzione
  • Flussi di lavoro di controllo versione con strategie di branching
  • Ambienti containerizzati per distribuzioni coerenti

Sviluppo del portale

Il portale clienti è stato implementato utilizzando il framework Laravel. Il processo di sviluppo includeva:

  1. Creazione dell'architettura modulare con moduli separati per pesatura, disposizione, contratti, contabilità, controllo e dati master
  2. Sviluppo di interfacce utente con design responsive per accesso mobile e desktop
  3. Integrazione con sistema ERP esistente e dati di pesatura attraverso API REST
  4. Implementazione di autenticazione e controllo di accesso basato su ruoli
  5. Sviluppo di funzionalità di esportazione PDF per documenti e fatture

Test e feedback

Durante tutto il processo di sviluppo, sono stati condotti test funzionali, sono stati creati dati di test e sono stati stabiliti cicli di feedback con gli stakeholder per validare usabilità, prestazioni e correttezza dei processi aziendali. Questo approccio iterativo ha assicurato che la soluzione soddisfacesse i requisiti e le aspettative.

Risultati e conclusione

Risultati ottenuti

L'implementazione del ciclo DevOps e del portale clienti ha portato a miglioramenti significativi:

  • Efficienza di sviluppo migliorata: Le pipeline CI/CD automatizzate hanno ridotto il tempo di distribuzione e minimizzato gli errori manuali, consentendo cicli di iterazione più rapidi.
  • Esperienza cliente migliorata: I clienti hanno ottenuto accesso 24/7 ai loro dati, riducendo richieste telefoniche e migliorando la soddisfazione attraverso capacità di self-service.
  • Processi interni semplificati: I flussi di lavoro digitali hanno ridotto il sovraccarico amministrativo e migliorato l'accuratezza dei dati attraverso processi automatizzati.
  • Migliore trasparenza dei dati: L'accesso in tempo reale ai dati di pesatura, fatture e contratti ha migliorato la comunicazione e la fiducia tra l'azienda e i suoi clienti.
  • Architettura scalabile: Il design modulare consente l'espansione futura e l'integrazione di funzionalità aggiuntive man mano che le esigenze aziendali evolvono.

Lezioni apprese

Il progetto ha fornito intuizioni preziose sulle pratiche moderne di sviluppo software:

  • L'importanza di stabilire un ciclo DevOps appropriato dall'inizio per supportare sviluppo e distribuzione continui
  • Il valore dell'architettura modulare nell'abilitare soluzioni software flessibili e manutenibili
  • L'importanza del feedback degli stakeholder e dello sviluppo iterativo nell'assicurare la qualità della soluzione
  • I benefici della containerizzazione e della distribuzione automatizzata nella riduzione della complessità operativa

Raccomandazioni future

Per l'ulteriore espansione del ciclo DevOps e delle funzioni del portale, sono state fatte le seguenti raccomandazioni:

  • Implementazione di sistemi di monitoraggio e allerta automatizzati per rilevamento proattivo dei problemi
  • Espansione del portale con moduli aggiuntivi basati su feedback clienti e esigenze aziendali
  • Integrazione di applicazioni mobili per accessibilità migliorata
  • Miglioramento continuo della pipeline CI/CD con test automatizzati aggiuntivi e gate di qualità