Differences

This shows you the differences between two versions of the page.

Link to this comparison view

devops:cursuri:01 [2021/07/19 12:26]
laura.stoilescu
devops:cursuri:01 [2021/07/28 16:28] (current)
bogdan.croitoru
Line 1: Line 1:
-==== Cursul 01 Git/​BitBucket,​ Nexus ====+==== Cursul 01Git/​BitBucket,​ Nexus ====
  
 === 1. Context DevOps === === 1. Context DevOps ===
Line 8: Line 8:
    
 Metoda principala este un set de practici care sa automatizeze pasii operationali si sa asigurare configuratii standardizate:​ Metoda principala este un set de practici care sa automatizeze pasii operationali si sa asigurare configuratii standardizate:​
-* Dev: standardizeaza si automatizeaza pasii de la development la testare, securizare si executie peste mai multe medii +  ​* Dev: standardizeaza si automatizeaza pasii de la development la testare, securizare si executie peste mai multe medii 
-* Ops: automatizeaza configurarea si deploymentul infrastructurii,​ monitorizand peste mai multe domenii si permitand rezolvarea rapida a eventualelor probleme+  * Ops: automatizeaza configurarea si deploymentul infrastructurii,​ monitorizand peste mai multe domenii si permitand rezolvarea rapida a eventualelor probleme
  
-=Practici DevOps=  +== Practici DevOps==  
-* Controlul versiunilor si strategii de branching +  * Controlul versiunilor si strategii de branching 
-* Pipeline-uri de CI/CD +  * Pipeline-uri de CI/CD 
-* Containere care standardizeaza si izoleaza mediile de executie +  * Containere care standardizeaza si izoleaza mediile de executie 
-* Scriptarea infrastructurii IaC +  * Scriptarea infrastructurii IaC 
-* Monitorizarea pipeline-urilor si integritatii aplicatiilor+  * Monitorizarea pipeline-urilor si integritatii aplicatiilor
  
 == CI/CD Pipeline== == CI/CD Pipeline==
Line 23: Line 23:
  
 Elemente tipice ale unui pipeline CI/CD: Elemente tipice ale unui pipeline CI/CD:
- Versionarea codului -  +  * Versionarea codului -  
- Build - compilarea aplicatiei +  ​* ​Build - compilarea aplicatiei 
- Test - testare: unitare, functionala,​ de integrare, end-to-end +  ​* ​Test - testare: unitare, functionala,​ de integrare, end-to-end 
- ​Release - livrarea aplicatiei in repository +  ​* ​Release - livrarea aplicatiei in repository 
- ​Deploy- instalare +  ​* ​Deploy- instalare 
- ​Validation & Compliance - verificare vulnerabilitati/​ conformitate+  ​* ​Validation & Compliance - verificare vulnerabilitati/​ conformitate
  
  
Line 38: Line 38:
  
 In plus fata de facilitarea lucrului in paralel pe orice proiect, cand s-a comis o greseala, putem folosi versionarea sa identificam problema si sa ne intoarcem la ultima versiune functionala a codului. Cu cat un proiect devine mai mare, mai complex si mai versatil, cu atat devine mai important sa stapanim si sa dezvolatm acest skill. In plus fata de facilitarea lucrului in paralel pe orice proiect, cand s-a comis o greseala, putem folosi versionarea sa identificam problema si sa ne intoarcem la ultima versiune functionala a codului. Cu cat un proiect devine mai mare, mai complex si mai versatil, cu atat devine mai important sa stapanim si sa dezvolatm acest skill.
 +
 +==2.1 Beneficii ==
 +   - Genereaza puncte de backup: probabil cel mai vital beneficiu, fiecare contribuitor creaza un backup al proiectului de fiecare data cand face o clona. Mai multe backup-uri pe mai multe masini asigura faptul ca proiectul poate fi recuperat in cazul unei probleme ​
 +  - Testare si experimentare : functionalitati noi, dezvoltate si testate individual intr-un mediu izolat
 +  - Transparenta : istoricul proiectului si asocierea modificarilor cu fiecare utilizator responsabil asigura o dezvoltare transparenta si usor de urmarit
 +  - Colaborare : in special prin prisma faptului ca fiecare contribuitor poate lucra local, fara sa fie conectat in permanenta la server, dar si prin crearea workflowului care asigura implicarea mai multor membri ai echipei mai ales in proiecte mari si complexe
 +
 +==2.2 Concepte==
 +  - Repository - baza de date incluzand schimbarile asupra proiectului
 +  - Commit - un snapshot al proiectului la un animit moment
 +  -  Checkout - copie locala a proiectului
 +  - Branch - pointer la un commit  ​
 +  - Upstream/ downstream ​ - remote vs local
 +  - HEAD - pointer la branch-ul curent
 +
 +==2.3  Tipuri de sisteme de control versiune ==
 +1. Sisteme de versionare centralizate [Perforce, ClearCase, SVN, CVS]- un singur server contine toate versiunile codului, administreaza accesul la fisiere si stocheaza backup
 +  * [+] Stim cine este autoritatea la un anumit proiect
 +  * [-] Nevoie de conexiune la server, permisii centralizate,​ downtime
 +  * [-] single point of failure
 +2. Sisteme de versionare decentralizate [git, Mercurial, Bazaar] – mai multe servere contin versiunile codului alaturi de copii locale pentru fiecare din contribuitori. ​
 +  * [+] Aproape toate operatiile, mai putin sync-ul, sunt locale ceea ce inseamna operatii rapide (commit, diff, history)
 +  * [+] control al versiunii personal
 +  * [+] nu este nevoie de conexiune la server
 +  * [+] fiecare clona este un backup ​
 +  * [-?] este nevoie de un workflow pentru coordonare
 +  ​
  
  
-=== 2. Intro Versionare === 
-=== 3. Managementul Sursei : Git/​BitBucket=== 
 === 4. Managementul Outputului: Nexus=== === 4. Managementul Outputului: Nexus===
 === 5. Resurse utile === === 5. Resurse utile ===
 +https://​www.atlassian.com/​git/​tutorials/​atlassian-git-cheatsheet
 +https://​git-scm.com/​doc
 +https://​www.atlassian.com/​git/​tutorials/​learn-git-with-bitbucket-cloud ​
 +
 +
 +
devops/cursuri/01.1626686777.txt.gz · Last modified: 2021/07/19 12:26 by laura.stoilescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0