Cum ar trebui să organizeze companiile Managementul Performanței Aplicațiilor
Administrarea eficienței aplicațiilor ≠ monitorizarea aplicațiilor
În calitate de furnizor de servicii de gestionare a aplicațiilor, am văzut adesea interpretări greșite ale conceptului relativ nou de "gestionare a performanței aplicațiilor". De cele mai multe ori, oamenii îl confundă cu monitorizarea aplicațiilor și folosesc termenii în mod interschimbabil, însă monitorizarea aplicațiilor este doar o modalitate de a dezvălui în detaliu modul în care sistemul se comportă în timp. În ciuda tuturor contribuțiilor sale substanțiale, monitorizarea pură nu este suficientă pentru nevoile și cerințele aplicațiilor moderne complexe și este doar o activitate de sprijin pentru gestionarea performanței. Managementul performanței aplicațiilor este un termen mult mai larg care cuprinde, pe lângă monitorizare, rezolvarea și prevenirea problemelor și îmbunătățirea continuă a aplicațiilor.
Motive valide pentru a implementa Managementul Performanței Aplicațiilor
Partea bună a performanței adecvate a aplicației nu se limitează la îmbunătățirea ratelor de conversie și la investirea în loialitatea față de marcă. Beneficiile managementului performanței aplicațiilor în practică pentru organizație includ:
Eficiență crescută a afacerii
Administrarea corectă a managementului performanței aplicațiilor face ca aplicațiile de afaceri cu performanțe slabe să devină un lucru de domeniul trecutului. În special, ajută la rezolvarea întârzierilor în procesele supraîncărcate, a timpilor de întrerupere și a întreruperilor care pot împiedica semnificativ performanța angajaților și aproape dublează timpul necesar pentru o anumită sarcină.
Reducerea TCO al aplicației
- Costuri reduse pentru îmbunătățiri suplimentare.Modificările aplicațiilor devin mai puțin costisitoare datorită capacității de a identifica și rezolva problemele de integrare a codurilor înainte ca o aplicație să intre în producție.
- Reducerea costurilor de sprijin. Datele primite în cursul gestionării performanței aplicațiilor îmbunătățesc eficiența personalului de asistență. Inginerii de asistență pot aborda mai rapid problemele de performanță și disponibilitate și pot rezolva mai multe probleme în timp.
- Capacitate cloud bine planificată. Timpul redus de procesare a solicitărilor nu va face o mare diferență pentru utilizatorii dumneavoastră, dar vă poate crește semnificativ cheltuielile. Gestionarea continuă a performanței aplicațiilor vă va permite să estimați nevoile dvs. optime în ceea ce privește capacitatea cloud și să veniți cu o utilizare mai eficientă a resurselor de calcul sau cu introducerea unui consum dinamic pentru cloud-uri.
Monitorizare și raportare SLA
Datele de gestionare a performanțelor aplicațiilor ajută la asigurarea transparenței în colaborarea cu furnizorii externi (fie că este vorba de un furnizor SaaS sau de un furnizor de servicii de externalizare a dezvoltării și gestionării aplicațiilor) și asigură menținerea calității serviciilor la nivelul la care se așteaptă afacerea dumneavoastră. Măsurătorile de performanță a aplicațiilor pot fi transformate în KPI, cum ar fi timpul mediu de încărcare a paginilor, numărul de cazuri de indisponibilitate a serviciilor și multe altele.
Cum se descoperă problemele de performanță
Gestionarea performanței aplicațiilor începe cu detectarea și localizarea anomaliilor. Pentru aceasta, echipa responsabilă aplică un set larg de tehnici.
Monitorizarea componentelor aplicației
Monitorizarea componentelor implică urmărirea indicatorilor de performanță și a disponibilității tuturor nivelurilor și componentelor aplicației - servere, sisteme de operare, servicii, componente de integrare, API-uri terțe, baze de date.
Monitorizarea tranzacțiilor comerciale
Monitorizarea tranzacțiilor de afaceri implică urmărirea tranzacțiilor critice de afaceri în întreaga infrastructură de aplicații. Prin aceasta, ne referim la asigurarea faptului că tranzacțiile sunt complete, că momentul lor este acceptabil, precum și la identificarea punctelor slabe din parcursul cererii. Monitorizarea stării de sănătate a tranzacțiilor este deosebit de relevantă pentru tranzacțiile complexe distribuite între sisteme interne sau externe, atunci când pierderea mesajelor este crucială.
Monitorizarea utilizatorului real
Monitorizarea reală a utilizatorilor (precum Google Analytics) este o colectare pasivă de date despre performanța serviciilor aplicației pe care clienții le pot accesa direct. Aceasta permite obținerea de informații despre traficul real și erorile de pe server și din frontend, identificarea celor mai populare seturi de funcționalități și a diferențelor de performanță atunci când aplicația este accesată de pe diferite dispozitive, browsere sau din diferite părți ale lumii.
Monitorizare sintetică
Pentru monitorizarea sintetică, dezvoltatorii creează scripturi speciale care simulează în mod sistematic acțiunile utilizatorului în cadrul aplicației. Acest lucru permite găsirea defectelor în activitatea aplicației înainte ca utilizatorii reali să fie afectați.
Analiza registrelor
Măsurătorile pot spune doar că ceva nu este în regulă. Pentru a indica adevărata sursă a unei probleme, ne îndreptăm către jurnale. Echipa de gestionare a performanței aplicațiilor poate fie să parcurgă manual datele din jurnale, fie să utilizeze instrumente specifice pentru analiza jurnalelor (precum Logstash, Graylog, Logmatic, Splunk). Pentru ca procesarea jurnalelor să fie eficientă și să permită utilizarea unor metode avansate de analiză a jurnalelor, este o bună practică să se solicite dezvoltatorilor să păstreze jurnalele structurate, descrise corespunzător și să respecte standardele, de ex.
Instrumente utilizate în activitățile de management
Instrumentele utilizate pentru managementul performanței aplicațiilor pot fi grupate în câteva segmente, fiecare având aspecte favorabile și nefavorabile pentru un anumit caz de monitorizare. Două dintre diferențele cheie sunt originea instrumentelor și modul în care sunt implementate.
Instrumente personalizate sau din comerț
Puteți alege din varietatea disponibilă pe piață (AppDynamics, Stackify, Dynatrace etc.) sau puteți utiliza un software de producție proprie. Acesta din urmă este din ce în ce mai popular în rândul companiilor cu infrastructuri IT complexe și dezvoltate, care știu exact unde se află punctele slabe de performanță și doresc să le abordeze într-un mod mai țintit.
Instrumente bazate pe agenți sau fără agenți
Instrumentele bazate pe agenți implică faptul că o parte a instrumentului este instalată direct pe server sau pe serviciu și colectează date din interior. Acesta oferă informații mai detaliate despre modul în care funcționează software-ul, dar poate necesita un număr tangibil de resurse de server și poate încetini performanța componentelor.
Instrumentele fără agent evaluează starea software-ului de la distanță. Acestea sunt mai ușor și mai rapid de implementat, dar au o acoperire limitată de urmărire a metricilor.
Cum ar trebui să fie organizat procesul de gestionare a performanței aplicațiilor
Nu instrumentele sunt esențiale în gestionarea performanței aplicațiilor, ci măsurile pe care le luați pe baza datelor primite de la acestea. Managementul performanței mature se desfășoară după cum urmează:
Două etape din cele de mai sus merită o mențiune specială. Alertarea ar trebui să se adreseze doar părților interesate relevante și să se refere doar la probleme serioase pentru a fi cu adevărat eficientă. Raportarea despre problemele detectate, modul în care au fost rezolvate și influența pe care au avut-o, nu ar trebui ignorată. Pe termen lung, o raportare adecvată permite alegerea unei căi mai bune de dezvoltare a aplicației și luarea deciziilor corecte privind evoluția aplicației.
Cine ar trebui să fie responsabil cu managementul performanței aplicațiilor
Principalul susținător al gestionării performanței aplicațiilor variază de la o companie la alta. Aceasta poate fi o responsabilitate a unui inginer de performanță, a unei echipe DevOps sau o parte a responsabilității pentru suportul tehnic care este în mod inerent responsabil pentru sănătatea și disponibilitatea aplicațiilor. O persoană responsabilă desemnată sau un grup restrâns de părți interesate ar trebui să dețină managementul performanței aplicațiilor ca proces în cadrul companiei pentru a asigura eficiența, coerența și concentrarea eforturilor.
Cu toate acestea, niciunul dintre ei nu poate avea întreaga responsabilitate (și competențele necesare) pentru întreținerea și gestionarea performanței generale a aplicației, deoarece sursele de degradare a performanței pot fi răspândite în toate straturile și componentele software. Acestea pot rezida în:
- Creșteri de trafic.
- Pagini web încete.
- Tranzacție supraîncărcată / tranzacții incomplete.
- Așteptarea depășește limita.
- Structuri de cod încurcate.
- Interogări SQL lente / prea multe interogări ale bazei de date.
- Utilizarea ineficientă a memoriei unei aplicații.
- Entități terțe lente sau nesigure, eșecul apelurilor externe ale serviciului web HTTP.
Și totuși, lista nu este completă. Astfel, pentru ca gestionarea performanței aplicațiilor să aibă succes, primul pas important ar trebui să fie reunirea tuturor părților de interes din întregul ciclu de viață al aplicației. O echipă completă de gestionare a performanței aplicațiilor necesită o implicare cu jumătate de normă de cel puțin:
- Developeri.
- Specialiști în domeniul QA.
- Echipa operațională.
- Administratori de aplicații.
De asemenea:
- Analiștii de afaceri.
- Developeri de aplicații.
- Inginerii DevOps.
- Echipa de monitorizare.
- Inginerii de performanță (dacă există).
- Reprezentanți ai departamentelor din domeniu.
Care sunt principalele costuri ale managementului performanței aplicațiilor
Costurile majore ale managementului performanței aplicațiilor constau în:
- Revizuirea situației actuale din cadrul infrastructurii IT. Aceasta va include activități precum o verificare a stării de conformitate a codurilor, identificarea principalilor candidați pentru gestionarea performanței aplicațiilor și crearea unei liste de așteptare, dimensionarea inițială a unei viitoare soluții de monitorizare.
- Dezvoltarea instrumentelor de monitorizare, achiziționarea de licențe pentru produse (taxe anuale/lunare) and instalarea și întreținerea soluțiilor de monitorizare.
- O echipă de monitorizare cu atribuții specifice. Aceștia vor gestiona soluțiile de monitorizare, vor interpreta măsurătorile de monitorizare pentru întreaga echipă de gestionare a aplicațiilor și vor supraveghea baza de date care le stochează.
Unde va avea cel mai mare impact managementul performanței aplicațiilor
Dacă doriți să experimentați cele mai semnificative îmbunătățiri și să obțineți un randament mai mare al investițiilor în managementul performanței aplicațiilor:
- Începeți cu aplicațiile critice pentru afaceri care influențează direct veniturile companiei (procese critice de afaceri) sau influențează disponibilitatea serviciilor companiei pentru clienți. Exemplele de astfel de aplicații includ sisteme de gestionare a conținutului, portaluri pentru clienți și de autoservire, soluții de comerț electronic și module de procesare a comenzilor.
- Acoperiți tranzacțiile de afaceri și interfețele externe foarte încărcate.
Când sunt necesare considerații speciale în managementul performanței aplicațiilor
În cele din urmă, să vedem ce probleme sunt asociate cu managementul performanței aplicațiilor.
SaaS, PaaS
Atunci când optați pentru SaaS sau PaaS, este foarte important să monitorizați timpul de răspuns, erorile și disponibilitatea serviciilor cloud (de exemplu, serviciul de stocare în cloud). Deși nu puteți identifica unde anume se află problema, datele colectate pot fi folosite pentru a formula o cerere către biroul de servicii al unui furnizor și pentru a monitoriza respectarea SLA.
Soluții bazate la nivel de platformă
Din nou, nu aveți acces la codul sursă, așa că nu sunt disponibile modificări importante pentru a îmbunătăți performanța aplicației. Cu toate acestea, managementul performanței aplicațiilor merită în continuare. Cel puțin, veți putea să identificați rapid problemele de performanță, să detectați defectele cauzate de personalizările recente, să măriți resursele sau să îi optimizați baza de date.
IoT și Big Data
Problema gestionării performanței aplicațiilor pentru soluțiile IoT și Big Data constă în abundența de date de monitorizare. Pentru a atenua această problemă, asigurați-vă că sunt colectate doar datele necesare, sunt combinate în loturi și sunt stabilite intervale mai lungi între transmisii.
Concluzie
În acest articol am discutat despre ce este performanța aplicațiilor și despre ceea ce considerăm a fi cea mai bună abordare a gestionării performanței aplicațiilor. Susținem crearea unei echipe extinse de gestionare a performanței aplicațiilor, favorizând gestionarea performanței în detrimentul monitorizării pure a performanței și păstrând-o pe aceasta din urmă ca pe o componentă echilibrată și bine gândită - fără a colecta măsurători nerezonabile, logări meticuloase și alerte zgomotoase.