Studii de caz/Platforma de aplicații web frontend

Sectorul public·Platformă de containere, cloud privat și stocare·România

Platforma de aplicații web frontend

O platformă completă de containere, cloud privat și stocare pentru centrul de date secundar — construită ca pereche a locației principale, cu clustere separate pentru dezvoltare, test și producție, fiecare împărțit în front-end și back-end.

BeneficiarAgenția Națională de Administrare Fiscală
RolArhitectură, integrare și livrare
PlatformăRed Hat OpenShift + OpenStack
StocareCeph + stocare de obiecte S3, 240 TB
AmplasareLocația secundară
StadiuLivrat
Platforma de aplicații web frontend — platformă de containere, cloud privat și stocare în locația secundară

01Provocarea

O a doua locație care poate susține aceeași platformă

Platforma de containere, cloudul privat și stocarea rulau dintr-un singur centru de date principal. Serviciile folosite de cetățeni și de companii nu puteau rămâne dependente de o singură clădire, o singură alimentare cu energie, o singură cale de rețea.

Mandatul a fost implementarea aceleiași platforme într-un al doilea centru de date, centrul de date secundar: o platformă capabilă să funcționeze singură sau alături de cea din primul centru, fără modificarea aplicațiilor care rulează pe ea.

P1O locație pereche, nu una de rezervăCentrul de date secundar rulează aceeași platformă de containere, același cloud privat și aceeași stocare ca locația principală — poate funcționa independent, în regim activ-activ sau activ-standby.
P2Prioritate pentru containereO platformă de containere pe bare metal este fundația principală pentru sarcinile de lucru; cloudul privat se află sub ea, pentru mașini virtuale și funcții de rețea, nu invers.
P3Medii ținute separatDezvoltarea, testarea și producția rulează în clustere separate, fiecare împărțit în front-end și back-end, astfel încât o modificare dintr-un mediu nu ajunge niciodată accidental în altul.
P4HA pe fiecare nivelAlimentarea cu energie, rețeaua, planul de control și stocarea sunt fiecare redundante în interiorul locației, cu politici de segmentare între sarcinile de lucru.

02Dimensiune

Dimensionată pentru platformă,
construită să reziste la pierderea componentelor.

14
Noduri per locație — 10 de calcul + 4 de management
240 TB
Stocare de obiecte utilizabilă
2
Centre de date pereche
40 Gbps
Uplink către nucleul de rețea existent

Per locație: un cluster de management cu patru noduri pe bare metal, zece noduri hiperconvergente care rulează împreună calculul și stocarea, o platformă de obiecte cu cinci noduri și două perechi de switch-uri redundante, conectate dual la nucleul de rețea existent.

03Platforma

Opt straturi, o singură platformă

Platforma de containere este centrul acestei implementări. Tot restul — cloudul privat, stocarea, fabric-ul de rețea — există pentru a servi sarcinile de lucru care rulează pe ea.

Cluster de managementOpenShift, patru noduri, bare metal

Trei noduri care combină planul de control cu rolul de worker, plus un worker dedicat. Nodurile de plan de control găzduiesc etcd, serverul API, schedulerul, controller managerul și cluster version operatorul; al patrulea nod rulează doar sarcini de lucru. Cele trei noduri de plan de control asigură cvorumul etcd, astfel încât clusterul supraviețuiește pierderii unuia dintre ele.

Servicii de platformăRegistru, automatizare, gestionarea flotei

Clusterul de management găzduiește serviciile de care depinde restul infrastructurii: management avansat al clusterelor din întreaga flotă, un registru de imagini, o platformă de automatizare, managementul mașinilor, managementul ciclului de viață și un serviciu de director — plus rețelistica definită prin software, DNS-ul și rutarea pe care rulează clusterele înseși.

Clustere de aplicațiiDezvoltare, test și producție

Sarcinile de lucru ale aplicațiilor rulează pe clustere proprii, separate pe medii, nu doar pe namespace-uri, iar fiecare mediu este împărțit într-un cluster front-end și un cluster back-end. Promovarea între medii este un act deliberat; o modificare în back-end nu poate antrena după ea și front-end-ul.

Cloud privatOpenStack, planul de control ca poduri

Planul de control al cloudului privat — identitate, API-ul de calcul și schedulerul, API-ul de rețea, imagini, orchestrare, plasare, panou de administrare, servicii de stocare bloc și de fișiere partajate, telemetrie — rulează ca poduri distribuite pe clusterul de management, nu pe controllere proprii, astfel încât moștenește aceeași înaltă disponibilitate și același ciclu de viață.

Calcul și stocareZece noduri hiperconvergente

Zece noduri mixte per locație rulează împreună calculul și stocarea: instanțe de hipervizor, agenți de rețea virtuală și servicii de volume, alături de daemonii stocării distribuite. Capacitatea pentru mașini virtuale, funcții de rețea și volume persistente crește prin adăugarea de noduri.

Stocare distribuităCeph, prin operatorul de stocare

Stocare bloc, fișier și obiect pe aceleași noduri care rulează sarcinile de lucru, expusă platformei de containere prin operatorul său de stocare — astfel încât un pod care cere un volum persistent și o mașină virtuală care cere un disc sunt deservite din același pool, replicat între noduri.

Stocare de obiecteS3, pentru stocarea pe termen lung

O platformă de obiecte separată, cu cinci noduri și interfață S3 standard, păstrează pe termen lung logurile și copiile de backup, cu datele replicate pe toate nodurile, astfel încât pierderea unui nod nu înseamnă pierdere de informație. Este folosită în principal de platforma de containere pentru arhivare.

Fabric-ul de rețeaPerechi de switch-uri redundante

Două perechi de switch-uri per locație — una pentru conectivitatea serverelor la 10/25G, una pentru 40/100G — fiecare configurată ca pereche virtual port-channel și conectată dual la nucleul de rețea existent la 40 Gbps.

04Arhitectură

Clusterul de management deasupra, stocarea dedesubt

Diagrama prezintă modelul arhitecturii de referință — nu implementarea internă efectivă. Fiecare locație rulează propriul cluster de management, care creează și guvernează clusterele de aplicații de sub el; cloudul privat și stratul de stocare se află dedesubt, iar cele două locații împart același model operațional, cu replicare între ele.

05Modelul de clustere

De ce sunt clusterele separate

Separarea este cel mai ieftin mecanism de siguranță al unei platforme. Mediile nu împart un cluster, iar în interiorul fiecărui mediu nici nivelurile front-end și back-end nu împart unul.

Planul de managementUn singur cluster OpenShift per locație guvernează flota: creează clusterele de aplicații, găzduiește registrul și automatizarea și rulează planul de control al cloudului privat ca poduri.
DezvoltareCluster propriu. Dezvoltare și integrare fără nicio legătură cu sistemele care deservesc publicul.
TestareCluster propriu, configurat la fel ca producția, astfel încât ceea ce se verifică este exact ceea ce se livrează.
ProducțieCluster propriu, singurul care rulează sarcinile de lucru de producție, pe aceeași platformă ca celelalte două.
Clustere front-endSarcini de lucru de prezentare și expuse prin API, ținute pe clustere separate de serviciile din spatele lor.
Clustere back-endServicii de business și sarcini de lucru care accesează datele, accesibile doar prin nivelul front-end și prin politicile de rețea proprii platformei.

06Stocare

Un singur strat de stocare, toate modurile de acces

Hiperconvergența înseamnă că nodurile care rulează sarcinile de lucru păstrează și datele. Astfel dispare un întreg nivel de hardware — iar capacitatea devine un singur exercițiu de planificare, nu două.

Un singur pool, doi consumatoriAceeași stocare distribuită oferă volume persistente pentru containere și discuri pentru mașini virtuale, astfel încât capacitatea se planifică o singură dată, nu separat pentru două infrastructuri.
Bloc, fișier și obiectToate cele trei moduri de acces provin din același cluster, ceea ce elimină nevoia unui filer separat sau a unui sistem de obiecte separat pentru activitatea de zi cu zi.
Reziliență prin replicareDatele sunt replicate și distribuite între noduri; pierderea unui nod costă capacitate, nu informație.
Crește prin adăugarea de noduriDiscurile și nodurile suplimentare se adaugă fără oprirea platformei, iar datele sunt redistribuite automat pe măsură ce crește capacitatea.
Arhivare pe S3O platformă de obiecte dedicată, cu cinci noduri, preia logurile pe termen lung și copiile de backup de pe nivelul principal, printr-o interfață S3 standard.

07Reziliență

Ce rezistă la o defecțiune

Două locații, un singur modelAmbele centre de date rulează același stack de platformă, cu același model operațional; locația secundară poate funcționa independent, în regim activ-activ sau activ-standby.
Replicare între locațiiStraturile de stocare se replică între cele două centre de date, astfel încât locația secundară deține atât datele, cât și platforma.
Cvorum în interiorul locațieiTrei noduri de plan de control per cluster de management păstrează cvorumul etcd; platforma supraviețuiește pierderii unui nod fără intervenția operatorului.
Segmentare între sarcinile de lucruTraficul nord-sud este inspectat la perimetru; traficul est-vest dintre sarcinile de lucru este guvernat de politici de segmentare în interiorul platformei.
PerimetruÎn fața infrastructurii se află un nivel de firewall pentru aplicații web și de livrare a aplicațiilor — prezentat într-un studiu de caz separat.

08Notă de confidențialitate

Nu dezvăluim schema de adresare, denumirile gazdelor, dispunerea rackurilor sau arhitectura tehnologică internă efectivă a proiectului.

Diagrama și cifrele de pe această pagină descriu modelul arhitecturii de referință și dimensiunea proiectului care poate fi comunicată public.

09Pasul următor

Pregătiți o a doua locație?

Am proiectat, integrat și livrat o platformă de containere, un cloud privat și un strat de stocare pentru centrul de date secundar al unei infrastructuri publice critice. Dacă planificați redundanța geografică pentru o platformă Kubernetes — o locație pereche, nu una de rezervă — vă putem ajuta.

Contactați-ne →