Verifichiamo noi stessi: come viene implementato 1C e come viene amministrato: flusso di documenti all'interno dell'azienda 1C

In 1C utilizziamo ampiamente i nostri sviluppi per organizzare il lavoro dell’azienda. In particolare, "1C: Flusso documenti 8". Oltre alla gestione dei documenti (come suggerisce il nome), è anche moderno ECM-sistema (Enterprise Content Management - gestione dei contenuti aziendali) con un'ampia gamma di funzionalità: posta, calendari di lavoro dei dipendenti, organizzazione dell'accesso condiviso alle risorse (ad esempio prenotazione di sale riunioni), monitoraggio del tempo, forum aziendale e molto altro.

Più di mille dipendenti utilizzano la gestione dei documenti in 1C. Il database è già diventato impressionante (11 miliardi di record), il che significa che richiede una cura più attenta e attrezzature più potenti.

Come funziona il nostro sistema, quali difficoltà incontriamo durante la manutenzione del database e come le risolviamo (usiamo MS SQL Server come DBMS) - te lo diremo nell'articolo.

Per coloro che leggono per la prima volta i prodotti 1C.
1C:Document Flow è una soluzione applicativa (configurazione) implementata sulla base di un framework per lo sviluppo di applicazioni aziendali: la piattaforma 1C:Enterprise.

Verifichiamo noi stessi: come viene implementato 1C e come viene amministrato: flusso di documenti all'interno dell'azienda 1C


"1C: Document Flow 8" (abbreviato in DO) consente di automatizzare il lavoro con i documenti in un'azienda. Uno degli strumenti principali per l’interazione dei dipendenti è la posta elettronica. Oltre alla posta, DO risolve anche altri problemi:

  • Monitoraggio del tempo
  • Monitoraggio delle assenze dei dipendenti
  • Applicazioni per corrieri/trasporti
  • Calendari di lavoro dei dipendenti
  • Registrazione della corrispondenza
  • Contatti dei dipendenti (rubrica)
  • Foro aziendale
  • Prenotazione della camera
  • Pianificazione di eventi
  • CRM
  • Lavoro collettivo con i file (con salvataggio delle versioni dei file)
  • др и.

Entriamo nella gestione dei documenti client sottile (applicazione eseguibile nativa) da Windows, Linux, macOS, cliente web (dai browser) e cliente mobile - dipende dalla situazione.

E grazie al nostro altro prodotto collegato a Document Flow: Sistema di interazione – riceviamo direttamente in Document Flow la funzionalità del messenger: chat, chiamate audio e video (comprese le chiamate di gruppo, che ora sono diventate particolarmente importanti, anche da un client mobile), scambio rapido di file oltre alla possibilità di scrivere bot di chat che semplificano lavorare con il sistema. Un altro vantaggio dell'utilizzo del sistema di interazione (rispetto ad altri messenger) è la capacità di condurre discussioni contestuali legate a specifici oggetti del flusso di documenti: documenti, eventi, ecc. Cioè, il sistema di interazione è profondamente integrato con l'applicazione di destinazione e non agisce semplicemente come un "pulsante separato".

Il numero di lettere nel nostro DO ha già superato i 100 milioni e in generale ci sono più di 11 miliardi di record nel DBMS. In totale, il sistema utilizza quasi 30 TB di spazio di archiviazione: il volume del database è di 7,5 TB, i file per il lavoro collettivo vengono archiviati separatamente e occupano altri 21 TB.

Se parliamo di numeri più specifici, ecco il numero di lettere e file al momento:

  • E-mail in uscita – 14,7 milioni.
  • Lettere in arrivo – 85,4 milioni.
  • Versioni dei file: 70,8 milioni.
  • Documenti interni – 30,6 mila.

DO ha più che semplici posta e file. Di seguito si riportano i dati relativi alle altre voci contabili:

  • Prenotazione sale riunioni – 52
  • Rapporti settimanali – 153
  • Rapporti giornalieri – 628
  • Visti di approvazione – 11
  • Documenti in arrivo – 79
  • Documenti in uscita – 28
  • Voci sugli eventi nei calendari di lavoro degli utenti – 168
  • Domande per corrieri – 21
  • Controparti – 81
  • Documenti di lavoro con controparti – 45
  • Referenti delle controparti – 41
  • Eventi – 10
  • Progetti – 6
  • Mansioni dei dipendenti – 245
  • Post del forum – 26
  • Messaggi chat – 891 095
  • Processi aziendali - 109 L'interazione tra i dipendenti avviene attraverso processi: approvazione, esecuzione, revisione, registrazione, firma, ecc. Misuriamo la durata dei processi, il numero di cicli, il numero di partecipanti, il numero di resi, il numero di richieste di modifica delle scadenze. E queste informazioni sono molto utili da analizzare per capire quali processi si stanno svolgendo nell'azienda e aumentare l'efficienza della collaborazione dei dipendenti.

Su quali apparecchiature elaboriamo tutto questo?

Queste cifre indicano un volume impressionante di compiti, quindi ci siamo trovati di fronte alla necessità di allocare attrezzature sufficientemente produttive per le esigenze delle filiali interne. Attualmente le sue caratteristiche sono le seguenti: 38 core, 240 GB di RAM, 26 TB di dischi. Ecco una tabella dei server:
Verifichiamo noi stessi: come viene implementato 1C e come viene amministrato: flusso di documenti all'interno dell'azienda 1C

In futuro prevediamo di aumentare la capacità delle attrezzature.

Come vanno le cose con il carico del server?

L'attività di rete non è mai stata un problema per noi o per i nostri clienti. Di norma, il punto debole è il processore e i dischi, perché tutti sanno già come affrontare la mancanza di memoria. Ecco gli screenshot dei nostri server da Resource Monitor, che mostrano che non abbiamo alcun carico terribile, è molto modesto.

Ad esempio, nello screenshot seguente vediamo un server SQL in cui il carico della CPU è del 23%. E questo è un ottimo indicatore (per confronto: se il carico si avvicina al 70%, molto probabilmente i dipendenti osserveranno rallentamenti piuttosto significativi nel lavoro).

Verifichiamo noi stessi: come viene implementato 1C e come viene amministrato: flusso di documenti all'interno dell'azienda 1C

Il secondo screenshot mostra il server delle applicazioni su cui viene eseguita la piattaforma 1C:Enterprise: serve solo sessioni utente. Qui il carico del processore è leggermente più alto: 38%, è fluido e calmo. C'è un po' di caricamento del disco, ma è accettabile.

Verifichiamo noi stessi: come viene implementato 1C e come viene amministrato: flusso di documenti all'interno dell'azienda 1C

Il terzo screenshot mostra un altro server 1C:Enterprise (è il secondo, ne abbiamo due nel cluster). Solo quello precedente serve gli utenti e su questo lavorano i robot. Ad esempio, ricevono posta, instradano documenti, scambiano dati, calcolano i diritti, ecc. Tutte queste attività in background eseguono circa 90-100 lavori in background. E questo server è molto carico: 88%. Ma questo non influisce sulle persone e implementa esattamente tutta l'automazione che dovrebbe fare la gestione dei documenti.

Verifichiamo noi stessi: come viene implementato 1C e come viene amministrato: flusso di documenti all'interno dell'azienda 1C

Quali sono le metriche per misurare la performance?

Abbiamo un sottosistema serio integrato nelle nostre filiali per misurare gli indicatori di prestazione e calcolare vari parametri. Ciò è necessario per comprendere sia nel momento attuale che in una prospettiva storica cosa sta succedendo nel sistema, cosa sta peggiorando, cosa sta migliorando. Gli strumenti di monitoraggio - metriche e misurazioni temporali - sono inclusi nella fornitura standard di "1C: Document Flow 8". Le metriche richiedono la personalizzazione durante l'implementazione, ma il meccanismo stesso è standard.

Le metriche sono misurazioni di vari indicatori aziendali in determinati momenti nel tempo (ad esempio, il tempo medio di consegna della posta è di 10 minuti).

Una delle metriche mostra il numero di utenti attivi nel database. In media se ne contano 1000-1400 durante la giornata. Dal grafico si vede che al momento dello screenshot c'erano 2144 utenti attivi nel database.

Verifichiamo noi stessi: come viene implementato 1C e come viene amministrato: flusso di documenti all'interno dell'azienda 1C

Esistono più di 30 azioni di questo tipo, l'elenco è tagliato.Elenco

  • Accesso utenti
  • Disconnessione
  • Caricamento posta
  • Modificare la validità di un oggetto
  • Modifica dei diritti di accesso
  • Cambiare l'oggetto di un processo
  • Modifica del gruppo di lavoro di un oggetto
  • Modifica della composizione del kit
  • Modifica di un file
  • Importazione di file
  • Invio tramite posta
  • Spostamento di file
  • Reindirizzare un'attività
  • Firmare la firma elettronica
  • Cerca per dettagli
  • Ricerca a testo integrale
  • Ricezione di un file
  • Interrompere un processo
  • Просмотр
  • Decrittazione
  • Registrazione del documento
  • scansione
  • Deselezionare l'eliminazione
  • Creare un oggetto
  • Salvataggio su disco
  • Inizio del processo
  • Eliminazione delle voci del registro utente
  • Rimozione di una firma elettronica
  • Impostazione di un segno di cancellazione
  • Crittografia
  • Esporta una cartella

La penultima settimana, la nostra attività media degli utenti è aumentata di una volta e mezza (mostrata in rosso nel grafico): ciò è dovuto al passaggio della maggior parte dei dipendenti al lavoro remoto (a causa di eventi ben noti). Inoltre, il numero di utenti attivi è aumentato di 3 volte (mostrato in blu nello screenshot), poiché i dipendenti hanno iniziato a utilizzare attivamente i telefoni cellulari: ogni client mobile crea una connessione al server. Attualmente, in media, ciascuno dei nostri dipendenti ha 2 connessioni al server.

Verifichiamo noi stessi: come viene implementato 1C e come viene amministrato: flusso di documenti all'interno dell'azienda 1C

Per noi amministratori questo è un segnale che dobbiamo essere più attenti ai problemi di prestazioni e vedere se le cose sono peggiorate. Ma lo esaminiamo in base ad altri parametri. Ad esempio, come cambia il tempo di consegna della posta per il routing interno (mostrato in blu nello screenshot seguente). Vediamo che fino a quest'anno ha oscillato, ma ora è stabile: per noi questo è un indicatore che tutto è in ordine nel sistema.

Verifichiamo noi stessi: come viene implementato 1C e come viene amministrato: flusso di documenti all'interno dell'azienda 1C

Un altro parametro applicato per noi è il tempo medio di attesa per scaricare le lettere dal server di posta (mostrato in rosso nello screenshot). In parole povere, per quanto tempo la lettera girerà su Internet prima di raggiungere il nostro dipendente. Lo screenshot mostra che anche questa volta non è cambiata in alcun modo di recente. Si verificano picchi isolati, ma non sono legati a ritardi, ma al fatto che il tempo sui server di posta viene perso.

Verifichiamo noi stessi: come viene implementato 1C e come viene amministrato: flusso di documenti all'interno dell'azienda 1C

Oppure, ad esempio, un'altra metrica (mostrata in blu nello screenshot): l'aggiornamento delle lettere in una cartella. L'apertura di una cartella di posta è un'operazione molto comune e deve essere eseguita rapidamente. Misuriamo la rapidità con cui viene eseguito. Questo indicatore viene misurato per ciascun cliente. Puoi vedere sia il quadro generale dell'azienda che le dinamiche, ad esempio, di un singolo dipendente. Lo screenshot mostra che fino a quest'anno il parametro era sbilanciato, poi abbiamo apportato una serie di miglioramenti e ora la situazione non peggiora: il grafico è quasi piatto.

Verifichiamo noi stessi: come viene implementato 1C e come viene amministrato: flusso di documenti all'interno dell'azienda 1C

Le metriche sono fondamentalmente uno strumento dell'amministratore per monitorare il sistema, per rispondere rapidamente a eventuali cambiamenti nel comportamento del sistema. Lo screenshot mostra le metriche sussidiarie interne per l'anno. Il salto nei grafici è dovuto al fatto che ci è stato affidato il compito di sviluppare filiali interne.

Verifichiamo noi stessi: come viene implementato 1C e come viene amministrato: flusso di documenti all'interno dell'azienda 1C

Ecco un elenco di altri parametri (sotto il taglio).
Metrica

  • Attività dell'utente
  • Utenti attivi
  • Processi attivi
  • Numero di file
  • Dimensioni del file (MB)
  • Numero di documenti
  • Numero di oggetti da inviare ai destinatari
  • Numero di controparti
  • Compiti non finiti
  • Tempo medio di attesa per il download delle email dal server di posta negli ultimi 10 minuti
  • Buffer dati esterno: numero di file
  • Confine in ritardo rispetto alla data corrente
  • Lunga fila
  • Coda operativa
  • Età non elaborata dell'account tramite routing esterno
  • Dimensioni della coda di accettazione dell'instradamento interno (coda lunga)
  • Dimensioni della coda di accettazione dell'instradamento interno (coda veloce)
  • Tempi di consegna della posta tramite routing interno (coda lunga)
  • Tempi di consegna della posta tramite routing interno (coda veloce)
  • Tempi di consegna della posta tramite routing esterno (medio)
  • Numero di documenti Prenotazione
  • Numero di documenti Assenza
  • Numero di documenti “Registro del lavoro con la controparte”
  • Posta Aggiorna le lettere in una cartella
  • Posta Apertura di una cartolina da lettera
  • Posta Trasferisce una lettera in una cartella
  • Posta Navigare tra le cartelle

Il nostro sistema misura più di 150 indicatori XNUMX ore su XNUMX, ma non tutti possono essere monitorati rapidamente. Potrebbero tornare utili in seguito, in una prospettiva storica, e potrai concentrarti su quelli più importanti per l'azienda.

In una delle implementazioni, ad esempio, sono stati selezionati solo 5 indicatori. Il cliente si è posto l'obiettivo di creare un set minimo di indicatori, ma allo stesso tempo tale da coprire i principali scenari di lavoro. Sarebbe ingiustificato includere 150 indicatori nel certificato di accettazione, perché anche all'interno dell'impresa è difficile concordare quali indicatori siano considerati accettabili. E conoscevano questi 5 indicatori e li avevano già presentati al sistema prima dell'inizio del progetto di implementazione, includendoli nella documentazione del concorso: tempo per aprire una carta non più di 3 secondi, tempo per completare un'attività con un file no più di 5 secondi, ecc. Nelle nostre filiali avevamo metriche che riflettevano molto chiaramente la richiesta originale delle specifiche tecniche del cliente.

Disponiamo anche di un'analisi del profilo delle misurazioni delle prestazioni. Gli indicatori di prestazione sono una registrazione della durata di ciascuna operazione in corso (scrivere una lettera al database, inviare una lettera a un server di posta, ecc.). Viene utilizzato esclusivamente dai tecnici. Accumuliamo molti indicatori di prestazione nel nostro programma. Attualmente misuriamo circa 1500 operazioni chiave, suddivise in profili.

Verifichiamo noi stessi: come viene implementato 1C e come viene amministrato: flusso di documenti all'interno dell'azienda 1C

Uno dei profili più importanti per noi è l'"Elenco degli indicatori chiave della posta dal punto di vista del consumatore". Questo profilo include, ad esempio, i seguenti indicatori:

  • Esecuzione del comando: Seleziona per tag
  • Apertura di un modulo: Modulo Elenco
  • Esecuzione del comando: Seleziona per cartella
  • Visualizzazione di una lettera nell'area di lettura
  • Salvare una lettera nella tua cartella preferita
  • Cerca le lettere in base ai dettagli
  • Creazione di una lettera

Se vediamo che la metrica per qualche indicatore aziendale è diventata troppo grande (ad esempio, le lettere di un particolare utente hanno iniziato ad arrivare da molto tempo), iniziamo a capirlo e passiamo alla misurazione del tempo delle operazioni tecniche. Abbiamo un'operazione tecnica "Archiviazione di lettere su un server di posta": vediamo che il tempo per questa operazione è stato superato nell'ultimo periodo. Questa operazione, a sua volta, è scomposta in altre operazioni, ad esempio stabilire una connessione con un server di posta. Vediamo che per qualche motivo è diventato improvvisamente molto grande (abbiamo tutte le misurazioni per un mese - possiamo confrontare che la settimana scorsa era di 10 millisecondi e ora è di 1000 millisecondi). E capiamo che qui qualcosa non funziona: dobbiamo aggiustarlo.

Come manteniamo un database così grande?

Il nostro DO interno è un esempio di un progetto ad alto carico davvero funzionante. Parliamo delle caratteristiche tecniche del suo database.

Quanto tempo è necessario per ristrutturare le tabelle di database di grandi dimensioni?

Il server SQL richiede una manutenzione periodica, mettendo in ordine le tabelle. In senso buono, questo dovrebbe essere fatto almeno una volta al giorno, e anche più spesso per i tavoli molto richiesti. Ma se il database è grande (e il nostro numero di record ha già superato gli 11 miliardi), prendersene cura non è facile.

Abbiamo fatto una ristrutturazione dei tavoli 6 anni fa, ma poi ha cominciato a richiedere così tanto tempo che non rientravamo più negli intervalli notturni. E poiché queste operazioni caricano pesantemente il server SQL, non può servire in modo efficiente gli altri utenti.

Pertanto, ora dobbiamo usare vari trucchi. Ad esempio, non possiamo eseguire queste procedure su set di dati completi. È necessario ricorrere alla procedura Aggiorna campione 500000 righe: l'operazione richiede 14 minuti. Non aggiorna le statistiche su tutti i dati nella tabella, ma seleziona mezzo milione di righe e le utilizza per calcolare le statistiche che utilizza per l'intera tabella. Questo è un presupposto, ma siamo costretti a farlo, perché per una tabella specifica, la raccolta di statistiche sull'intero miliardo di record richiederà un tempo inaccettabilmente lungo.

Verifichiamo noi stessi: come viene implementato 1C e come viene amministrato: flusso di documenti all'interno dell'azienda 1C
Abbiamo ottimizzato anche altre operazioni di manutenzione rendendole parziali.

Mantenere un DBMS è generalmente un compito difficile. In caso di interazione attiva tra i dipendenti, il database cresce rapidamente e diventa sempre più difficile per gli amministratori mantenerlo: aggiornamento delle statistiche, deframmentazione, indicizzazione. Qui bisogna applicare strategie diverse, questo lo sappiamo bene, abbiamo esperienza, possiamo condividerla.

Come viene implementato il backup con tali volumi?

Un backup DBMS completo viene eseguito una volta al giorno di notte, uno incrementale ogni ora. Inoltre, ogni giorno viene creata una directory di file che costituisce una parte del backup incrementale dell'archivio file.

Quanto tempo è necessario per completare un backup completo?

Un backup completo su un disco rigido viene completato in tre ore, un backup parziale in un'ora. Ci vuole più tempo per scrivere su nastro (un dispositivo speciale che effettua una copia di backup su una cassetta speciale conservata fuori dall'ufficio; sul nastro viene creata una copia trasferibile, che verrà conservata se, ad esempio, la sala server brucia). Il backup viene eseguito esattamente sullo stesso server, i cui parametri erano più alti: un server SQL con un carico del processore del 20%. Al momento del backup, ovviamente, il sistema peggiora notevolmente, ma è comunque funzionante.

Verifichiamo noi stessi: come viene implementato 1C e come viene amministrato: flusso di documenti all'interno dell'azienda 1C

Esiste la deduplicazione?

Deduplicazione I file ci sono, lo testeremo su noi stessi e presto sarà incluso nella nuova versione di Gestione Documentale. Stiamo inoltre testando il meccanismo di deduplicazione della controparte. Non è prevista la deduplicazione dei record a livello DBMS poiché non è necessaria. La piattaforma 1C:Enterprise archivia gli oggetti nel DBMS e solo la piattaforma può essere responsabile della loro coerenza.

Ci sono nodi di sola lettura?

Non sono presenti nodi di lettura (nodi di sistema dedicati che servono a chi ha bisogno di ricevere eventuali dati per la lettura). DO non è un sistema di contabilità da mettere su un nodo BI separato, ma esiste un nodo separato per il reparto di sviluppo, con il quale i messaggi vengono scambiati in formato JSON, e il tempo di replica tipico è di unità e decine di secondi. Il nodo è ancora piccolo, conta circa 800 milioni di record, ma sta crescendo velocemente.

Le email contrassegnate per l'eliminazione non vengono affatto eliminate?

Non ancora. Non abbiamo il compito di alleggerire la base. Ci sono stati diversi casi piuttosto gravi in ​​cui è stato necessario fare riferimento a lettere contrassegnate per la cancellazione, incluso il 2009. Ecco perché abbiamo deciso di tenere tutto per ora. Ma quando il costo di questa operazione diventerà ingiustificato, si penserà alla rimozione. Ma se è necessario rimuovere completamente una lettera separata dal database in modo che non rimangano tracce, è possibile farlo su richiesta speciale.

Perché conservarlo? Disponete di statistiche sull'accesso ai vecchi documenti?

Non ci sono statistiche. Più precisamente, si presenta sotto forma di registro utente, ma non viene archiviato a lungo. Le voci più vecchie di un anno vengono cancellate dal protocollo.

C'erano situazioni in cui era necessario recuperare vecchia corrispondenza di cinque o anche dieci anni fa. E questo è sempre stato fatto non per vana curiosità, ma per prendere decisioni aziendali complesse. Si è verificato un caso in cui, senza la cronologia della corrispondenza, sarebbe stata presa una decisione commerciale sbagliata.

Come viene valutato il valore dei documenti e distrutti in base ai periodi di conservazione?

Per i documenti cartacei questo avviene nel solito modo tradizionale, come tutti gli altri. Non lo facciamo per quelli elettronici: lasciamo che li tengano per sé. La seduta è qui. Ci sono vantaggi. Stanno tutti bene.

Quali prospettive di sviluppo ci sono?

Ora il nostro DO risolve circa 30 problemi interni, alcuni dei quali abbiamo elencato all'inizio dell'articolo. Il DL serve anche per preparare i convegni che organizziamo due volte l'anno per i nostri partner: l'intero programma, tutte le relazioni, tutte le sezioni parallele, le sale, tutto questo viene digitato nel DL, e poi scaricato da esso, e un programma stampato è fatto.

Ci sono molti altri compiti in arrivo per il DO, oltre a quelli che sta già risolvendo. Esistono compiti a livello aziendale e ce ne sono altri unici e rari, necessari solo a un dipartimento specifico. È necessario aiutarli, il che significa espandere la "geografia" dell'utilizzo del sistema all'interno di 1C - ampliare l'ambito di applicazione, risolvere i problemi di tutti i dipartimenti. Questo sarebbe il miglior test per prestazioni e affidabilità. Mi piacerebbe vedere il sistema funzionare su trilioni di record, petabyte di informazioni.

Fonte: habr.com

Aggiungi un commento