O platformă multi-tenant self-service pentru provisionarea și operarea clusterelor Kubernetes de producție pe cloud-ul OpenStack suveran al Prime Telecom.
An
2024–2025
Status
Live · producție
Previzualizare
O privire asupra produsului.
1 / 6
Cloud-urile publice livrează „Kubernetes managed" în spatele unui singur buton. Prime Telecom avea nevoie de aceeași experiență, dar pe propria infrastructură OpenStack — unde suveranitatea, rezidența datelor și economia rețelei locale contează mai mult decât orice funcționalitate marginală din AWS sau GCP.
PTKE este planul de control care face asta posibil: o aplicație Laravel + Vue care permite chiriașilor să provisioneze, să scaleze, să facă upgrade, backup și să opereze clustere Kubernetes de producție peste RKE2 gestionat de Rancher, compute/networking/storage OpenStack și disaster recovery bazat pe Velero. Fiecare operațiune de platformă care trăia într-o coadă de ticket-uri — clustere, node pool-uri, floating IP-uri, volume block, object storage, add-on-uri, backup-uri — este acum o acțiune self-service printr-un API REST și o interfață Vue 3.
Provocarea
Provocare
A rula OpenStack înseamnă a rula Keystone, Nova, Neutron, Cinder, Swift și Octavia — fiecare cu propriul API, model de autentificare și moduri de eșec. A rula Kubernetes deasupra înseamnă a stratifica Rancher, RKE2, CAPI, Helm, fișiere kubeconfig și DaemonSet-uri. A oferi chiriașilor un UI self-service curat peste toate acestea — fără să scurgi instalația de bază și fără să strici siguranța operațională — este cea mai mare parte a muncii.
Și totul trebuie să fie strict multi-tenant. Cote per chiriaș, proiecte OpenStack separate, audit trail pe fiecare acțiune de modificare, chei SSH distribuite doar pe nodurile potrivite, descărcări kubeconfig care nu pot fi abuzate. Un singur cluster scurs sau o singură acțiune între chiriași ar ucide credibilitatea platformei pentru toți ceilalți.
Abordarea
Abordare
Laravel 12 + Inertia v2 + Vue 3 + Tailwind CSS v4 oferă operatorilor o experiență rapidă și tipizată fără un pipeline separat de build pe frontend. Wayfinder generează clienți tipizați de rute și acțiuni, astfel încât fiecare pagină Vue vorbește cu backend-ul prin contracte verificate. Fortify gestionează sesiunile, 2FA și verificarea emailului; Sanctum emite token-uri API pentru provider-ul Terraform și pentru consumatorii de automatizare.
Backend-ul este structurat ca Controllers → Form Requests → Services → Jobs. Munca de mai mult de câteva secunde merge întotdeauna prin coadă. Unsprezece wrapper-e de servicii OpenStack stau în fața Keystone, Nova, Neutron, Cinder, Swift și Octavia; un strat separat de wrapper vorbește cu Rancher (v1, v3 și CAPI) pentru ciclul de viață al clusterului. Douăzeci și opt de job-uri în coadă orchestrează provisionarea, modificările de node pool, backup-urile, verificările de sănătate, înregistrarea utilizării și distribuția cheilor SSH. Horizon le supraveghează; Reverb trimite actualizări prin WebSocket înapoi în browser-ul operatorului, astfel încât schimbările de stare se simt imediat.
Multi-tenancy-ul este impus end-to-end: fiecare acțiune de modificare trece printr-un Policy cu verificare de chiriaș plus o permisiune Spatie, cote sunt aplicate pe fiecare alocare de resurse, iar limitarea ratei rulează per utilizator și per chiriaș. Descărcările de kubeconfig sunt auditate și limitate. Cheile private SSH nu ating niciodată platforma — un DaemonSet din cluster (ptke-ssh-sync) distribuie doar chei publice în Kubernetes Secrets, în cadrul propriului cluster al fiecărui chiriaș.
Experiența de tip „un click" a EKS, GKE sau AKS — dar pe infrastructură românească suverană, operată local.
Ce am construit
Capabilitati cheie livrate.
Ciclu de viață complet self-service pentru clustere RKE2 — provisionare, scalare, upgrade și clonare din template-uri, cu politici de drain și opțiuni de control plane HA
Gestionarea node pool-urilor cu label-uri, taint-uri, flavor-uri, volume suplimentare și suport pentru cluster-autoscaler
Networking OpenStack: răsfoirea subnet-urilor, alocarea de floating IP-uri și vizibilitate asupra load balancer-elor Octavia
Volume block Cinder cu redimensionare online, object storage Swift cu credențiale compatibile EC2 și backup/restore de cluster bazat pe Velero
Catalog curat de add-on-uri (ingress, monitoring, logging, cert-manager, external-dns…) cu instalare Helm cu un click per cluster
Cote multi-tenant, RBAC Spatie, 2FA Fortify și limitare a ratei per utilizator / per chiriaș
Distribuția cheilor publice SSH către fiecare nod al chiriașului printr-un DaemonSet din cluster — cheile private nu ating niciodată platforma
Log de audit Spatie complet, descărcări kubeconfig cu rate limiting și un provider Terraform experimental pentru infrastructure-as-code
Rezultate
Rezultate reale, masurate in productie.
Pagini Vue
214
Ecrane de operator pentru fiecare primitivă OpenStack și Rancher
Controlere
43
Acoperind clustere, networking, storage și administrare
Joburi în coadă
28
Orchestrare asincronă a provisionării, scalării, backup-urilor, verificărilor de sănătate
Servicii OpenStack
11
Wrapper-e pentru Keystone, Nova, Neutron, Cinder, Swift, Octavia și altele
PTKE este în producție, livrând Kubernetes gestionat pe infrastructură românească suverană. Operațiuni care necesitau anterior un inginer de platformă într-o coadă de ticket-uri — provisionarea clusterelor, upgrade-urile, atașarea/detașarea de volume, instalarea de add-on-uri, backup/restore — sunt acum acțiuni self-service la două click-uri, cu trasee de audit complete și un API REST tipizat. Un provider Terraform beta extinde același contract către fluxurile infrastructure-as-code.