Interviu DEVOPS
Interviu DEVOPS
Git
Jenkins
Selenium
Păpuș ă
Chef
Ansible
Nagios
Docker
Monit
ELK–Elasticsearch, Logstash, Kibana
Collectd/Colectează
Git(GitHub)
3. Care sunt operaț iunile de bază ale DevOps în ceea ce priveș te dezvoltarea ș i infrastructura?
Beneficii tehnice:
Agil
Devops
Python
10. Cum este DevOps util pentru dezvoltatori?
12. Care sunt principalele diferenț e dintre sistemele de operare Linux ș i Unix?
Unix:
Linux:
13. Cum ne putem asigura că noul serviciu este pregătit pentru produsele lansate?
Sistem de backup
Planuri de recuperare
Împărț irea încărcării
Monitorizare
Logare centralizată
Avantajele sunt:
Oferiț i carierei dumneavoastră un mare impuls trecând prin programul nostruVideoclipuri de instruire DevOps!
17. Cele mai bune 10 abilităț i pe care o persoană ar trebui să le aibă pentru poziț ia de DevOps?
18. Explicaț i cum este procesată sau executată implementarea 'Infrastructure as code' în
termeni de AWS.
În AWS,
OBȚ INE
CAP
Pune
POST
PATCH
Ș terge
URMĂRIRE
CONECTEAZĂ
OPȚ IUNI
[Link]
Întrebări de bază
1)DevOps ! Cum ai putea să-l defineș ti în cuvintele tale?
Este o colaborare zilnică extrem de eficientă între dezvoltatorii de software ș i operaț iunile IT
inginerii de operaț iuni web pentru a produce un sistem funcț ional sau a lansa software.
Companiile se confruntă acum cu necesitatea de a livra aplicaț ii mai rapide ș i mai bune.
pentru a răspunde cerinț elor din ce în ce mai presante ale utilizatorilor conș tienț i de a reduce 'Timpul la'
Piaț ă. Devops ajută adesea ca desfăș urarea să aibă loc foarte repede.
Scrum este folosit pentru a gestiona dezvoltarea complexă a software-ului ș i a produselor, folosind abordări iterative ș i
practici incrementale. Scrum are trei roluri, adică proprietarul produsului, maestrul Scrum ș i echipa.
Întrebări tehnice
6)Ai lucrat cu containere?
Containerele sunt o formă de virtualizare uș oară, mai grea decât chroot, dar mai uș oară decât
hypervizori. Aceș tia oferă izolare între procese în timp ce folosesc acelaș i nucleu ca gazda
maș ină ș i funcț ionalitatea cgroups în cadrul nucleului. Dar formatele de containere diferă între ele
într-un mod în care unele oferă o experienț ă mai asemănătoare cu VM, în timp ce altele sunt contorizate
doar aplicaț ie.
Containerele LXC sunt cele mai asemănătoare cu VM-urile ș i cele mai grele, în timp ce Docker era folosit mai mult pentru
uș or ș i a fost iniț ial proiectat pentru un singur container de aplicaț ie. Dar în mai multe
versiunile recente Docker a introdus funcț ii de containerizare a întregii maș ini, aș a că acum
Docker poate fi folosit în ambele feluri. Există, de asemenea, rkt de la CoreOS ș i LXD de la Canonical,
care se bazează pe LXC.
În prezent, există mai multe limbaje de scripting disponibile, aș a că întrebarea care apare este: care este
cea mai potrivită limbă pentru abordarea DevOps? Pur ș i simplu totul, depinde de
contextul proiectului ș i uneltele utilizate, de exemplu, dacă s-a folosit Ansible, este bine să fie
cunoș tinț e în Python ș i dacă este pentru Chef, este pe Ruby.
SaaS este un software care rulează pe reț ea pe un server la distanț ă ș i are doar utilizator.
interfaț a expusă utilizatorilor, de obicei în browserul web. De exemplu [Link].
Infrastructura ca serviciu este un mediu cloud care expune VM utilizatorului pentru a fi utilizat ca întreg.
OS sau container unde ai putea instala orice ai instala pe serverul tău.
Un exemplu în acest sens ar fi OpenStack, AWS, Eucalyptus.
PaaS le permite utilizatorilor să îș i desfăș oare propria aplicaț ie pe platforma preinstalată, de obicei
cadru al serverului de aplicaț ii ș i suită de unelte pentru dezvoltatori. Exemple pentru aceasta ar fi
OpenShHeroku.
16) Care sunt cele mai uș oare moduri de a construi un mic nor?
VMfest este una dintre opț iunile pentru crearea unui cloud IaaS din VM-uri VirtualBox în niciunul
timp. Dacă doriț i un PaaS uș or, există Dokku, care este practic un script bash care
transformă containerele Dokku în PaaS.
AWS oferă un set de servicii flexibile concepute pentru a permite companiilor să creeze ș i
livraț i produse cu o viteză ș i fiabilitate mai mari folosind AWS ș i practici DevOps.
Aceste servicii simplifică punerea în funcț iune ș i gestionarea infrastructurii, codul aplicaț iei
implementare, proces de eliberare automată a software-ului ș i monitorizarea aplicaț iei ș i
performanț a infrastructurii. Amazon a folosit instrumente precum AWS CodeCommit, AWS
CodeDeploy, AWS CodePipeline etc, care ajută la simplificarea devops-ului.
Ce este EC2?
Amazon EC2 Container Service (ECS) este un serviciu de gestionare a containerelor foarte scalabil
ș i performanț ă ridicată care susț ine containerele Docker ș i îț i permite să rulezi cu uș urinț ă
aplicaț ii pe un cluster gestionat de instanț e Amazon EC2.
Serviciul EC2 este inseparabil de conceptul de Imagine a Maș inii Amazon - AMI.
Mai este într-adevăr imaginea unei maș ini virtuale care va fi executată. EC2 bazat pe
Virtualizarea XEN, de aceea este destul de uș or să mutaț i serverele XEN pe EC2.
19) Găsiț i vreo avantaje în utilizarea unei baze de date NoSQL faț ă de
RDBMS?
Aplicaț iile web tipice sunt construite cu o arhitectură în trei niveluri. Pentru a suporta încărcătura, mai multe
Serverele web sunt pur ș i simplu adăugate în spatele unui echilibrator de sarcină pentru a susț ine mai mulț i utilizatori. Capacitatea
scalarea în sus este un principiu cheie în lumea cloud computing-ului, din ce în ce mai important
în care instanț ele VM pot fi adăugate sau eliminate cu uș urinț ă pentru a răspunde cererii.
Cu toate acestea, când vine vorba de stratul de date, bazele de date relaț ionale (RDBMS) nu permit
o trecere la scala simplă ș i nu oferă un model de date flexibil. Gestionează mai mult
utilizatorii înseamnă adăugarea de servere mai multe ș i serverele mari sunt foarte complexe, proprietarii ș i
disproporț ionat de scump, în contrast cu hardware-ul de low-cost, „comercial”
hardware", arhitecturi în cloud. Organizaț iile încep să observe performanț a
probleme cu bazele lor de date relaț ionale pentru aplicaț ii existente sau noi. Mai ales pe măsură ce
numărul utilizatorilor creș te, ei îș i dau seama de necesitatea unei baze mai rapide ș i mai flexibile. Acest
este timpul să înceapă să evalueze ș i să adopte baze de date NoSQL ca în aplicaț iile lor web.
20) Care sunt principalele dificultăț i de migrare de la SQL la NoSQL?
Fiecare înregistrare într-o bază de date relaț ională conform unei scheme - cu un număr fix de câmpuri
(coloane) fiecare având un obiect specificat ș i un tip de date. Fiecare înregistrare este la fel. The
datele sunt denormalizate în mai multe tabele. Avantajul este că există mai puț ine date duplicat
în baza de date. Dezavantajul este că o schimbare în model înseamnă efectuarea mai multor
„ALTER TABLE” care necesită blocarea costisitoare a mai multor tabele simultan pentru a asigura că
schimbarea nu lasă baza de date într-o stare inconsistentă.
Cu datele din baze de date, pe de altă parte, fiecare document poate avea un conț inut complet diferit
structură din alte documente. Nu este necesară gestionarea suplimentară a bazei de date pentru
gestionaț i modificările în scheme.
model de date flexibil datele pot fi introduse fără un schema definită ș i formatul de
datele care sunt inserate pot fi schimbate în orice moment, oferind o flexibilitate extremă, care
în cele din urmă oferă o agilitate semnificativă afacerii
Consistent , high-performance Advanced NoSQL database technologies are putting
cache datele, transparent, în memoria sistemului; un comportament care este complet
transparenț i pentru dezvoltator ș i echipa responsabilă de operaț iuni.
Unele baze de date NoSQL cu scalabilitate uș oară propagă automat datele între
servere, fără a necesita aplicaț ii de participare. Serverele pot fi adăugate ș i eliminate
fără întrerupere a aplicaț iilor, cu date ș i I/O distribuite pe mai multe
servere.
Ce este Kickstart?
Este o modalitate de a instala sisteme bazate pe Red Hat într-un mod automat. În timpul instalării manuale
proces, instalatorul Anaconda creează fiș ierul [Link] care poate fi folosit apoi
cu instrumentul system-config-kickstart pentru a instala aceeaș i configuraț ie automat pe mai multe
sisteme.
26) Care sunt uneltele pentru monitorizarea reț elelor? Enumeraț i câteva.
De exemplu, Nagios, Icinga 2, OpenNMS, Splunk ș i Wireshark. Aceste instrumente sunt folosite
pentru a monitoriza traficul de reț ea, calitatea reț elei ș i a detecta problemele de reț ea chiar înainte de
ele apar. Dintre cele listate, doar Splunk este proprietar, celelalte sunt open source.
27)What is Juju ?
Juju este un instrument de orchestrare, în principal pentru Ubuntu, pentru gestionare, provisionare ș i
configurare pe sistemele Ubuntu. A fost scris iniț ial în Python ș i de atunci a fost
rescris în Go.
Playbook-urile Ansible sunt scrise în formatul de serializare a datelor YAML. Dacă nu ș tii
ce este un format de serializare a datelor, gândeș te-te la el ca la o modalitate de a traduce datele programatice
structură (liste, vectori, dicț ionare, etc.) într-un format care poate fi uș or stocat pe disc.
Fiș ierul poate fi folosit pentru a recrea structura la un moment ulterior. JSON este altul
format de serializare a datelor popular, dar YAML este mult mai uș or de citit.
Să ne uităm la un playbook de bază care ne permite să instalăm o aplicaț ie web (nginx) într-un
mai mulț i gazde :
hosts: webservers
tasks:
- name: Installs nginx web server
apt: pkg=nginx stare=instalată actualizare_cache=adevărat
notify:
- porneș te nginx
handlers:
- name: start nginx
service: name=nginx state=started
Fiș ierul hosts :(prin default sub /etc/ansible/hosts) acesta este fiș ierul Inventar Ansible, ș i
stochează gazdele ș i asocierea lor cu grupurile de gazde (servere web, baze de date etc.)
[webservers] [Link]
exemplu de stabilire a unui inventar de gazde prin adresă IP.
de asemenea, demonstrează cum să setaț i variabile pe fiecare gazdă.
[repository_servers] example-repository
#exemplu de setare a unui gazd prin numele gazdei. Necesită căutare locală în /etc/hosts
# sau DNS.
[dbservers] db01
Cheia SSH: Pentru prima rulare, va trebui să îi spunem lui ansible parolele SSH ș i Sudo.
because one of the thing that the common role does is to configure passwordless sudo,
ș i să implementeze o cheie SSH. Aș adar, în acest caz, ansible poate executa comenzile playbook-ului în
nodiile remote (gazdele) ș i implementaț i aplicaț ia web nginx.
• Jenkins
Nagios
• Monitor
• ELK (Elasticsearch, Logstash, Kibana)
io
Jenkins
• Docker
Ansible
• Git
Collectd/Collectl
38) Menț ionează în ce caz ai folosit SSH?
Am folosit SSH pentru a mă conecta la o mașină remote și a lucra pe linia de comandă. Pe lângă asta, am
de asemenea, l-a folosit pentru a străpunge sistemul pentru a facilita comunicații securizate criptate între
două gazde neîncrezătoare peste o rețea nesigură.
Explică cum ai gestiona controlul versiunilor.
Abordarea mea pentru a gestiona controlul versiunilor ar fi să postez codul pe SourceForge sau GitHub pentru
toată lumea poate să-l vizioneze. De asemenea, voi posta lista de verificare de la ultima revizie pentru a mă asigura că orice
problemele nerezolvate sunt rezolvate.
40) Menț ionaț i care sunt tipurile de cereri Http?
Tipurile de cereri Http sunt
• OBȚINE
• CAP
• PUNE
• POST
• PATCH
• ȘTERGE
• URMĂRIȚI
• CONECTEAZĂ
• OPȚIUNI
[Link]
Este esenț ial să luăm în considerare rolurile în care candidatul a activat ș i sarcinile
că candidatul a realizat, chiar dacă acestea nu sunt strict necesare în cazul tău
organizaț ie sau în rolul pentru care este intervievat. Dacă prospectul nu
menț ionează uneltele exacte pe care le foloseș ti în prezent, urmate de întrebări despre acestea
unelte ș i sarcini pentru a avea o idee bună despre capacitatea sa de a asimila cunoș tinț e de asemenea
ca dependenț ele generale de operare ale acestuia sau ale acesteia. Candidaț ii buni vor fi întotdeauna
demostra o înț elegere profundă în domeniul operaț iunilor lor în timp ce altele vor
răspunde cu răspunsuri superficiale la întrebările de urmărire detaliate.
Această întrebare este critică pentru orice poziț ie DevOps. Pe măsură ce tot mai multe echipe DevOps
pe măsură ce ne îndreptăm spre automatizarea ș i adoptarea celor mai bune practici de livrare continuă, este crucial
pentru a evalua dacă candidatul se simte confortabil să discute despre desfăș urarea codului ș i
dacă el sau ea înț elege cum toate cele disponibileintegrare continuă
unelteș iInstrumente DevOpspotriviț i. Dacă aveț i o tablă de desen disponibilă, lăsaț i-l sau
îi construieș te un diagramă pentru tine.
În funcț ie de răspunsurile pe care le primeș ti, poț i dezvolta linii suplimentare de întrebare.
dinamic. De exemplu: “Ai o bază de date în stivă?” “Cum faci tu
["actualizaț i schema?","Ce teste efectuaț i ș i cum le rulaț i?","Dacă toate testele"]
treci, cum este codul implementat în producț ie?" "Cum te asiguri că faci asta?
nu pierde trafic în timpul desfăș urării?
Desigur, desfăș urările eș uate sunt o ocorrenț ă prea comună atunci când desfăș urăm
inginerii DevOps trebuie să fie extrem de implicaț i - trebuie să ș tie când
ceva a mers prost ș i apoi depanarea problemei cât mai repede posibil.
O modalitate bună de a evalua adecvarea unui candidat este să-i ceri să povestească istoria
o implementare eș uată ș i modul în care a fost gestionată. Întrebările specifice de urmărire pot
Cum ș tii că a existat o eș uare a desfăș urării?
în mod automat?” ș i “Ce criterii folosiț i?”
Din nou, ai putea folosi tactica povestirii: „Spune-mi despre o criză în producț ie care
ai avut, cum ai devenit constient de el ș i cum a fost rezolvat.” O poveste bună de război este
întotdeauna iluminator – te va ajuta să evaluezi nu doar cât de pricepuț i sunt candidaț ii
sunt în monitorizare, dar ș i cum gestionează crizele (presupunând că spun adevărul, de
curs).
Este o idee bună să schimbi comanda bash pe măsură ce primeș ti răspunsurile. Dacă simț i
întrebările sunt prea uș oare, încearcă să ridici ș tacheta cu întrebări bash mai avansate.
exemplu, care este diferenț a între 'cmd1 ; cmd2' ș i 'cmd1 && cmd2'?
You might want to prepare a quiz sheet with a list of five to ten commands. This way,
candidatul va găsi mai uș or să răspundă.
6. Fără a folosi Docker, poț i vedea procesele care rulează în interiorul unui container?
din afară?
Ok, am înș elat aici. Nu fiecare companie foloseș teDockersau chiar containere deloc, aș a că
aceasta întrebare este un pic specifică tehnologiei. Pe baza expertizei noastre ș i a datelor
înSondajul DevOps Pulse 2016pe care l-am lansat recent, din ce în ce mai mult
companiile se deplasează către microservicii ș i arhitecturi containerizate. Aș adar, am adăugat
această întrebare pe lista.
Desigur, această întrebare este menită să determine dacă candidatul înț elege cum
containerizarea funcț ionează. În loc să întrebăm „Cum funcț ionează containerele?” sau „Ce este un
Imagine Docker?
„înț elege” asta. Alte întrebări pot include „Cum funcț ionează legarea containerelor?” sau „Cum
ș i de ce ai optimiza un Dockerfile?
Aceasta este o altă întrebare menită să evalueze înț elegerea sistemului de către candidat ș i
Expertiză Linux.
Mulț i candidaț i nu vor ș ti răspunsul la această întrebare, în timp ce alț ii vor oferi
o modalitate bună de a separa grâul de neghină în DevOps este să
verifică dacă candidatul explică doar că comanda afiș ează ruta pe care o urmează pachetele
către gazda reț elei sau dacă el sau ea se adânceș te ș i în "cum."
Chiar dacă nu primeș ti un răspuns corect ș i complet, această întrebare este una bună
punct de plecare pentru o conversaț ie mai profundă în care poț i face un brainstorming cu
candidat. În acest proces, poț i încerca să găseș ti posibilităț i valide ș i să excludi
invalide pe baza unei înț elegeri solide a rutării IP.
Un alt exemplu de întrebare bună pentru a face networking pe care o folosesc adesea: „Care este
diferenț a dintre a încerca să te conectezi la un port care nu este ascultat faț ă de
la unul care este protejat prin firewall în termenii TCP?
Urmăriri utile: „Este posibil să observi o încărcare mare cu o utilizare scăzută a CPU-ului?” „Dacă da,
{"reason":"Ce ar putea fi motivele?","check":"Cum ai verifica?"}
Ideea principală a testului FizzBuzz este de a observa cum un dezvoltator gestionează o programare uș oară
sarcină. Simulările în direct sunt o modalitate bună de a vedea cât de repede reacț ionează inginerii.
ei, cât de bine înț eleg o sarcină simplă ș i apoi o transpun în cod.
DevOps este un termen nou apărut în domeniul IT, care nu este nimic altceva decât o practică ce subliniază colaborarea ș i
comunicarea atât a dezvoltatorilor de software, cât ș i a altor profesioniș ti în tehnologia informaț iei (IT). Scopul său este
stabilirea unei culturi ș i a unui mediu în care construirea, testarea ș i lansarea de software să se poată desfăș ura rapid,
frecvent ș i mai fiabil.
DevOps se concentrează pe 4 domenii principale în IT?
1. Cultură.
2. Organizaț ie (stil inclusiv roluri).
3. Procese.
4. Unelte.
Care sunt cele nouă lucruri care constituie Dev & Ops?
Infrastructură automatizată
- Controlul versiunii partajat
- Metrici partajaț i
- Împărț iț i codul cu steaguri
- Botii IM IRC
Atitudine sănătoasă faț ă de eș ec
- Trust and respect
Nu-i învinovăț i pe ceilalț i
Este un termen nou emergent în domeniul IT, care nu este altceva decât o practicã care puntează
colaborarea și comunicarea atât a dezvoltatorilor de software, cât și a altor informații-
profesioniști în tehnologia informației (IT). Se concentrează pe livrarea produsului software mai repede și pe reducerea
rata de eșec a lansărilor.
2) Menț ionaț i care sunt aspectele cheie sau principiul din spatele DevOps?
Infrastructure ca cod
Dezvoltare continuă
Automatizare
Monitorizare
Security
3) Care sunt operaț iunile de bază ale DevOps în dezvoltarea aplicaț iilor ș i cu
infrastructură?
În AWS,
O limbaj de scripting mai simplu va fi mai bun pentru un inginer DevOps. Python pare a fi foarte
popular
DevOps poate fi util dezvoltatorilor pentru a corecta erorile și a implementa rapid noi funcționalități.
de asemenea, ajută la o comunicare mai clară între membrii echipei.
Jenkins
Nagios
Monitor
ELK (Elasticsearch, Logstash, Kibana)
io
Jenkins
Docker
Ansible
Git
Collectd/Collectl
8) Menț ionează în ce situaț ie ai folosit SSH?
Am folosit SSH pentru a mă conecta la o mașină la distanță și pentru a lucra în linia de comandă. Pe lângă aceasta,
De asemenea, l-am folosit pentru a tăia tuneluri în sistem pentru a facilita criptarea sigură.
comunicările între două gazde necontriocute pe o rețea nesigură.
GET
CAP
PUNE
POST
PATCH
ŞTERGE
URMĂRE
CONEXIUNE
OPTIONS
11) Explicaț i ce aț i verifica dacă un server de construire Linux începe brusc să devină lent?
Dacă un server de construire Linux începe brusc să devină lent, vei verifica următoarele trei lucruri
Verificaț i fiș ierul jurnal al aplicaț iei SAU fiș ierul jurnal al serverului de aplicaț ii, probleme de performanț ă a sistemului,
Verifică jurnalele HTTP, jurnalele tomcat etc. sau verifică jurnalele jboss, weblogic pentru a vedea dacă aplicaț ia
Depanare la nivel de sistem timpul de răspuns/receptie este problema pentru încetinire, scurgerea de memorie a oricărei aplicaț ii
Dependent Services
diagnosticare a problemelor Probleme legate de antivirus, Probleme legate de firewall, Probleme de reț ea, Răspuns server SMTP
/usr/lib/nux/unity_support_test-p
va oferi un output detaliat despre cerințele Unity și dacă acestea sunt îndeplinite, atunci videoclipul tău
cardul poate rula unity.
14) Care este modalitatea mai rapidă de a deschide un terminal Ubuntu într-un anumit director?
Pentru a deschide terminalul Ubuntu într-un director anume, poți folosi un scurtătură personalizată de taste.
Pentru a face asta, în câmpul de comandă al unei noi tastaturi personalizate, scrie genome–terminal– –
working–directory = /path/to/dir.
15) Explicaț i cum puteț i obț ine culoarea curentă a ecranului curent pe desktopul Ubuntu?
Puteți deschide imaginea de fundal în The Gimp (editor de imagini) și apoi folosi pipeta.
un instrument pentru a selecta culoarea pe un punct specific. Îți oferă valoarea RGB a culorii de la acel punct
punct.
Memcache ajută la
• Tokeni CAS:A CAS token is attached to any object retrieved from cache. You can use
acele token pentru a salva obiectul actualizat.
• Callbacks: Simplifică codul
• getDelayed: Reduce timpul de așteptare al scriptului tău, care așteaptă să vină rezultatele.
înapoi de la server
• Protocol binarPuteți utiliza protocolul binar în loc de ASCII cu clientul mai nou
• Igbinary:Anterior, clientul obișnuia să facă serializarea valorii cu date complexe.
dar cu Memcached poți folosi opțiunea igbinary.
19) Explicaț i dacă este posibil să partajaț i o singură instanț ă a unui Memcache între mai multe
proiecte?
Da, este posibil să împărtășești o singură instanță de Memcache între mai multe proiecte.
Memcache este un spațiu de stocare în memorie și poți rula memcache pe unul sau mai multe servere.
De asemenea, poți configura clientul să comunice cu un set specific de instanțe. Așa că, poți rula
două procese diferite Memcache pe aceeași gazdă și totuși sunt complet
independent. Cu excepția cazului în care ți-ai partitionat datele, atunci devine necesar să știi
from which instance to get the data from or to put into.
20) Aveț i mai multe servere Memcache, în care unul dintre serverele memcacher eș uează,
ș i are datele tale, va încerca vreodată să obț ină datele cheie de la acel server eș uat?
Datele de pe serverul eșuat nu vor fi șterse, dar există o prevedere pentru eșec automat.
pe care îl poți configura pentru mai multe noduri. Comutarea pe rezervă poate fi declanșată în timpul oricărui tip de
erori la nivelul serverului socket sau Memcached și nu în timpul erorilor normale ale clientului, cum ar fi adăugarea unui
cheie existentă, etc.
• Ș tergerea cache-ului în mod proactiv:Ștergerea cache-ului atunci când se face o inserție sau o actualizare
• Resetarea cache-ului:Este similar cu prima metodă, dar în loc să ștergeți doar cheile
și așteptând următoarea solicitare pentru date pentru a reîmprospăta memoria cache, resetați valorile după
inserați sau actualizați.
23) Explicaț i ce este efectul Dogpile? Cum puteț i preveni acest efect?
Efectul dogpile se referă la evenimentul când cache-ul expiră, iar site-urile sunt supuse unui atac de trafic.
mai multe cereri făcute de client în același timp. Acest efect poate fi prevenit prin
utilizând un blocaj semafor. În acest sistem, când valoarea expiră, primul proces obține blocajul
și începe să genereze o nouă valoare.
25) Când serverul se închide, datele stocate în Memcached mai sunt disponibile?
Datele stocate în Memcached nu sunt durabile, așa că, dacă serverul este oprit sau repornit, atunci toate
datele stocate în Memcached sunt șterse.
GIT este un instrument de control al versiunilor foarte popular în comunitatea software. Multe organizații Fortune 500
folosiți GIT. Această carte conține întrebări de interviu GIT de la nivel de bază la nivel expert pe care le pune un intervievator.
Fiecare întrebare este însoțită de un răspuns, astfel încât să te poți pregăti pentru interviul de angajare pe scurt.
timp.
Am compilat această listă de întrebări GIT după ce am participat la zeci de interviuri tehnice în top-
companii de top precum - Google, Facebook, Ebay, Amazon etc.
[Link]
Ce este ANT?
Ans. Forma completă a ANT este Un Alt Instrument Necesitat. Ant este un instrument de construire bazat pe Java. Un instrument de construire
[Link] oferă două modele de mesagerie, publicare ș i abonare ș i coadă punct la punct.
[Link] este un acronim folosit pentru Java Messaging Service. Este răspunsul Java pentru crearea de software
utilizând mesagerie asincronică. Este una dintre specificaț iile oficiale ale tehnologiilor J2EE
ș i este o tehnologie cheie.
[Link] este de natură asincronă. Astfel, nu toate componentele trebuie să fie active tot timpul pentru ca
aplicaț ia pentru a funcț iona ca un întreg. Chiar dacă receptorul este oprit, MOM va stoca mesajele
în numele său ș i le va trimite odată ce va reveni. Astfel, cel puț in o parte a aplicaț iei poate
încă funcț ionează ca ș i cum nu ar exista blocaje.
[Link] este un mesaj uș or, având doar antet ș i proprietăț i ș i fără conț inut.
Astfel, dacă receptorii trebuie să fie informaț i despre un eveniment ș i nu este necesar să se schimbe date,
atunci folosind Mesajul poate fi foarte eficient.
Întrebarea 9. Care este diferenț a de bază între modelul Publicare-Abonare ș i modelul P2P?
Modelul Publish Subscribe este utilizat de obicei într-o situaț ie de tip unu-la-mulț i. Este nesigur, dar foarte
rapid. Modelul P2P este folosit în situaț ii unu la unu. Este foarte fiabil.
[Link] contains instance of [Link] as it's payload. Thus it is very useful for
schimbul de date textuale. Poate fi folosit ș i pentru schimbul de date complexe de caractere, cum ar fi
un document XML.
Un obiect care conț ine datele care sunt transferate între clienț ii JMS.
Întrebarea 17. Ce este o coadă JMS?
O zona de pregătire care conț ine mesaje care au fost trimise ș i aș teaptă să fie citite.
Reț ineț i că, spre deosebire de ceea ce sugerează numele coadă, mesajele nu trebuie să fie livrate în
comanda trimisă. Dacă piscina bean-urilor conduse de mesaje conț ine mai mult de o instanț ă, atunci
mesajele pot fi procesate concurent ș i, prin urmare, este posibil ca un mesaj mai târziu să fie
prelucrat mai devreme decât unul anterior. O coadă JMS garantează doar că fiecare mesaj este
prelucrat doar o dată.
Un mecanism de distribuț ie pentru publicarea mesajelor care sunt livrate mai multor abonaț i.
Întrebare 19. Ce este JMS?
[Link] Message Service (JMS): O interfaț ă implementată de majoritatea containerelor J2EE pentru a oferi
comportamentul de coadă punct-la-punct ș i subiect (publicare/subscriere). JMS este frecvent utilizat de EJB-uri
care trebuie să înceapă un alt proces în mod asincron.
De exemplu, în loc să trimită un email direct dintr-un Enterprise JavaBean, bean-ul poate
alege să pui mesajul pe o coadă JMS pentru a fi gestionat de un Bean condus de mesaje
(o altă formă de EJB) sau un alt sistem din întreprindere. Această tehnică permite EJB-ului să returneze
pentru a gestiona cererile imediat în loc să aș tepte un proces potenț ial lung
complet.
Întrebare 21. Câte modele de mesagerie furnizează JMS ș i care sunt acestea?
[Link] oferă două modele de mesagerie, publicare ș i abonare ș i coada punct la punct.
Întrebare 22. Care este modelul punct-la-punct în JMS?
Un obiect JMS preconfigurat (o fabrică de conexiuni manager de resurse sau o destinaț ie)
creat de un administrator pentru utilizarea clienț ilor JMS ș i plasat într-un spaț iu de nume JNDI.
Răspuns. Cu transmiterea mesajelor prin publicaț ie/subscriere, aplicaț ia/clientul care trimite stabileș te un nume.
subiect în broker/server-ul JMS ș i publică mesaje în această coadă. Clienț ii care primesc
înregistrează-te (în mod specific, abonează-te) prin intermediul brokerului la mesaje pe subiect; fiecare abonat la un subiect
primeș te fiecare mesaj publicat pe acel subiect. Există o relaț ie de tip unu-la-mulț i între
clientul de publicare ș i clienț ii abonaț i.
Întrebare 26. Care sunt părț ile principale ale aplicaț iilor JMS?
Mesajele sunt o metodă de comunicare între componentele software sau aplicaț ii.
Un sistem de mesagerie este o facilitate peer-to-peer: Un client de mesagerie poate trimite mesaje către, ș i
primeș te mesaje de la orice alt client. Fiecare client se conectează la un agent de mesagerie care
oferă facilităț i pentru a crea, trimite, recepț iona ș i citi mesaje.
Mesajele permit comunicarea distribuită care este slab legată. Un component trimite un
mesaj către o destinaț ie, iar destinatarul poate recupera mesajul de la destinaț ie.
Cu toate acestea, expeditorul ș i receptorul nu trebuie să fie disponibili în acelaș i timp pentru a
comunica. De fapt, expeditorul nu trebuie să ș tie nimic despre destinatar; nici nu...
destinatarul trebuie să ș tie ceva despre expeditor. Expeditorul ș i destinatarul trebuie să
ș tiu doar ce format de mesaj ș i ce destinaț ie să folosesc. În acest sens, mesajele diferă
de la tehnologii strâns legate, cum ar fi Invocarea Metodei de la Distanț ă (RMI), care necesită un
aplicaț ie pentru a cunoaș te metodele unei aplicaț ii de la distanț ă.
Întrebarea 29. Care este diferenț a dintre Java Mail ș i JMS Queue?
[Link] este platforma ideală de mesagerie de înaltă performanț ă pentru mesageria intrabusiness, cu întreaga
control programatic asupra calităț ii serviciului ș i opț iunilor de livrare.
JavaMail oferă un numitor comun, lent, dar uș or de citit pentru mesaje utilizând
infrastructura deja disponibilă pe practic fiecare platformă de calcul.
Specificaț ia JMS defineș te mecanisme de tranzacț ie care permit clienț ilor să trimită ș i să primească
grupuri de mesaje logic delimitate ca o unitate unică de informaț ie. O sesiune poate fi marcată
aș a cum a fost tranzacț ionat. Înseamnă că toate mesajele trimise într-o sesiune sunt considerate părț i ale unei
tranzacț ie. Un set de mesaje poate fi confirmat (metoda commit()) sau anulat (rollback())
metodă). Dacă un furnizor suportă tranzacț ii distribuite, se recomandă să folosească XAResource
API.
Un context cu fir unic pentru trimiterea ș i primirea mesajelor JMS. O sesiune JMS poate fi
nefericit, tranzacț ionat local sau participând la o tranzacț ie distribuită.
Întrebare 35. Care este utilizarea JMS? În ce situaț ii folosim JMS? Putem trimite
mesaj de la un server la alt server folosind JMS?
[Link] este platforma ideală de mesagerie de înaltă performanț ă pentru mesageria intra-afaceri, cu capabilităț i complete
control programatic asupra calităț ii serviciului ș i opț iunilor de livrare.
Întrebare 36. Care este diferenț a între subscripț iile durabile ș i cele non-durabile?
Ans. Punct-la-punct (PTP). Acest model permite schimbul de mesaje prin intermediul coadrelor create pentru unele
scopuri. Un client poate trimite ș i primi mesaje dintr-o sau mai multe cozi. Modelul PTP este
mai uș or decât modelul pub/sub.
O abonare durabilă oferă unui abonat libertatea de a primi toate mesajele de la un subiect,
în timp ce o subscripț ie non-durabilă nu face nicio garanț ie cu privire la mesajele trimise de
alț ii când un client a fost deconectat de la un subiect.
Întrebare 37. Care este diferenț a între producătorul de mesaje ș i consumatorul de mesaje?
În modelul Point-To-Point:
În sistemele de mesagerie punct la punct, mesajele sunt rutate către un consumator individual care
menț ine o coadă de mesaje "în curs de sosire". Aplicaț iile de mesagerie trimit mesaje către un
coada specificată, iar clienț ii recuperează mesaje dintr-o coadă.
Întrebare 38. Ce este o aplicaț ie JMS?
Ans. Serviciul de Mesaje Java este o API Java care permite aplicaț iilor să creeze, să trimită, să primească,
ș i citirea mesajelor. Proiectat de Sun ș i mai multe companii partenere, API-ul JMS defineș te o
set comun de interfete si semantica asociata care permit programelor scrise in Java
limbaj de programare pentru a comunica cu alte implementări de mesagerie.
API-ul JMS minimizează setul de concepte pe care un programator trebuie să le înveț e pentru a utiliza produsele de mesagerie
dar oferă suficiente caracteristici pentru a sprijini aplicaț ii de mesagerie sofisticate. De asemenea, îș i propune să
maximizarea portabilităț ii aplicaț iilor JMS între furnizorii JMS în aceeaș i mesagerie
domeniu.
API-ul JMS permite comunicarea care nu este doar slab cuplată, ci ș i
* Asynchronous. A JMS provider can deliver messages to a client as they arrive; a client does not
trebuie să solicit mesaje pentru a le primi.
* Fiabil. API-ul JMS poate asigura că un mesaj este livrat o dată ș i doar o dată. Niveluri mai joase
de fiabilitate sunt disponibile pentru aplicaț ii care îș i pot permite să piardă mesaje sau să primească
mesaje duplicate.
Specificaț ia JMS a fost publicată pentru prima dată în august 1998. Cea mai recentă versiune a JMS
Specificaț ia este Versiunea 1.1, care a fost lansată în aprilie 2002. Puteț i descărca o copie a
Specificaț ie de pe site-ul JMS, [Link]
Întrebare 42. Ce este un client JMS?
Răspuns. Modelul punct-la-punct este utilizat atunci când informaț ia este specifică unui singur client.
de exemplu, un client poate trimite un mesaj pentru o imprimare, iar serverul poate trimite informaț ii înapoi
acestui client după finalizarea lucrării de imprimare.
[Link] permite unui servlet să delege procesarea către un proces batch fie pe acelaș i
maș ină sau pe o maș ină separată. Servletul creează un mesaj ș i îl trimite într-o coadă.
servletul se încheie imediat ș i când procesul de batch este gata, procesează mesajul.
Mesajele sunt, prin urmare, compuse din trei componente principale:
Un Producător creează mesaje ș i le trimite într-o Coadă. Producătorul ar putea fi ceva
ca un Servlet.
O coadă stochează mesajele de la Produse ș i le oferă unui Consumator atunci când este gata.
Coada este implementată de furnizorul de mesaje.
Un Consumator procesează mesajele pe măsură ce devin disponibile în Coada. Consumatorul este
de obicei un bean care implementează interfaț a MessageListener.
Întrebare 48. Care este diferenț a dintre Message Byte ș i Message Stream?
[Link] Mesajul stochează datele în octeț i. Astfel, mesajul este un flux continuu de octeț i.
În timp ce Mesajul Stream menț ine o limită între diferitele tipuri de date stocate
deoarece stochează ș i informaț iile despre tip împreună cu valoarea primitivelor stocate.
Mesajul Bytes permite citirea datelor folosind orice tip. Astfel, chiar dacă încărcătura ta conț ine un lung
valoare, poț i invoca o metodă pentru a citi un scurt ș i îț i va returna ceva. Nu va da
ai un set de date semantic corect, dar apelul va reuș i să citească primele două octeț i de date.
This is strictly prohibited in the Stream Message. It maintains the type information of the data
fiind stocată ș i impune reguli stricte de conversie asupra datelor citite.
Întrebare 49. Eș ti conș tient de vreo produs major JMS disponibil pe piaț ă?
Seria MQ a IBM este unul dintre cele mai populare produse utilizate ca Middleware orientat pe mesaje.
Unele dintre celelalte produse sunt SonicMQ, iBus etc. Serverul de aplicaț ii Weblogic vine de asemenea cu
suport încorporat pentru mesageria JMS.
Întrebare 50. Care sunt diferitele tipuri de mesaje disponibile în API-ul JMS?
Ans.Când API-ul JMS a fost introdus în 1998, cel mai important scop al său a fost să permită Java
aplicaț ii pentru a accesa sistemele existente de middleware orientat pe mesaje (MOM), cum ar fi
MQSeries de la IBM. De atunci, mulț i furnizori au adoptat ș i implementat JMS
API, astfel încât un produs JMS să poată oferi acum o capacitate completă de mesagerie pentru o întreprindere.
De la versiunea 1.3 a platformei J2EE ("platforma J2EE 1.3"), API-ul JMS a fost un
parte integrantă a platformei, iar dezvoltatorii de aplicaț ii pot folosi mesagerie cu componente
folosind API-urile J2EE ("componente J2EE").
API-ul JMS în platforma J2EE are următoarele caracteristici.
* Clienț ii aplicaț iei, componentele Enterprise JavaBeans (EJB) ș i componentele web pot trimite
sau să primească sincronic un mesaj JMS. Clienț ii aplicaț iei pot, de asemenea, să primească JMS
mesaje asincron. (Applet-urile, totuș i, nu sunt obligate să suporte API-ul JMS.)
Boabele orientate pe mesaje, care sunt un tip de boabe de întreprindere, permit comunicarea asincronă
consumul de mesaje. Un furnizor JMS poate implementa opț ional procesarea concurentă a
mesaje de către boabe conduse de mesaje.
* Mesajele trimise ș i primite pot participa la tranzacț ii distribuite.
API-ul JMS îmbunătăț eș te platforma J2EE prin simplificarea dezvoltării de întreprindere, permiț ând dezvoltarea laxă
interacț iuni cuplată, fiabile, asincrone între componente J2EE ș i sisteme legate
capabil să trimită mesaje. Un dezvoltator poate adăuga cu uș urinț ă un nou comportament unei aplicaț ii J2EE cu
evenimente de afaceri existente prin adăugarea unei noi boabe bazate pe mesaje pentru a opera pe probleme specifice de afaceri
evenimente. Arhitectura containerului EJB a platformei J2EE, în plus, îmbunătăț eș te API-ul JMS prin
oferind suport pentru tranzacț ii distribuite ș i permiț ând consumul concurent de
mesaje.
O altă tehnologie a platformei J2EE, Arhitectura Connector J2EE, oferă o integrare strânsă
între aplicaț iile J2EE ș i sistemele existente de Informaț ii Empresariales (EIS). API-ul JMS, pe
pe de altă parte, permite o interacț iune foarte slab legată între aplicaț iile J2EE ș i cele existente
Sisteme EIS.
La versiunea 1.4 a platformei J2EE, furnizorul JMS poate fi integrat cu aplicaț ia
server folosind Arhitectura de Conector J2EE. Accesaț i furnizorul JMS printr-o resursă
adapter. Pentru mai multe informaț ii, consultaț i Specificaț ia Enterprise JavaBeans, v2.1, ș i J2EE
Specificaț ia arhitecturii conectorului, v1.5.
Întrebarea 52. Care este rolul JMS în dezvoltarea soluț iilor de afaceri?
Există două tipuri de mesagerie. Mesageria sincronă implică un client care aș teaptă pentru
serverul să răspundă la un mesaj. Mesajele asincrone implică un client care nu
aș teptaț i un mesaj de la server. Un eveniment este folosit pentru a declanș a un mesaj de la un server.
Punct-la-punct (P2P)
În sistemul punct-la-punct, mesajele sunt trimise prin intermediul coș urilor. Mesajele sunt plasate pe coș uri de către
producătorii de mesaje (clienț ii). Consumatorul de mesaje este responsabil pentru preluarea mesajului
din coadă. Comunicaț ia punct-la-punct este de obicei folosită atunci când un mesaj dat trebuie procesat
(receput) doar o dată de un anumit consumator. În acest fel, există un singur consumator al datului dat
mesaj.
Publicare ș i abonare (pub/sub)
În modelul de publicare ș i abonare, mesajele sunt trimise prin subiecte. Mesajele sunt publicate pe subiecte de către
producătorii de mesaje. Mesajele pot fi primite de orice consumatori care se abonează la
În acest fel, un mesaj poate fi primit sau procesat de mai mulț i consumatori.
Întrebare 62. De ce API-ul JMS nu oferă livrarea de mesaje sincronă de la început până la sfârș it ș i
notificare de livrare?
Răspuns. Unele sisteme de mesagerie oferă livrare sincronă către destinaț ii ca mecanism pentru
implementarea aplicaț iilor fiabile. Unele sisteme oferă clienț ilor diverse forme de livrare
notificare astfel încât clienț ii să poată detecta mesajele pierdute sau ignorate. Acesta nu este modelul
definit de API JMS. Mesageria API JMS oferă livrare garantată prin intermediul metodei o dată ș i ...
semantica livrării o singură dată a mesajelor PERSISTENTE. În plus, consumatorii de mesaje pot
asigurarea procesării fiabile a mesajelor utilizând fie modul CLIENT_ACKNOWLEDGE, fie
sesiuni tranzacț ionate. Acest lucru realizează o livrare fiabilă cu o sincronizare minimă ș i este
modelul de mesagerie pentru întreprinderi pe care majoritatea furnizorilor ș i dezvoltatorilor îl preferă. API-ul JMS nu defineș te un
Întrebare 63. Care sunt obiectele de bază legate de JMS necesare pentru fiecare aplicaț ie activată JMS
aplicaț ie?
Răsp. Fiecare client activat JMS trebuie să stabilească următoarele:
* Un obiect de conexiune furnizat de serverul JMS (brokerul de mesaje)
* În cadrul unei conexiuni, una sau mai multe sesiuni, care oferă un context pentru trimiterea mesajelor ș i
primire
* În cadrul unei sesiuni, fie un obiect de tip coadă, fie un obiect de tip subiect care reprezintă destinaț ia (mesajul
zonă de pregătire) în cadrul brokerului de mesaje
În cadrul unei sesiuni, obiectul corespunzător de expeditor sau publisher sau receptor sau abonat
(în funcț ie de dacă clientul este un producător de mesaje sau un consumator ș i foloseș te un sistem de tip point-to-point)
sau strategia publicare/abonare, respectiv). În cadrul unei sesiuni, un obiect mesaj (de trimis sau de
primi
Ans.Log4j (Log pentru Java) este un cadru de jurnalizare furnizat de fundaț ia Apache pentru aplicaț iile bazate pe Java.
aplicaț ii.
În aplicaț ii, dacă doriț i să înregistraț i anumite informaț ii, cum ar fi orice eveniment declanș at sau orice
Actualizarea bazei de date a avut loc, avem nevoie să înregistrăm informaț iile sau erorile specifice pentru
utilitatea aplicaț iei.
Pentru a depana problemele din aplicaț ii, trebuie să înregistrăm erorile/excepț iile în jurnale. Pentru aceasta avem nevoie de
va folosi mecanismul log4j.
Log4j înregistrează informaț iile ș i afiș ează aceste informaț ii în diferite destinaț ii. Destinaț iile diferite sunt
numite appendere (consolă, fiș ier etc.).
Întrebare 2. Cum defineș ti înregistrarea pentru aplicaț ia ta?
Pentru a defini jurnalizarea pentru aplicaț ia dvs., trebuie să descărcaț i cadrul log4j.
([Link]) de pe site-ul apache.
Odată ce jar-urile log4j sunt descărcate, asiguraț i-vă că aceste jar-uri sunt în calea de clasă a aplicaț iei dumneavoastră.
să spunem că ai o aplicaț ie web care trebuie să adauge log4j. În acest caz, jarele log4j sunt copiate în
folderul WEB-INFO/lib al aplicaț iei tale web
creaț i un fiș ier nou, fie [Link], fie [Link], care va fi copiat în WEB-INF/classes
folder
[Link]/[Link] conț ine toată configuraț ia legată de mecanismul de logare
ș i nivelul logger-ului ș i pachetul pe care doriț i să-l definiț i nivelul logger-ului.
Example:
[Link]:
[Link]=INFO
[Link]=CONSOLE,FILE,RejRec
[Link]=[Link]
[Link]=WARN
[Link]=RejRec
[Link]=append,autoFlush,enabled,suffix,fileName
[Link]=true
[Link]=true
[Link]=true
[Link]=.yyyy-MM-dd
[Link]=E\:\\Docs\\WithoutBook\\DID\\jboss-eap-
6.2\standalone\log\[Link]
[Link]:
<log4j:configuration>
<appender-ref ref="LOG"/>
</appender>
<level value="warn"/>
<appender-ref ref="MEETING-APP-LOG"/>
</logger>
<root>
<priority value="debug"/>
<appender-ref ref="ASYNC"/>
<appender-ref ref="ERROR-LOG"/>
</root>
</log4j:configuration>
Există mai multe niveluri de logare pe care le poț i configura în aplicaț ia ta.
Acestea sunt FATAL, ERROR, WARN, TRACE, DEBUG, INFO SAU ALL în jurnalizarea apache. Jurnalizare implicită
nivelul este INFO.
[Link] logs:-We can define logging at each applicaiton level, For this we have to create
[Link] sau [Link] în folderul WEB-INF/classes.
Răspuns. Există diferite appendere pe care le putem configura în log4j: CONSOLE, FILES,
Bază de date, JMS, Înregistrarea evenimentelor
CONSOLE în log4j:-Dacă folosim acest lucru ca appender în aplicaț ia ta, log4j înregistrează informaț iile în
fereastra de consolă sau promptul de comandă care este pornit cu scriptul de pornire.
Fiș iere în log4j:-Appenderul de fiș iere este folosit pentru a înregistra informaț iile în fiș ierele noastre cu nume personalizate. când noi
Jurnalizarea ajută ș i la depanare. Deș i sunt disponibile depanatoare, dar, sincer, durează
timpul de a depana o aplicaț ie folosind un depanator. O aplicaț ie poate fi depanaț i mai uș or
cu câteva mesaje de logare bine plasate. Aș adar, putem spune cu siguranț ă că logarea este foarte bună
instrument de depanare. Dacă jurnalizarea este făcută cu sens ș i înț elept, poate oferi un context detaliat pentru
defecț iuni ale aplicaț iilor.
În aplicaț iile distribuite (de exemplu, aplicaț ii web/la distanț ă), jurnalizarea este foarte importantă.
administratorul poate citi jurnalele pentru a afla despre problemele care au avut loc într-un anumit interval.
API-urile încorporate ale Java oferă opț iuni de înregistrare, dar acestea nu sunt atât de flexibile. O altă opț iune este să foloseș ti
Cadru de journaling open source al Apache numit log4j.
Acestea sunt puncte importante deoarece, în cele din urmă, ne dorim aplicaț ii eficiente. Log4J are
soluț ia pentru asta. Puteț i activa sau dezactiva înregistrarea la timpul de execuț ie prin modificarea configuraț iei
fiș ier. Asta înseamnă că nu există modificări în codul sursă Java (binare).
Pentru a reduce codul acum în Spring Framework, poț i folosi AOP unde poț i configura logul.
mecanisme uș or.
Înainte de a utiliza cadrul log4j, cineva ar trebui să fie conș tient de diferitele categorii de mesaje de logare.
Următoarele sunt 5 categorii:
DEBBUG
Nivelul DEBUG este utilizat pentru a indica evenimente care sunt utile pentru depanarea unei aplicaț ii. Gestionarea
metoda pentru nivelul DEBUG este: debug().
INFORMAȚII
Nivelul INFO este folosit pentru a evidenț ia progresul aplicaț iei. Metoda de gestionare pentru nivelul INFO este:
info().
AVERTIZARE
Nivelul WARN este folosit pentru a indica situaț ii potenț ial periculoase. Metoda de gestionare pentru WARN
nivelul este: warn().
EROARE
Nivelul de EROARE arată mesaje de eroare care ar putea să nu fie suficient de grave ș i permit
aplicaț ie pentru a continua. Metoda de gestionare pentru nivelul ERROR este: error().
FATAL
Nivelul Fatal este folosit pentru a indica evenimente severe care pot cauza abortarea aplicaț iei.
Metoda de gestionare pentru nivelul FATAL este: fatal().
Dacă declari nivelul de jurnalizare ca debug în fiș ierul de configurare, atunci toate celelalte mesaje de jurnalizare vor
de asemenea, să fie înregistrat.
Dacă declari nivelul de logare ca fiind informaț ie în fiș ierul de configurare, atunci informaț iile, avertizările, erorile ș i logurile fatale
va fi înregistrat.
Dacă declaraț i nivelul de jurnalizare ca fiind eroare în fiș ierul de configurare, atunci mesajele de jurnalizare de eroare ș i fatale vor fi
înregistrat.
Dacă declaraț i nivelul de jurnalizare ca fiind fatal în fiș ierul de configurare, atunci doar mesajele de jurnalizare fatale vor fi
înregistrat.
Există 3 componente principale care sunt folosite pentru a înregistra mesaje pe baza tipului ș i nivelului.
Aceste componente controlează, de asemenea, formatarea ș i plasarea raportului în timpul execuț iei. Aceste componente
sunt:
jurnale
- apărători
- layout-uri
Întrebarea 2. Câte tipuri diferite de drivere JDBC sunt prezente? Discutaț i-le.
ex:
nativ void faAcest lucru() {
static{
[Link]("[Link]");
}
Răspuns. Practic, pornirea JBoss cu configuraț ia 'all' conț ine tot ce este necesar pentru
clustering:
Are toate bibliotecile pentru grupare:
[Link], [Link]
HA-JNDI
Agricultură
HA-JMS
Răspuns. Framework-ul JGroups oferă servicii pentru a permite comunicaț iile peer-to-peer între
noduri într-un cluster. Este construit pe un set de protocoale de comunicaț ie de reț ea care oferă
transport, descoperire, fiabilitate ș i detectarea erorilor, ș i gestionarea apartenenț ei la cluster
servicii.
Întrebare 3. Este posibil să pui o instanț ă de server JBoss în mai multe clustere în acelaș i timp?
Răspuns. Este tehnic posibil să pui o instanț ă de server JBoss în multiple clustere simultan,
această practică nu este în general recomandată, deoarece creș te complexitatea managementului.
JBossCache permite distribuirea uș oară a seturilor de date în mediile tale de calcul. Este
pe baza JGroups ș i permite clusterizarea ș i disponibilitatea ridicată a acelor date. Poț i alege să
distribuiț i datele cu JBoss Messaging pentru a le muta acolo unde este necesar pentru calcul sau eveniment-
programare bazată pe
Răspuns. Bazat pe standardele JavaServer Faces ș i EJB 3.0, JBoss Seam unifică componenta ș i
modele de programare ș i oferă un cadru consistent ș i puternic pentru crearea rapidă de
aplicaț ii web cu Java EE 5.0. Seam simplifică dezvoltarea aplicaț iilor web ș i permite
funcț ionalitate nouă care era dificil de implementat manual înainte, cum ar fi conversaț iile cu stare,
operare multi-fereastră ș i gestionarea cererilor AJAX fine-grained concurente. Seam de asemenea unifică
ș i integrează tehnologii open source populare precum Facelets, Hibernate, iText ș i Lucene.
Întrebarea 6. Funcț ionează Seam pe alte servere de aplicaț ii în afară de JBoss?
[Link] funcț ionează perfect pe alte servere de aplicaț ii - la fel ca tot ce face Hibernate
echipa face, aceasta nu este o chestiune doar JBoss.
JBoss JBPM este o platformă pentru limbile de proces. La bază există o bibliotecă Java pentru a defini
ș i execută grafice. Procesul actual construieș te, de exemplu, trimiterea de e-mailuri, sarcina utilizatorului ș i actualizarea
baze de date sunt definite pe baza acestora. Fiecare limbaj de proces este format dintr-un set de astfel de procese
construcț ii. Ș i aceasta este ceea ce este pluggable în această bibliotecă de bază. Pe deasupra bibliotecii de bază JBoss jBPM
bibliotecă, acolo sunt implementate mai multe limbaje de proces ca un set de construcț ii de proces: jPDL,
BPEL ș i fluxul de pagină SEAM:
jPDL este un limbaj de proces cu o interfaț ă clară pentru Java ș i sarcini foarte sofisticate
capabilităț i de management. Nu există un standard pentru limbajele de proces Java, aș a că este proprietar.
BPEL este un limbaj de orchestrare a serviciilor. Aș a cum s-a spus anterior, în BPEL, poț i scrie servicii noi ca un
funcț ia altor servicii. Aceasta este de obicei un component al unui Autobuz de Servicii Enterprise (ESB).
Fluxul de pagini SEAM este un limbaj care permite definirea grafică a navigaț iei între
pagini într-o aplicaț ie web SEAM.
JBoss este un server de aplicaț ii open source popular bazat pe tehnologia Java EE.
Bazat pe Java EE, JBoss suportă aplicaț ii java cross-platform. A fost încorporat cu
Server web Apache Tomcat. Rulează pe orice JVM de versiuni 1.3 sau mai recente. JBoss suportă JNDI.
Servlet/JSP (Tomcat sau Jetty), EJB, JTS/JTA, JCA, JMS, Clusterizare (JavaGroups), Servicii Web
(Axis), ș i integrarea IIOP (JacORB).
Întrebare 10. Ce versiune de JBoss AS am nevoie pentru a rula Seam?
Răspuns. Pentru Seam 1.3: Seam a fost dezvoltat împotriva JBoss 4.2. Seam poate fi în continuare rulat împotriva JBoss
4.0. Documentaț ia pentru seam conț ine instrucț iuni pentru configurarea JBoss 4.0.
Pentru Seam 1.2: Deoarece Seam necesită cea mai recentă ediț ie a EJB3, trebuie să instalaț i JBoss AS din
cel mai recent installer JEMS. Asiguraț i-vă că selectaț i profilul „ejb3” sau „ejb3+clustering” pentru a include
Suport EJB3. De asemenea, fiș ierul de bibliotecă [Link] din distribuț ia Seam trebuie inclus în
fiecare aplicaț ie Seam pe care o desfăș uraț i. Consultaț i exemplele din distribuț ia Seam (în interiorul exemplarilor
directory) pentru a vedea cum să construieș ti ș i să ambalezi aplicaț ii Seam.
Da, poț i rula aplicaț ii Seam în Tomcat 5.5+ obiș nuit sau în aplicaț ia Sun GlassFish.
server. Pentru a rula aplicaț ia Seam în Tomcat, ai nevoie de o serie de fiș iere bibliotecă suplimentare ș i o
câteva fiș iere de configurare pentru a iniț ia JBoss EJB3 în interiorul Tomcat. Vă rugăm să consultaț i
ț intă de construire ANT [Link] pentru exemplul de rezervare Seam (în examples/booking)
directorul distribuț iei Seam) pentru mai multe informaț ii despre cum să construieș ti un WAR Tomcat pentru Seam
aplicaț ii. Consultaț i acest articol pe blog despre cum să rulaț i Seam în serverul de aplicaț ii Glassfish al Sun.
Nu, Seam funcț ionează doar pe JDK 5.0 ș i versiuni ulterioare. Foloseș te anotări ș i alte caracteristici ale JDK 5.0.
Ans. aici este un rezumat pe scurt din exemplul dat în .org quick start:
aș a că scriptul de pornire pe care l-ai rula pe a doua ta maș ină pentru al doilea nod ar arăta
ca:
$ ./[Link] -c all-node2 -g DocsPartition -u [Link] -b [Link] -
[Link]=2
poț i folosi de asemenea nohup pentru a trimite procesul în fundal...
acum că ambele noduri ar trebui să fie funcț ionale, trebuie să activaț i ș i să configuraț i sesiunile sticky pe
serverul web ș i fiecare server.
Un bază de date este împărț ită în unităț i logice de stocare numite tablespace-uri. Un tablespace este utilizat pentru
structuri logice înrudite grupate împreună.
Fiecare bază de date Oracle conț ine un tablespace numit SYSTEM, care este creat automat.
creată atunci când baza de date este creată. Spaț iul de tabele SYSTEM conț ine întotdeauna datele
tabelele de dicț ionar pentru întreaga bază de date.
[Link] objects are the logical structures that directly refer to the database's data.
Obiectele schemei includ tabele, vizualizări, secvenț e, sinonime, indecș i, clustere, baze de date
declanș atoare, proceduri, funcț ii, pachete ș i linkuri de bază de date.
Un tabel este unitatea de bază a stocării datelor într-o bază de date Oracle. Tabelele unei baze de date
ț ine toate datele accesibile utilizatorului. Datele din tabel sunt stocate în rânduri ș i coloane.
Un view este o tabelă virtuală. Fiecare view are o interogare ataș ată. (Interogarea este un SELECT
declaraț ie care identifică coloanele ș i rândurile tabelului(tabelelor) pe care le foloseș te vizualizarea.
Ans. Grupurile sunt grupuri de una sau mai multe tabele stocate fizic împreună pentru a împărtăș i comun
coloane ș i sunt adesea folosite împreună.
Întrebare 26. Ce este un constrângere de integritate?
O restricț ie de integritate este o modalitate declarativă de a defini o regulă de afaceri pentru o coloană a unui tabel.
Un index este o structură opț ională asociată cu un tabel pentru a avea acces direct la rânduri.
care poate fi creat pentru a creș te performanț a recuperării datelor. Indexul poate fi creat pe
una sau mai multe coloane ale unei tabele.
[Link] serveș te ca un ghid pentru proiect ș i oferă un mediu flexibil ș i consistent pentru
a adapta schimbările ș i a desfăș ura proiectul pentru a îndeplini obiectivele clientului. Faze SDLC
defineț i programul cheie ș i punctele de livrare care asigură o livrare corectă ș i la timp către client
în cadrul bugetului ș i altor constrângeri ș i cerinț e ale proiectului. SDLC cooperează cu controlul proiectului
ș i activităț ile de management, deoarece acestea trebuie să fie introduse în fiecare fază a SDLC.
Răspuns.
Răspuns.
Un model SDLC defineș te implementarea unei abordări asupra proiectului. Acesta defineș te diferitele
procesele ș i etapele care vor fi desfăș urate pe parcursul proiectului pentru a produce rezultatul dorit
Există o varietate de modele SDLC care există pentru a satisface diferite nevoi ș i
caracteristicile unui proiect. Unele sunt de natură iterativă (Prototipare), în timp ce altele sunt
secuenț ial (cascadă). Unele dintre modelele SDLC bine cunoscute sunt:
Waterfall Model
Model Iterativ
Modelul spiral
Modelul V
Model RAD
Model Agil
Răspuns.
Modelul Waterfall este un model SDLC secvențial și non-iterativ care descrie fluxul etapelor în jos, una câte una.
Procesul nu începe o fază decât dacă faza anterioară este finalizată odată pentru totdeauna complet. Cascada
modelul constă din următoarele faze:
Colectarea cerințelor
Design
Implementare
Testare
Întreținere
Răspuns. Colectarea cerinț elor: Toate cerinț ele sunt colectate ș i se efectuează o analiză pentru
sistem complet.
Proiectare: Diverse modele de proiectare sunt create pentru sistemul complet după faza de colectare a cerinț elor.
a fost finalizat și încheiat.
Implementare: Sistemul complet este implementat odată ce designul pentru sistem a fost finalizat.
Testare: Sistemul complet este testat după ce toate construcțiile și integrarea s-au finalizat.
Întreținere: Suportul post-implementare se desfășoară după implementarea sistemului.
Răspuns.
a) Este inflexibil
b) Accommodating changes is very hard
c) Cea mai lungă perioadă de livrare tangibilă. Clientul nu vede nimic altceva decât întregul produs
când este gata.
d) Inadecvat pentru proiecte mari ș i unde cerinț ele nu sunt clare.
Întrebare 9. Explicaț i când să folosiț i modelul în cascadă.
Răspuns.
Modelul SDLC în formă de V este o extensie a modelului de tip apăfall. Apăfallul tipic se desfășoară liniar în jos,
în timp ce, în modelul în formă de V, fazele sunt îndreptate în sus după faza de codare pentru a forma forma de V. Acesta demonstrează
relația dintre fiecare fază a SDLC și faza sa respectivă de testare. Spre deosebire de modelul de tip waterfall, modelul în formă de V
include planificarea timpurie a testării.
Ans.
Analiza cerinț elor: Cerinț ele sunt colectate, iar analiza este efectuată pentru a înț elege
problemă ș i propune o soluț ie.
Proiectarea sistemului: Inginerii analizează cerinț ele adunate ș i propun modalităț i prin care sistemul poate
să fie creat sau construit din punct de vedere al fezabilităț ii.
Designul arhitecturii: Arhitectura sistemului este concepută din diverse module,
depicting their relationships and communication between them.
Designul modulului: Acesta este un design de nivel jos în care modulele sunt proiectate individual ș i într-un
mod detaliat.
Codare: Acesta este la baza modelului în formă de V. Proiectarea modulului este transformată în cod de către
dezvoltatori.
Fazele de validare sunt pe partea dreaptă a formei de V. Acesta constă în:
Testarea unităț ilor: Testarea prin analiza codului de către dezvoltatori pentru modulele lor independente se realizează.
Testarea integrării: Modulele independente sunt testate împreună pentru a valida interfaț a ș i a expune
erori în ele.
Testarea sistemului: Sistemul este testat în raport cu specificaț iile sistemului.
Testarea de acceptare de către utilizatori: Testarea este efectuată de utilizatorii finali pentru a valida cerinț ele
menț ionate în faza de cerinț e au fost îndeplinite de sistem sau nu înainte de a-l accepta pentru
production.
Întrebare 12. Explicaț i punctele forte ale modelului în formă de V.
Răspuns.
a) Este inflexibil.
b) Schimbările în cerinț e sunt foarte greu de acomodate
c) Nu sunt disponibile prototipuri timpurii
d) Necesită resurse competente ample.
Întrebare 14. Explicaț i când să folosiț i modelul în formă de V.
Modelul în formă de V ar trebui folosit pentru proiecte mici până la medii unde cerinț ele
sunt definite ș i fixate clar. Modelul permite mai multă planificare pentru test decât modelul waterfall
dar face acomodarea schimbărilor mai dificilă decât alte modele. Modelul în formă de V ar trebui să
fie ales când sunt disponibile resurse tehnice ample cu expertiza tehnică necesară.
Deoarece nu sunt produse prototipuri, există un risc foarte mare implicat în satisfacerea clientului
aș teptările, prin urmare, încrederea clientului ar trebui să fie foarte mare pentru a alege V-
Abordarea modelului formatat.
Răspuns.
a) Câș tigă încrederea clienț ilor, deoarece dezvoltatorii ș i clienț ii sunt în sincron unul cu celălalt
aș teptări continuu.
b) Ideal pentru sistemele online unde este implicat un nivel ridicat de interacț iune om-computer.
c) Foarte flexibil, deoarece schimbările în cerinț e pot fi accommodate mult mai uș or cu
fiecare recenzie nouă ș i rafinarea.
d) Ajută atât dezvoltatorii, cât ș i utilizatorii să înț eleagă mai bine sistemul.
e) Software-ul construit prin prototipare necesită o formare minimă a utilizatorilor, deoarece utilizatorii sunt instruiț i folosind
prototipuri de la bun începutul proiectului.
f) Cerinț ele de integrare sunt foarte bine înț elese ș i canalele de desfăș urare sunt decise la
o etapă foarte timpurie
Răspuns.
Modelul prototip ar trebui folosit atunci când sistemul dorit trebuie să aibă multe
interacț iune cu utilizatorii finali. De obicei, sistemele online, interfeț ele web au o cantitate foarte mare
de interacț iune cu utilizatorii finali, sunt cel mai potrivite pentru modelul Prototype. Ar putea dura o vreme pentru un
sistem care să fie construit pentru a permite uș urinț a utilizării ș i să necesite o instruire minimă pentru utilizatorul final.
Întrebare 20. Descrie ciclul de viaț ă al dezvoltării software-ului în dezvoltarea rapidă a aplicaț iilor (RAD)
model.
[Link] implică dezvoltarea iterativă împreună cu crearea prototipurilor. Foloseș te interacț iuni
utilizarea tehnicilor ș i prototipurilor pentru a defini clar cerinț ele utilizatorului ș i designul sistemului.
Tehnicile structurate sunt folosite pentru a crea modele iniț iale de design bazate pe inputul utilizatorului ș i
prototipurile sunt construite pe baza acestora. Utilizatorii finali ș i analiș tii folosesc prototipurile pentru a valida
ș i îmbunătăț eș te cerinț ele ș i modelele de design. Procesul durează până la un set final de specificaț ii tehnice
cerinț ele ș i modelele de design au fost create.
Întrebare 21. Descrieț i pe scurt fazele din modelul de dezvoltare rapidă a aplicaț iilor (RAD).
Răspuns.
Phases in RAD:
Modelarea afacerii: Fluxul de informații este identificat între diverse funcții de afaceri.
Modelarea datelor: Informațiile adunate din modelarea afacerii sunt folosite pentru a defini obiectele de date care sunt necesare pentru
afacere.
Modelarea proceselor: Obiectele de date definite în modelarea datelor sunt convertite pentru a realiza fluxul de informații de afaceri.
atingeți un anumit obiectiv de afaceri. Descrierile sunt identificate și create pentru CRUD-ul obiectelor de date.
Generarea aplicaț iilor: Instrumentele automate sunt utilizate pentru a transforma modelele de proces în cod ș i în sistemul actual.
Testare ș i rotire:Testează componentele noi ș i toate interfeț ele
Întrebare 22. Explicaț i punctele forte ale modelului de dezvoltare rapidă a aplicaț iilor (RAD).
Răspuns.
Strengths of RAD:
Răspuns.
Weaknesses of RAD:
a) Depinde de performanț ele puternice ale echipei ș i ale indivizilor pentru identificarea cerinț elor de afaceri.
b) Doar sistemele care pot fi modularizate pot fi construite folosind RAD
c) Necesită dezvoltatori/designeri foarte bine pregătiț i.
d) Dependenț ă mare de abilităț ile de modelare
e) Inaplicabil pentru proiectele mai ieftine, deoarece costul modelării ș i generării automate a codului este
foarte ridicat pentru proiecte cu buget mai mic pentru a beneficia.
Întrebare 24. Explicaț i când să folosiț i modelul de dezvoltare rapidă a aplicaț iilor (RAD).
[Link] ar trebui utilizat atunci când există necesitatea de a crea un sistem care poate fi modularizat în 2-
3 months of time. It should be used if there’s high availability of designers for modeling and the
bugetul este suficient de mare pentru a acoperi costul acestora, împreună cu costul generării automate de cod
unelte. Modelul RAD SDLC ar trebui să fie ales doar dacă există resurse cu o cunoaș tere de afaceri înaltă.
disponibil ș i există o nevoie de a produce sistemul într-o perioadă scurtă de timp (2-3 luni).
Abordarea incrementală a SDLC sugerează construirea unui sistem parț ial mai degrabă decât
sistem complet ș i apoi adaugă mai multe funcț ionalităț i în acesta. Cerinț ele ș i caracteristicile sunt
prioritizat ș i categorisit ș i apoi implementat în etape, fiecare etapă bazată pe
modelul cascada. Procesul continuă până când sistemul complet este realizat.
Răspuns.
Modelul SDLC spiral combină componentele atât din design, cât ș i din prototip în etape. Este un
hibrid al modelului de cascada ș i modelului de prototipare. Ar trebui să se folosească modelul SDLC în spirală pentru proiecte mari ș i
proiecte scumpe.
Răspuns.
Phases in spiral model:
a) Cerinț ele sistemului sunt identificate în detaliu.
b) Un design iniț ial este creat pentru noul sistem pe baza cerinț elor din faza anterioară.
Toate abordările fezabile ș i tehnice sunt identificate ș i analizate pentru a construi sistemul.
designul este realizat pe o scară mult mai largă ș i mai profundă pentru a identifica ș i a gestiona riscurile potenț iale în
sistemul.
c) Un prototip este creat, ilustrând câteva caracteristici ale sistemului.
d) Un al doilea prototip este creat folosind 4 paș i: Evaluarea primului prototip, definirea cerinț elor pentru
al doilea prototip, planificarea ș i proiectarea pentru al doilea prototip, construirea ș i testarea
al doilea prototip.
Întrebare 32. Explicaț i punctele forte ale modelului spiral.
Răspuns.
Răspuns.
Răspuns. Nu există un model specific de SDLC care să poată fi folosit pentru toate tipurile de proiecte ș i situaț ii. Dacă
dacă niciunul dintre modelele populare SDLC nu se potriveș te pentru un proiect specific, atunci alegeț i modelul SDLC cel mai apropiat.
modelaț i ș i modificaț i-l conform nevoilor. Identificaț i cât de important este evaluarea riscurilor ș i folosiț i riscul spiralelor
metodologia de evaluare dacă este un proiect critic din punct de vedere al riscurilor. Proiectul ar trebui livrat în mici segmente,
ideal ar fi să combinăm modelul incremental cu modelul în formă de V. Trebuie să se acorde suficient timp în
alegerea modelului potrivit sau personalizarea unuia pentru a se potrivi unui proiect pentru succesul ș i eficienț a acestuia
finalizare.
Răspuns.
Alegerea sau construirea echipei potrivite este esenț ială pentru succesul oricărui proiect. Un proiect are nevoie de o varietate
a abilităț ilor ș i calităț ilor care nu sunt prezente în niciun individ. Cu toate acestea, ca o soluț ie alternativă, o echipă
ar trebui să fie construit din oameni cu o varietate de abilităț i pentru a îndeplini necesităț ile proiectului. Principalul avantaj
de a alege membri ai echipei cu un amestec de tipuri de personalitate este că oferă o gamă mai variată de
opinii despre un proiect sau orice element de acț iune specific din proiect, de exemplu: cerinț e, design,
dezvoltare, testare sau chiar implementare. Viziuni diferite permit un unghi mai larg asupra unei
problemă ș i soluț ie pentru minimizarea riscului de a omite cerinț ele sau de a le înț elege greș it.
Unele dintre trăsăturile de personalitate care sunt esenț iale pentru orice proiect sunt:
a) O persoană agresivă, ambiț ioasă, contrară, o personalitate calmă, răbdătoare ș i mai relaxată
b) Persoană care îș i asumă riscuri, contrariană, o personalitate precaută
Raspuns.
Furtuna: În această fază, membri echipei arată o oarecare rezistenț ă ș i frustrări încercând să lucreze
împreună. Vor exista invidii ș i ciocniri de ego ș i managerul echipei trebuie să acț ioneze ca un
arbitru sau antrenor.
Norming:In this phase the team has learnt to function as a whole. Team members find their
moduri consistente de lucru ș i îș i reț in ideile pentru a evita problemele ș i conflictele. Echipa
managerul ghidează echipa să nu se reț ină prin creș terea responsabilităț ilor ș i
presiuni.
Executare:În această fază, echipa a învăț at să îș i îndeplinească rolul ca un întreg, să aibă ș i să rezolve
conflicte, asumarea de riscuri, făcând ajustări sau compromisuri ș i acț ionând activ pentru a face faț ă diverselor
provocări.
Întrebare 38. Care este diferenț a dintre un model iterativ ș i modelul Waterfall?
Modelul Waterfall este un model bazat pe flux, în care parcurgem fiecare fază o dată ș i nu putem
reveni la acea fază din nou. Cel mai important dezavantaj este că dacă există vreo schimbare în
cerinț e, nu putem face nicio modificare în secț iunea cerinț elor. Modelul Iterativ este
asemănător modelului în cascadă, dar aici putem reveni întotdeauna la fazele anterioare
ș i faceț i modificările în consecinț ă.
Ans. Cerinț a funcț ională este un document care conț ine ce trebuie să facă un anumit sistem pentru a
atingerea unui anumit obiectiv specific. Această sarcină se desfăș oară în timpul etapei preliminare a SDLC.
Fără non-funcț ional, un software nu va funcț iona niciodată sau va avea informaț ii vitale lipsă.
rezultatul său. Timpul de răspuns, securitatea, fiabilitatea, acurateț ea, capacitatea ș i disponibilitatea sunt exemple
de cerinț e non funcț ionale pentru un proces de dezvoltare software. Cerinț e non funcț ionale
decide cum va funcț iona programul sau software-ul în viitor.
Întrebare 42. Care este diferenț a între modelul Incremental ș i modelul Spiral?
Răspuns. Nu există o mare diferenț ă între aceste două modele SDLC. Modelul SDLC spiral include...
natura iterativă a modelului de prototipare ș i natura liniară a modelului de tip cascade.
abordarea este ideală pentru dezvoltarea software-ului care apare în diverse versiuni.
Întrebare 43. Oferiț i câteva exemple practice din viaț a reală ale Modelului Spiral.
Răspuns. Cele mai populare exemple din viaț a reală pentru modelul Spiral al SDLC sunt sistemele de operare Microsoft Windows.
Sistem, Visual Studio Manager, Adobe Photoshop, WordPress CMS ș i multe altele.
Metodologia Agile este mult prea avansată ș i complexă comparativ cu modelul simplu Waterfall.
Fezabilitatea agilităț ii de a remodela întreaga structură de dezvoltare pentru a se adapta la cea mai eficientă
rezultatul este ceea ce face Agile alegerea numărul 1 pentru dezvoltatori astăzi.