Download presentation
Presentation is loading. Please wait.
Published byTeresa Vega Ponce Modified over 6 years ago
1
Configurarea, deployment-ul automat si testarea serviciilor
Mugurel Ionuț Andreica 2012
2
Configurare Configurare initiala (“parametri de input”)
Fisiere de configurare pentru setarea celor mai importanti parametrii de functionare ai serviciului Reconfigurare dinamica (in timpul executiei) Din exterior Modificarea parametrilor din fisierul de configurare + monitorizarea activa (periodica) a fisierului de configurare din partea serviciului (pentru a actualiza valorile parametrilor) Din interior Serviciul se auto-monitorizeaza si auto-evalueaza si decide modificarea parametrilor proprii in directia imbunatatirii performantei
3
Ini4J (1/2) Ini4J : biblioteca pentru parse-area fisierelor de configurare de tip .ini (configurare initiala) Fisier de tip .ini: Sectiuni Fiecare sectiune are o serie de parametrii (acelasi parametru poate aparea de mai multe ori) API: Ini ini = new Ini(new File(IniConfigFileName)); Ini.Section section = ini.get(“section_name"); String value = section.get(“param_name"); int numar_aparitii = section.length(“param_name”); String value_i = section.get(“param_name”, i);
4
Ini4J (2/2) Exemplu de fisier .ini:
[important] # sectiunea “important” abcd = # parametrul “abcd” cu valoarea “1234” xyzw = qwerty abcd = abcd = 10 xyzw = pppp p1 = 78 [irrelevant] test = 98
5
Deployment automat al serviciului
Conectare prin SSH pe fiecare masina unde dorim pornirea serviciului Copierea claselor Java (sau a unui JAR cu clasele) pe fiecare masina (prin SCP) Lansarea in executie a unui script pe fiecare masina care porneste serviciul (prin SSH) Variante: Manual (fiecare operatiune de pe fiecare masina se efectueaza manual) Automat (se scrie un program care efectueaza deployment-ul, pe baza unui fisier de configurare a deplyment-ului) Se poate folosi Ini4J si pentru configurarea deployment-ului (nu doar a serviciului) Ganymed-SSH2: biblioteca Java pentru acces SSH / SCP
6
Ganymed-SSH2 (1/3) Connection ssh_conn = new Connection(“fep.grid.pub.ro”); ConnectionInfo ssh_conn_info = ssh_conn.connect(); boolean conn_result = ssh_conn.authenticateWithPassword(“username”, “password"); conn_result = ssh_conn.authenticateWithPublicKey(“username”, new File(ssh_keyfile), “password");
7
Ganymed-SSH2 (2/3) Thread.sleep(100);
Session ssh_sess = ssh_conn.openSession(); String cmdString = “touch newfile; ls"; ssh_sess.execCommand(cmdString); Integer exit_status; do { Thread.sleep(100); exit_status = ssh_sess.getExitStatus(); } while (exit_status == null); System.out.println("exit_status=" + exit_status.intValue()); BufferedReader reader = new BufferedReader(new InputStreamReader(ssh_sess.getStdout())); String line; while ((line = reader.readLine()) != null) { System.out.println(“stdout line: " + line); } ssh_sess.close();
8
Ganymed-SSH2 (3/3) SCPClient scp_client = ssh_conn.createSCPClient();
String local_files[] = new String[2]; local_files[0] = "/cale_completa/fisier1"; local_files[1] = “cale_completa/fisier2"; scp_client.put(local_files, “dir1/dir2/dir3"); // la put se poate folosi cale relativa (la home-ul user-ului) sau cale completa
9
Testarea serviciului (1/3)
2 tipuri de testari: Validare: verificam ca serviciul functioneaza corect (nu neaparat si performant) Teste de performanta (teste de stress) Se testeaza caracteristicile de performanta ale serviciului Etapa 1: Configurarea serviciului si a parametrilor de test (numar clienti, numar instante serviciu, locatie deployment, parametrii serviciului ce vor fi utilizati pe durata testului, etc.) Etapa 2: Deployment Deployment-ul instantelor serviciului pe masinile stabilite + pornirea lor Deployment-ul clientilor pe masinile stabilite + lansarea in executie a clientilor Se pot porni intercalat instante si clienti, in functie de test (de ex., daca testam load balancing => cand pornim o instanta noua, unii dintre clientii vechi ar putea migra la instanta noua)
10
Testarea serviciului (2/3)
Etapa 3: Clientii si instantele serviciului masoara metrici de performanta, pe care le fac apoi accesibile pentru a vizualiza progresul testului Metricile pot fi accesibile in timpul testului (de preferat) sau abia la finalul testului Etapa 4: La finalul testului se opresc clientii si instantele serviciului care au fost testate
11
Testarea serviciului (3/3)
Testare de validare: Deployment-ul poate fi simplu (se ruleaza totul pe localhost) Vizualizarea metricilor poate fi simpla (la stdout / stderr) Teste de performanta: Deployment automat pe mai multe masini (atat pentru instantele serviciului, cat si pentru clienti) Publicarea metricilor de performanta printr-un sistem de monitorizare (de ex., MonALISA)
12
Link-uri utile Ini4J: http://ini4j.sourceforge.net/
Ganymed-SSH2:
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.