Differences

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

Link to this comparison view

devops:cursuri:01 [2021/07/19 15:20]
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 39: Line 39:
 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.Concepte== +==2.Concepte== 
- Repository - baza de date incluzand schimbarile asupra proiectului +  ​- ​Repository - baza de date incluzand schimbarile asupra proiectului 
- Commit - un snapshot al proiectului la un animit moment +  ​- ​Commit - un snapshot al proiectului la un animit moment 
- Checkout - copie locala a proiectului +  ​-  ​Checkout - copie locala a proiectului 
- Branch - pointer la un commit ​  +  ​- ​Branch - pointer la un commit ​  
- Upstream/ downstream ​ - remote vs local +  ​- ​Upstream/ downstream ​ - remote vs local 
- HEAD - pointer la branch-ul curent+  ​- ​HEAD - pointer la branch-ul curent
  
-== Tipuri de sisteme de control versiune == +==2.3  ​Tipuri de sisteme de control versiune == 
-Types of Version Control Systems +1Sisteme de versionare centralizate [PerforceClearCaseSVNCVS]- un singur ​server ​contine toate versiunile coduluiadministreaza accesul la fisiere si stocheaza backup 
-There are two main types of version control systems: centralized and distributed version control systems. +  * [+] Stim cine este autoritatea la un anumit proiect 
-Centralized version control systems +  * [-] Nevoie de conexiune la server, ​permisii centralizatedowntime 
- +  * [-] single point of failure 
-Image by the author (made using Canva) +2. Sisteme de versionare decentralizate [gitMercurialBazaar] – mai multe servere contin versiunile codului alaturi de copii locale pentru fiecare din contribuitori.  
-Centralized version control systems (CVCS) are a type of version control system with a single server containing all versions of the code files — often stored in repositories — the number of contributors (programmers working on the code files)and the backup files for the main project. +  * [+] Aproape toate operatiilemai putin sync-ulsunt locale ceea ce inseamna operatii rapide (commit, diff, history) 
-This setup allows every contributor to the code to know what the others are working onmaking it easier to communicate and manage the people based on a specific task. +  * [+] control ​al versiunii personal 
-The main downside for this setup is that since all the code files and the backup files are stored on one centralized serverif something were to happen to the server, ​then everything will be lost. Subversion and Perforce are examples of CVCS. +  * [+] nu este nevoie de conexiune la server 
-Distributed version control systems +  * [+] fiecare clona este un backup  
- +  * [-?] este nevoie de un workflow pentru coordonare 
-Image by the author (made using Canva) +  
-Distributed Version Control Systems (DVCS) such as Git, Mercurial, or Bazaar are version control systems with one or more main server ​containing the code files. +
-Howeverunlike CVCSin DVCS, the code files are mirrored on every contributors’ computer, meaning each one of them has its own version of the code, including its full history to work on locally. +
-So, if any server dies, any of the contributors’ repositories can be copied back up to the server once it’s back on and restore the history of the code files. This could be done easily because every clone of the original code files is really a full backup of all the project’s data. +
-DVCS allows different groups of people in different physical locations to collaborate within the same project simultaneously. This is an advantage that wasn’t possible in centralized systems. +
-Benefits of Version Control +
-Using a version control system has various benefits to any team of software developers, including:​ +
-1 Generate backups +
-Perhaps the most vital benefit of using a version control system is that every time a contributor clones a repository, they are, in a sense creating a backup of the current version of that repository. Having multiple backups on different machines is valuable so we can secure the data from losing in the cause of server ​failure. +
-Test and experiment +
-In today’s world, any source code is always under developmentNew features are always addeda new audience to be targetedand new applications to be developed+
-When a team works on a software projectthey often have different main project clones to develop new features ontest themand make sure they function properly before this new feature can be added to the main project. This could save time as different aspects of the code can be developed simultaneously. +
-3 Keep history ​and track changes +
-Having a record of the changes in a specific code file could help you and new contributors understand how a specific part of the code came to be. How did it start and develop over time to reach its current version. +
-Moreover, if over time, the addition of a certain feature causes difficulties in extending or expanding the project, using version ​control ​allows the developers to track that particular feature out and change it or remove it without affecting the project'​s functionality. +
-4 Collaborate and contribute +
-One of the main benefits of version control systems, especially DVCS, is that it allowed us to contribute to projects we liked despite being in different countries. I would argue that the existence of DVCS was one of the main facilitators that allowed open-source technology to reach its current success. +
-Takeaways +
-Fully understanding version control systems, how they work and using them efficiently is one of the essential skills any programmer or software developers need to work on and grow to excel in their career. +
-Version control systems could be one of these topics that are quite complex and difficult to wrap your head around. That’s why I decided to create a series of articles tackling the different aspects of version control. The goal of these articles is to get you comfortably and easily started with version control. +
-The upcoming articles in this series will cover Git basics commands that every developer should know, some advanced commands to make you stand out, and how to use Git efficiently to make your workflow smooth and pleasant.+
  
  
 === 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.1626697211.txt.gz · Last modified: 2021/07/19 15:20 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