Problema nu era traficul, ci o arhitectură care taxa compania în mod repetat pentru operațiuni inutile.
Când am analizat platforma, factura AWS creștea în fiecare lună. Numărul utilizatorilor evolua sănătos, dar cheltuielile de infrastructură creșteau mult mai repede decât veniturile. Explicația acceptată era că scalarea costă.
Datele au arătat altceva.
Cea mai mare parte a facturii provenea din capacitate nefolosită, servicii administrate prea scumpe și citiri repetate ale acelorași informații. Sistemul plătea prețuri enterprise pentru trafic de startup.
Am măsurat înainte să schimbăm
Optimizarea devine riscantă când începe prin ștergerea resurselor. Noi am început cu o hartă completă:
- costul fiecărui serviciu și mediu;
- utilizarea CPU, memorie, rețea și baze de date;
- volumul de cereri pe endpoint;
- interogările lente sau repetate;
- resursele active care nu deserveau trafic de producție.
Astfel am separat capacitatea necesară de risipa arhitecturală.
1. Dimensionarea corectă a infrastructurii
Mai multe instanțe erau pregătite pentru vârfuri de trafic care nu avuseseră loc niciodată. Utilizarea medie a procesorului rămânea sub 12%, inclusiv în perioadele aglomerate.
Am ales instanțe mai mici, am configurat autoscaling pe praguri măsurate și am separat sarcinile de fundal de cererile utilizatorilor. Aplicația și-a păstrat rezerva necesară fără să plătească permanent pentru capacitate nefolosită.
2. Eliminarea interogărilor duplicate
Un dashboard lansa aceleași interogări pentru fiecare componentă și actualizare. O singură vizualizare genera sute de citiri, deși majoritatea rezultatelor se schimbau rar.
Am introdus caching controlat, cu reguli explicite de invalidare. Datele de referință au fost mutate în Redis, iar informațiile specifice utilizatorilor au rămas în baza principală. Am combinat interogările și am adăugat indexurile indicate de planurile de execuție.
Scopul nu a fost să păstrăm totul în cache, ci să nu mai plătim de sute de ori pentru același răspuns.
3. Simplificarea serviciilor administrate
Serviciile administrate sunt valoroase când elimină muncă operațională reală. Devin costisitoare când sunt alese doar pentru o arhitectură mai impresionantă pe hârtie.
Am înlocuit două servicii slab utilizate cu o implementare mai simplă, potrivită cerințelor reale. Backup-urile, monitorizarea, actualizările și testele de recuperare au rămas; costurile inutile nu.
4. Vizibilitatea costurilor în echipa tehnică
Îmbunătățirea durabilă a fost una de proces:
- bugete și alerte de anomalie pentru fiecare mediu;
- etichete de proprietate pe fiecare resursă;
- un indicator lunar de cost per utilizator activ;
- evaluarea impactului infrastructurii pentru funcțiile importante.
După stabilizarea migrării, factura AWS lunară era cu 60% mai mică. Timpii de răspuns s-au îmbunătățit, iar echipa a rămas cu un sistem pe care îl putea înțelege și opera cu încredere.
Costul cloud este un semnal arhitectural. Măsoară munca sistemului și plătește doar pentru ceea ce utilizatorii au nevoie.
