TSM - Enterprise Application Development

Lucian Ciufudean - Server Automation Functional Architect


Spre sfârșitul anilor "90 majoritatea CD-urilor atașate cărtilor erau CD-uri "multimedia": trei poze, dintre care un GIF animat, dacă erai norocos, și un fișier audio care transformau orice CD cu 600 de pagini de text într-un CD "multimedia".

Într-un mod similar, firmele de software care înainte livrau aplicații "simple" au început să se auto-intituleze ca livrând Aplicații Enterprise.

Nu alegem calea controversată de a defini ce este o aplicație de nivel enterprise, în schimb vom puncta câteva trăsături importante ale modului de lucru al echipelor noastre și al unei aplicații pe care o dezvoltăm în Cluj.

În HP Software Cluj-Napoca, construim aplicații cu echipe specializate: lăsăm programatorii și testerii să se dedice codului, în timp ce documentația oficială a produsului este scrisă de Information Engineers. Avem grijă ca utilizatorul să nu streseze mouse-ul și tastatura pentru a realiza ce dorește și pentru asta colaborăm cu UI Design-eri. Echipa de Product Management este prima linie de contact cu clientul, ei au rolul cel mai important în crearea viziunii pentru versiunile următoare ale produselor. Folosim o linie suplimentară de menținere a calității prin echipa Test Automation, a cărei responsabilitate este acoperirea produselor cu teste funcționale automate (pe lângă cele scrise de programatori).

"Recomand ca programatorii să își scrie singuri testele automate ... Recomand ca un tester independent să scrie testele de integrare" - Kent Beck

Ca să putem lucra eficient în SCRUM departe de clienții finali, avem câte un Functional Architect care joacă rolul de Product Owner în fiecare echipă. Lucrăm în sprinturi scurte ca să avem posibilitatea să reacționăm rapid la schimbări.Fiindcă SCRUM pune accent pe ideea de îmbunătățire continuă, facem cursuri de specializare în SCRUM cu consultanți externi recunoscuți în domeniu.

După livrare, rezolvăm escalările prin echipa de Suport și le traducem în funcționalități noi, schimbări de fucționalitate și hot fix-uri când e nevoie. În aceeași idee de a ajuta clienții, echipele de Suport și Current Product Engineering (CPE) participă activ în forum-urile publice ale produselor.

Interpunem între Client și echipa de Dezvoltare ambele echipe de Suport și CPE tocmai pentru a diminua riscul ca incidente neprevăzute să interfereze cu buna desfășurare a SCRUM-ului.

Avem o echipă dedicată denumită Professional Services care ajută clienții cu instalarea și configurarea produselor în medii complexe (vezi mai jos topologii de instalare pentru Server Automation) sau în cazul în care se dorește adaptarea diverselor aspecte ale produsului.

Vrem să știm ce cred clienții despre versiunea următoare a produsului, așa că în cadrul Design Partner Program prezentăm și le cerem părerea despre funcționalitățile planificate. Dăm o mână de ajutor echipelor de vânzări prin demonstrații detaliate ale versiunii următoare a produsului în cadrul Early Program Release.

Avem sute de clienți activi care se regăsesc între companiile mari ale lumii. Iar mulți clienți înseamnă mai multe cerințe, o mai mare varietate a nevoilor și multe idei de funcționalități noi pentru versiunea următoare: clienții sunt în definitiv cei care pun produsul la lucru într-un mediu real, nu doar în laborator.

Nevoile de performanță, scalabilitate și varietate sunt proporționale cu mărimea și logistica acestor companii. Ca exemplu, produsul Server Automation este folosit în centrele de date ale clienților pentru a face management la zeci de mii de servere. Suportăm peste 90 de combinații de sisteme de operare în diferitele lor versiuni instalate pe arhitecturi ca x86, x64, IA64, IBM zSeries, Solaris SPARC și PowerPC, așa încât pentru dezvoltare folosim un laborator virtualizat cu aproximativ 1500 de mașini pentru a suporta această varietate.

Prin Server Automation oferim o aplicație pentru managementul si automatizarea centrelor de date. Începând chiar cu descoperirea mașinilor pe rețea și instalarea sistemului de operare, lista de funcționalități continuă cu instalarea și configurarea aplicațiilor, a patch-urilor, realizarea de audituri, managementul atât al mașinilor fizice cât și al celor virtuale și integrarea cu soluții de virtualizare de la Oracle, VMware si Microsoft.

Instalăm Server Automation în diverse topologii pentru a face managementul centrelor de date distribuite în mai multe locații. O astfel de instalare este ilustrată în figura de mai jos:

Topologie Multimaster: Noduri SA (SA Core-s) care asigură replicarea completă a datelor

Instalările Satelit sunt potrivite pentru centre de date mai mici unde nu este justificată o instalare completă a unui SA Core. De asemenea, traficul dintre core-urile SA și Satelit poate fi limitat pentru a nu interfera cu traficul principal de date de la acea locație. În imaginea următoare se observă un detaliu de arhitectură folosit pentru a putea conecta centre de date aflate la distanțe mari, în rețele locale diferite: gateway-uri sunt instalate la ambele capete ale fiecărui canal de comunicare:

Utilizatorii finali ai aplicatiei sunt în principal administratori de sistem: îi ascultăm și știm că le place lumea Unix, așa că simulăm o consola de acest tip (SA Global Shell) prin care facem vizibilă întreaga infrastructura sub forma unui sistem virtual de fișiere. SA Global Filesystem unifică pentru utilizator modelul de date din SA (servere, pachete, clienti, centre de date, politici de audit) cu conținutul serverelor (sistemul de fișiere etc.).

Următoarele comenzi afișează lista de servere vizibile utilizatorului curent și sistemul de operare al unuia dintre ele:

$ ls /opsw/Server/@
abc.hp.com m33.hp.com gist.hp.com
$ cat /opsw/Server/@/abc.hp.com/attr/osVersion
 
Microsoft Windows 2000 Advanced Server Service Pack 4 Build 2195

Putem expune chiar și conținutul regiștrilor unui server Windows în această consola Unix:

$ ls /opsw/Server/@/abc.hp.com/registry/Administrator
HKEY_CLASSES_ROOT  HKEY_CURRENT_CONFIG  HKEY_CURRENT_USER  HKEY_LOCAL_MACHINE  HKEY_USERS

Interoperabilitatea aplicațiilor are o importanță extremă în lumea enterprise, așa că expunem funcționalitatea SA printr-un API pe care-l facem accesibil următoarelor tipuri de clienți: Java RMI, Python, SOAP, C# și script-urilor care rulează în Global Shell.

Folosim javadoc-ul nu doar ca metodă standard de documentare a API-ului, ci și ca o modalitate de a explora și apela API-ul din browser, Twister fiind aplicația care permite asta.

Respectăm utilizatorii în orice rol ar fi ei, finali sau ai API-ului, așa că un grup dedicat de programatori experimentați au misiunea să asigure compatibiltatea binară și funcționala a API-ului cu versiunile sale anterioare.

Ne uităm la multe aspecte când testăm performanța produsului, iată câteva grafice recente pentru Server Automation produse de o echipa dedicata testarii aspectelor non-funcționale:

Server Automation: testarea performanței. (Notă: Imaginile au fost editate pentru a șterge informațiile confidențiale la această dată)

Server Automation este doar una dintre cele patru aplicații enterprise pe care le dezvoltă în HP Software Cluj o echipă de 150 de angajați. Aici sprijinim inovația printr-un program global la nivel HP (InnoStream) și la nivel local în HP Software Cluj prin Vibrant Day - o zi pe lună în care ești liber să lucrezi la orice proiect, personal sau al companiei, singur sau în cadrul unei echipe. Ideile tale se pot materializa în functionalități noi pentru produse, iar dacă sunt într-adevăr deosebite, te susținem să le prezinți în forumul tehnic anual al HP, TechCon.