Lavoro per una società di software che tende a distribuire applicazioni in sede per i clienti aziendali. Il software normalmente consiste in software lato server (alcuni microservizi) e 1 o più applicazioni client.
Le applicazioni distribuite sono di solito una versione altamente personalizzata di un'applicazione generale. Quindi abbiamo un repository git separato per ogni installazione.
Ho cercato di migliorare il ciclo di compilazione e distribuzione, tuttavia sto cercando di trovare le migliori pratiche per questo tipo di distribuzione. Tutti gli articoli che ho letto parlano di implementazione continua, ma tutti gli strumenti correlati sembrano essere adattati alla distribuzione sul cloud o sui nostri server.
Al momento utilizziamo team city come nostro server di build. Ad un certo punto raggiungiamo un punto in cui il software verrà rilasciato, quindi forziamo una build sul ramo master e lo etichettiamo di conseguenza.
I file binari vengono quindi copiati su un server di sviluppo o di produzione di proprietà del cliente. E la configurazione è fatta manualmente da noi. Manualmente significa principalmente l'esecuzione di script per l'installazione di file di configurazione, l'installazione di servizi e l'installazione di database.
Il problema che stiamo affrontando nel processo di compilazione e distribuzione è molto manuale. Ciò significa che alcune volte ci sono errori (dimenticato di eseguire script, errori di battitura, copiare alcuni file)
C'è qualcosa che possiamo fare per migliorarlo? Tenendo presente che normalmente abbiamo solo accesso ai server dei clienti attraverso una sorta di connessione Van e non saremo in grado di implementare sul loro sito senza che le richieste di modifica siano firmate, ecc.