Sei interessato a conoscere come ospitiamo il ORCID Registro e API? Vorresti sapere come gestiamo l'alta disponibilità, la scalabilità e il ripristino in caso di disastro? Se è così, allora questo post è per te!
Gestiamo otto milioni di pagine visualizzate ogni mese su ORCID Registry, ma la maggior parte del nostro traffico è sulle API, che attualmente ricevono oltre 100 milioni di visite al mese. Una delle nostre strategie principali consiste nell'investire nello sviluppo di una solida infrastruttura informativa, quindi dobbiamo essere certi che la tecnologia che utilizziamo per supportare questo utilizzo sia affidabile e sicura.
Il Registro e il resto del sito web su orcid.org sono instradati attraverso una Content Delivery Network (CDN), un fornitore di servizi cloud che ha oltre 150 datacenter in tutto il mondo. Quando il tuo browser si connette a orcid.org, le parti statiche del sito sono servite da un datacenter locale vicino a te, per consentire tempi di caricamento più rapidi.
Il CDN ha alcune altre funzioni utili, come la protezione contro attacchi DDoS (Distributed Denial of Service)e scansione di sicurezza in tempo reale contro le minacce di hacking.
Le pagine del Registro sono ospitate presso il nostro data center principale, dove il traffico è bilanciato dal carico su un cluster di server app, mentre i dati del Registro sono archiviati in un cluster di tre potenti server di database, su file system crittografati. Uno è un database master, dove vengono effettuati gli aggiornamenti e due sono server di replica, che ricevono una copia dei dati in tempo reale. I server di replica vengono utilizzati per la maggior parte delle operazioni di "lettura" del Registro di sistema e delle API, ma sono anche server hot standby, il che significa che possono essere promossi a master in caso di guasto.
Abbiamo un assortimento di altri server che supportano il sistema di produzione, che mescolano i dati per creare indici di ricerca, mantenere un dump aggiornato dei dati pubblici in un diverso data center ed eseguire attività pianificate come promemoria e-mail.
Eseguiamo automaticamente il backup del database due volte al giorno, crittografiamo il dump e lo spingiamo a un altro provider di servizi cloud in un continente diverso in modo che, in caso di disastro nel nostro data center principale, possiamo utilizzare il backup del database per ripristinare il sistema. Verifichiamo regolarmente che questo processo funzioni utilizzando un server offline temporaneo.
Questa è una base solida. Tuttavia, ORCiD continua a crescere e siamo sempre più affidabili come parte dell'infrastruttura informativa della ricerca. Quindi dobbiamo fare di più per garantire che la comunità possa continuare a dipendere da noi.
Cosa vorremmo migliorare?
Ci piacerebbe avere server app e repliche di database in più posizioni, in modo da non dover fare affidamento sul processo di ripristino del database piuttosto lungo o perdere dati dall'ultimo backup. Vorremmo essere in grado di fornire nuovi server in pochi minuti, anziché ore, in caso di improvviso aumento della domanda.
Stiamo valutando la possibilità di separare le parti più critiche del sistema come registrazione, accesso e autorizzazione in un sistema isolato e vorremmo anche garantire che i problemi di traffico dell'API pubblica non influiscano sulle API del registro e dei membri.
E vorremmo un'architettura più flessibile che utilizzi tecnologie standard del settore come Contenitori Docker ed kubernetes, che ci aiuterà ad apportare i miglioramenti sopra menzionati.
Fateci sapere cosa ne pensate dei nostri piani! Come ci confrontiamo con la tua organizzazione e altri servizi su cui fai affidamento? C'è altro che potremmo o dovremmo fare? Hai qualche consiglio da darci in base alla tua esperienza? Contattaci con il tuo contributo e feedback!