Configurarea, deployment-ul automat si testarea serviciilor

Slides:



Advertisements
Similar presentations
Noua generaţie de clienţi. Noua generaţie de clienţi este aici.
Advertisements

În general exist ă 2 forme mari de conservare : “in situ” şi “ex situ” 1. Conservarea “ in situ” Aceast ă metod ă de conservare const ă în.
WP 4: Campania de măsurători. Măsurătorile pilot au început în August 2006 pentru stabilirea celor mai adecvate echipamente şi metode de măsurare în locuinţe.
Caracteristici ale corpurilor cu viata
Present Perfect Continuous prezentare. schema Afirmativ: S + have/has + been + V-ing… Negativ: S + have/has + not + been + V-ing… Interogativ: have/has.
POSTA ELECTRONICA Ana-Maria Tache Ioana Cristina Ciufu.
Ionuţ Hrubaru: In Memory Databases Ionuţ Hrubaru: Iaşi,
NATIONAL DAYS OF JOBS IN ROMANIA
Subinterogări multiple
Oracle Academy Lead Adjunct
IntraShip inovatie, flexibilitate, rapiditate.
Funcţii Excel definite de utilizator (FDU) în VBA
Placa de bază.
Căutarea şi regăsirea informaţiei.
LOREDANA POPASAV.
PASII INSTALARII SISTEMULUI DE OPERARE
Dispozitive de stocare
CONFIGURAREA SWITCHURILOR
Arhitectura serviciilor web
Structura pipeline a unui procesor MIPS
Ionuț Dobre SSA Value co-creation from the consumer perspective Steve Baron Gary Warnaby Ionuț Dobre SSA
Căutarea şi regăsirea informaţiei.
Paxos Made Simple Autor: Puşcaş Radu George
Gestionarea datelor stiintifice
Date Semistructurate, C12. Oracle / OR (2) Date Semistructurate,
Sistemul de salarizare pentru funcţionarii publici şi cele mai recente tendinţe ale reformei Germania.
Design and implementation of a virtual shop using the joomla CMS
METODA BACKTRACKING Examenul de bacalaureat 2012
Software product management
CONVERSII INTRE SISTEME DE NUMERATIE
WebSite Social Tema 2 WebSite Social.
Crearea si gazduirea serviciilor
Tipuri structurate Tipul tablou
SUBNETAREA.
Programarea calculatoarelor şi limbaje de programare I Capitolul 8
Aplicatii client-server
Aplicatii Practice ale Microcontrolelor
Formatarea paragrafului
Curs 6 Analize parametrice.
Funcții C/C++ continuare
prof. mrd. Negrilescu Nicolae Colegiul National Vlaicu Voda
Apache WEB Server.
Canalul Forth and Clyde, care leaga Glasgow-ul de coasta vestica, a fost construit in 1777 intre portul Grangemouth si Falkirk. Intre Falkirk si Edinburgh.
Microsoft Office Word Lucrul cu documente mari
AUTOMOBILUL ELECTRIC UNIVERSITATEA POLITEHNICA
Crearea si gazduirea serviciilor
INTERNET SERVICII INTERNET.
Mic ghid pentru crearea unei prezentari PowerPoint
Past Perfect Continuous
Forms (Formulare).
Windows Communication Foundation (WCF)
Îmbunătăţirea serviciilor publice prin intermediul Chartelor de Servicii: Elaborarea şi implementarea Planurilor de Acţiune pentru Îmbunătăţirea Serviciilor.
A great way to create a channel of communication
Functia de documentare
Administrarea reţelelor de calculatoare
SOAP -Simple Object Access Protocol-
Folosirea de către companii a Twitter, Facebook şi LinkedIn
Microsoft Office Word Lucrul cu documente mari
Programarea in limbajul Java 2004 Lecturer: Gavrila Cristian
Realizarea prezentarilor cu Microsoft PowerPoint
Crearea unei aplicatii Windows Forms simple
Student:Dvornic Mihaela Grupa:342 C5
Aplicaţii specializate pentru realizarea unei prezentări – PowerPoint
Review blog culianu.wordpress.com
Componenta Managementul Investitiilor
- calitatea serviciului de internet -
Microsoft PowerPoint.
Despre lamaie.net De ce sunt lamaile acre? Realizatori: Cristina Cazan
Tabele WEB.
Administrare Oracle 9i Suport de curs
Presentation transcript:

Configurarea, deployment-ul automat si testarea serviciilor Mugurel Ionuț Andreica 2012

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

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);

Ini4J (2/2) Exemplu de fisier .ini: [important] # sectiunea “important” abcd = 1234 # parametrul “abcd” cu valoarea “1234” xyzw = qwerty abcd = 456789 abcd = 10 xyzw = pppp p1 = 78 [irrelevant] test = 98

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

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");

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();

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

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)

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

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)

Link-uri utile Ini4J: http://ini4j.sourceforge.net/ Ganymed-SSH2: http://www.cleondris.ch/opensource/ssh2/