Skip to content

Commit

Permalink
GitBook: [#26] edit welcome v2 + small checks
Browse files Browse the repository at this point in the history
  • Loading branch information
andrasome authored and gitbook-bot committed Sep 8, 2022
1 parent e72c4f1 commit 168bb6e
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 39 deletions.
28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ description: >-

# Bine ați venit

[Terraform](https://www.terraform.io/) este un proiect nou (ca și concept-ul de DevOps) și a fost creat în 2014.
[Terraform](https://www.terraform.io/) este un proiect nou (ca și majoritatea tool-urilor de DevOps) și a fost creat în 2014.

Terraform este unul din cele mai puternice (poate chiar cel mai puternic) instrumente și unul din cele mai folosite pentru a defini infrastructura ca și cod. Le permite dezvoltatorilor să facă o mulțime de lucruri și nu îi împiedică să facă lucruri în moduri care vor fi greu de susținut sau de integrat în viitor.

Expand Down Expand Up @@ -59,28 +59,28 @@ Câțiva ani mai târziu, a fost actualizată cu mai multe bune practici disponi
[Українська (Ukrainian)](https://app.gitbook.com/o/-LMqIrDlzEiI-N4uHrWg/s/tXRvMPILxeJaJTM2CsSq/)
{% endcontent-ref %}

Contact me if you want to help translate this book into other languages.
Contactați-mă dacă doriți să ajutați la traducerea acestei cărți în alte limbi.

## Contributions
## Contribuții

I always want to get feedback and update this book as the community mature and new ideas are implemented and verified over time.
Îmi doresc întotdeauna să primesc feedback și să actualizez această carte pe măsură ce comunitatea se maturizează și noi idei sunt implementate și verificate în timp.

If you are interested in certain topics please [open an issue](https://github.com/antonbabenko/terraform-best-practices/issues), or thumb up an issue you want to be covered most. If you feel that **you have content** and you want to contribute, write a draft and submit a pull request (don't worry about writing good text at this point!)
Dacă sunteți interesați de anumite subiecte vă rog[ ](https://github.com/antonbabenko/terraform-best-practices/issues)deschideți [un issue](https://github.com/antonbabenko/terraform-best-practices/issues) (o problemă), sau dați "Like" la o problemă existentă pe care doriți să o abordați cel mai mult. Dacă simțiți că aveți conținut și doriți să contribui, scrieți un text și trimiteți un pull request (nu vă faceți griji dacă scrieți un text bun în acest moment!).

## Authors
## Autori

This book is maintained by [Anton Babenko](https://github.com/antonbabenko) with the help of different contributors and translators.
Această carte este menținută de [Anton Babenko](https://github.com/antonbabenko) cu ajutorul diferiților colaboratori și traducători.

## Sponsors
## Sponsori

| [![](.gitbook/assets/cluster-dev-logo-site.png)](https://cluster.dev) | [Cluster.dev](http://cluster.dev)the only manager for cloud-native infrastructures. |
| --------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| [![](.gitbook/assets/coder-logo-for-sponsor.png)](http://coder.com/) | [Coder.com](http://coder.com/)create remote development machines for your team, powered by Terraform. |
| [![](.gitbook/assets/cluster-dev-logo-site.png)](https://cluster.dev) | [Cluster.dev](http://cluster.dev)singurul manager pentru infrastructurile cloud native. |
| --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| [![](.gitbook/assets/coder-logo-for-sponsor.png)](http://coder.com/) | [Coder.com](http://coder.com/)creați mașini de dezvoltare la distanță (remote) pentru echipa voastră, susținut de Terraform. |

## License
## Licență

This work is licensed under Apache 2 License. See LICENSE for full details.
Această lucrare este licențiată sub Apache 2 License. Consultați LICENSE pentru detalii complete.

The authors and contributors to this content cannot guarantee the validity of the information found here. Please make sure that you understand that the information provided here is being provided freely, and that no kind of agreement or contract is created between you and any persons associated with this content or project. The authors and contributors do not assume and hereby disclaim any liability to any party for any loss, damage, or disruption caused by errors or omissions in the information contained in, associated with, or linked from this content, whether such errors or omissions result from negligence, accident, or any other cause.
Autorii și colaboratorii la acest conținut nu pot garanta valabilitatea informațiilor găsite aici. Vă rugăm să vă asigurați că înțelegeți că informațiile furnizate aici sunt furnizate în mod liber și că nu este creat niciun fel de acord sau contract între dvs. și orice persoană asociată cu acest conținut sau proiect. Autorii și colaboratorii nu își asumă și nu își declină nicio responsabilitate față de orice parte pentru orice pierdere, daune sau întrerupere cauzată de erori sau omisiuni în informațiile conținute în, asociate cu sau legate de acest conținut, indiferent dacă astfel de erori sau omisiuni rezultă din neglijență, accident sau orice altă cauză.

Copyright © 2018-2022 Anton Babenko.
14 changes: 7 additions & 7 deletions code-structure.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@

## Cum ar trebui să-mi structurez configurațiile Terraform?

Aceasta este una dintre întrebările pentru care există o mulțime de soluții și este foarte greu să dai sfaturi universale, așa că să începem cu a înțelege cu ce avem de-a face.
Aceasta este una dintre întrebările pentru care există o mulțime de soluții și este foarte greu să dai sfaturi universale, așa că este util să începem prin a înțelege cu ce avem de-a face.

* Care este complexitatea proiectului?
* Numărul de resurse aferente
* Numărul de furnizori Terraform (vezi nota de mai jos despre „furnizorii logici”)
* Cât de des se schimbă infrastructura proiectului?
* **De la** o dată pe lună/săptămână/zi
* **La** continuu (de fiecare dată când există un nou commit)
* Tirggeri pentru schimbari in cod? _Permiteți serverului CI să actualizeze depozitul Gitatunci când este construit un nou artefact?_
* Doar dezvoltatorii pot face push în depozitul de infrastructură
* Tirggeri pentru schimbari in cod? _Permiteți serverului CI să actualizeze Git repository atunci când este construit un nou artefact?_
* Doar dezvoltatorii pot face push în repository-ul de infrastructură
* Toată lumea poate propune o schimbare la orice, deschizând un PR (inclusiv activități automate care rulează pe serverul CI)
* Ce platformă de implementare sau serviciu de implementare utilizați?
* AWS CodeDeploy, Kubernetes, sau OpenShift au nevoie de o abordare ușor diferită
Expand All @@ -38,7 +38,7 @@ Punerea întregului cod în `main.tf` este o idee bună atunci când începeți
## Cum să ne gândim la structura fișierelor de configurație Terraform?

{% hint style="info" %}
rugăm să vă asigurați că înțelegeți conceptele cheie - [modulul de resurse](key-concepts.md#modul-de-resurse), [modulul de infrastructură](key-concepts.md#modulul-de-infrastructura) și [compoziția de infrastructură](key-concepts.md#compozitia-de-infrastructura), așa cum sunt utilizate în exemplele următoare.
rog să vă asigurați că înțelegeți conceptele cheie - [modulul de resurse](key-concepts.md#modul-de-resurse), [modulul de infrastructură](key-concepts.md#modulul-de-infrastructura) și [compoziția de infrastructură](key-concepts.md#compozitia-de-infrastructura), așa cum sunt utilizate în exemplele următoare.
{% endhint %}

### Recomandări uzuale pentru structurarea codului
Expand All @@ -53,7 +53,7 @@ Vă rugăm să vă asigurați că înțelegeți conceptele cheie - [modulul de r
* Gestionarea unui fișier`tfstate` în git este un coșmar
* Mai târziu, când straturile de infrastructură vor începe să crească în mai multe direcții (număr de dependențe sau resurse), va fi mai ușor să țineți lucrurile sub control
* Practicați o structură consecventă și o convenție de denumire a resurselor ([naming](naming.md) convention):
* La fel ca în cazul codului procedural, codul Terraform ar trebui scris pentru ca oamenii să-l citească mai întâi, consecvența va ajuta atunci când vor avea loc schimbări peste șase luni.
* La fel ca în cazul codului procedural, codul Terraform ar trebui scris pentru ca oamenii să-l citească mai întâi, consecvența va ajuta atunci când vor avea loc schimbări peste șase luni
* Este posibil să mutați resurse în fișierul de stare Terraform, dar poate fi mai greu de făcut dacă aveți o structură și o denumire inconsecventă
* Păstrați modulele de resurse cât mai simple posibil
* Nu puneți simplu text (hardcoded) valorile care pot fi transmise ca variabile sau descoperite folosind surse de date
Expand All @@ -63,15 +63,15 @@ Vă rugăm să vă asigurați că înțelegeți conceptele cheie - [modulul de r

### Orchestrarea modulelor și compozițiilor de infrastructură

A avea o infrastructură mică înseamnă că există un număr mic de dependențe și puține resurse. Pe măsură ce proiectul crește, necesitatea de a înlănțui execuția configurațiilor Terraform, conectarea diferitelor module de infrastructură și transmiterea valorilor într-o compoziție devine evidentă.
A avea o infrastructură mică înseamnă că există un număr mic de dependențe și puține resurse. Pe măsură ce proiectul crește, necesitatea de a înlănțui execuția configurațiilor Terraform, conectarea diferitelor module de infrastructură și transmiterea valorilor într-o compoziție, devine evidentă.

Există cel puțin 5 grupuri distincte de soluții de orchestrare pe care dezvoltatorii le folosesc:

1. Doar Terraform. Foarte simplu, dezvoltatorii trebuie să cunoască doar Terraform pentru a duce treaba la bun sfârșit.
2. Terragrunt. Instrument de orchestrare pur, care poate fi folosit pentru a orchestra întreaga infrastructură, precum și pentru a gestiona dependențe. Terragrunt operează cu module de infrastructură și compoziții în mod nativ, astfel încât reduce duplicarea codului.
3. Scripturi interne. Adesea, acest lucru se întâmplă ca punct de plecare către orchestrare și înainte de a descoperi Terragrunt.
4. Instrument de automatizare Ansible sau altceva asemănător. Utilizat de obicei atunci când Terraform este adoptat după Ansible sau când Ansible UI este utilizat în mod activ.
5. [Crossplane](https://crossplane.io/) și alte soluții inspirate de Kubernetes. Uneori, este logic să utilizați ecosistemul Kubernetes și să folosiți o funcție de buclă de reconciliere pentru a obține starea dorită a configurațiilor dvs. Terraform. Vizualizați videoclipul [Crossplane vs Terraform](https://www.youtube.com/watch?v=ELhVbSdcqSY) pentru mai multe informatii.
5. [Crossplane](https://crossplane.io/) și alte soluții inspirate de Kubernetes. Uneori, este logic să utilizați ecosistemul Kubernetes și să folosiți o funcție de buclă de reconciliere pentru a obține starea dorită a configurațiilor Terraform. Vizualizați videoclipul [Crossplane vs Terraform](https://www.youtube.com/watch?v=ELhVbSdcqSY) pentru mai multe informații.

Având în vedere acest lucru, această carte trece în revistă primele două dintre aceste structuri de proiect, doar Terraform și Terragrunt.

Expand Down
10 changes: 5 additions & 5 deletions examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ Exemplele următoare prezintă cazul în care AWS a fost ales ca furnizor, dar m

## Structuri de cod Terragrunt

| Tip | Descriere | Disponibilitate |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- |
| medie | Mai multe conturi de AWS și medii de lucru, module de infrastructură gata de folosire, model de compoziție folosind Terragrunt. | Nu |
| mare | Mai multe conturi de AWS, multiple regiuni many regions, nevoie urgentă de a reduce folosirea metodei copy-paste, module de infrastructură personalizate, utilizare ridicata a compoziției de cod. Folosind Terragrunt. | Nu |
| foarte mare | Furnizori multiplii (AWS, GCP, Azure). Implementări multi-cloud. Folosind Terragrunt. | Nu |
| Tip | Descriere | Disponibilitate |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- |
| medie | Mai multe conturi de AWS și medii de lucru, module de infrastructură gata de folosire, model de compoziție folosind Terragrunt. | Nu |
| mare | Mai multe conturi de AWS, multiple regiuni, nevoie urgentă de a reduce folosirea metodei copy-paste, module de infrastructură personalizate, utilizare ridicata a compoziției de cod. Folosind Terragrunt. | Nu |
| foarte mare | Furnizori multiplii (AWS, GCP, Azure). Implementări multi-cloud. Folosind Terragrunt. | Nu |
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Acest exemplu conține un cod ca exemplu de structurare a configuraților Terraf
* 2 regiuni
* 2 medii de lucru separate (`prod` și `stage` care nu au procese comune). Fiecare mediu de lucru există într-un cont AWS separat și conține resurse în două regiuni
* Fiecare mediu de lucru folosește o altă versiune a modulelor de infrastructură gata de folosire (`alb`) provenite din [Terraform Registry](https://registry.terraform.io/)
* Fiecare mediu de lucru folosește aceeași versiune a unui modul intern `modules/network` provenind din aceeași sursă locală (local directory).
* Fiecare mediu de lucru folosește aceeași versiune a unui modul intern `modules/network` provenind din aceeași sursă locală (local directory)

{% hint style="info" %}
Într-un proiect de dimensiuni mari ca cel descris aici, beneficiile utilizării Terragrunt devin foarte vizibile. Vezi [Exemple de structuri de cod - Terragrunt](../terragrunt.md).
Expand Down
6 changes: 3 additions & 3 deletions examples/terraform/medium-size-infrastructure.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ Sursă: [https://github.com/antonbabenko/terraform-best-practices/tree/master/ex
Acest exemplu conține un cod ca exemplu de structurare a configuraților Terraform pentru o infrastructură de dimensiuni medii care folosește:

* 2 conturi AWS 
* 2 medii de lucru separate (`prod` și `stage` care nu au procese comune). Fiecare mediu de lucru există într-un cont AWS separat.
* Fiecare mediu de lucru folosește o altă versiune a modulelor de infrastructură gata de folosire (`alb`) provenite din [Terraform Registry](https://registry.terraform.io/).
* Fiecare mediu de lucru folosește aceeași versiune a unui modul intern `modules/network` provenind din aceeași sursă locală (local directory).
* 2 medii de lucru separate (`prod` și `stage` care nu au procese comune). Fiecare mediu de lucru există într-un cont AWS separat
* Fiecare mediu de lucru folosește o altă versiune a modulelor de infrastructură gata de folosire (`alb`) provenite din [Terraform Registry](https://registry.terraform.io/)
* Fiecare mediu de lucru folosește aceeași versiune a unui modul intern `modules/network` provenind din aceeași sursă locală (local directory)

{% hint style="success" %}
* Perfect pentru proiecte în care infrastructura este separată logic (conturi AWS separate)
Expand Down
2 changes: 1 addition & 1 deletion examples/terraform/small-size-infrastructure.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ Acest exemplu conține un cod ca exemplu de structurare a configuraților Terraf
{% endhint %}

{% hint style="warning" %}
Un singur fișier de stare pentru toate resursele poate face procesul de lucru cu Terraform să încetinească dacă numărul de resurse crește (considerați folosirea unui argument ca `-target` pentru a limita numărul de resurse).
Un singur fișier de stare pentru toate resursele poate face procesul de lucru cu Terraform să încetinească dacă numărul de resurse crește (considerați folosirea unui argument ca`-target` pentru a limita numărul de resurse).
{% endhint %}
6 changes: 3 additions & 3 deletions key-concepts.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Acest capitol descrie conceptele cheie folosite în această carte.

Resursele sunt, de exemplu, `aws_vpc`, `aws_db_instance`, etc. O resursă aparține unui furnizor (provider), acceptă argumente, întoarce atribute și are cicluri de viață. O resursă poate fi creată, preluată, actualizată și ștearsă.

## Modul de resurse
## Modulul de resurse

Modulul de resurse este o colecție de resurse conectate care realizează împreună o acțiune comună (de exemplu, [modulul Terraform pentru AWS VPC](https://github.com/terraform-aws-modules/terraform-aws-vpc/) creează VPC, subrețele, NAT gateway etc.). Depinde de configurația furnizorului, care poate fi definită în acesta, sau în structuri de nivel superior (de exemplu, în modulul de infrastructură).

Expand All @@ -24,7 +24,7 @@ Un alt exemplu este modulul [terraform-aws-cloudquery](https://github.com/cloudq

Compoziţia este o colecție de module de infrastructură, care se pot întinde pe mai multe zone separate logic (de exemplu, regiuni AWS, mai multe conturi AWS). Compoziţia este utilizată pentru a descrie infrastructura completă necesară pentru întreaga organizație sau întreagul proiect.

O compoziţie constă din module de infrastructură, care constau din module de resurse, care implementează resurse individuale.
O compoziţie este constituită din module de infrastructură, care sunt constituite din module de resurse, care implementează resurse individuale.

![O compoziţie de infrastructură simplă ](.gitbook/assets/composition-1.png)

Expand All @@ -40,7 +40,7 @@ Sursa de date [http ](https://registry.terraform.io/providers/hashicorp/http/lat

## Remote state

Modulele de infrastructură și compozițiile ar trebui să-și păstreze [starea Terraform](https://www.terraform.io/language/state) într-o locație la distanță numită remote state, unde pot fi preluate de către alții într-un mod controlabil (de exemplu, specificați ACL, versionări, logging).
Modulele de infrastructură și compozițiile ar trebui să-și păstreze [starea Terraform](https://www.terraform.io/language/state) într-o locație la distanță numită remote state, unde pot fi preluate de către alții într-un mod controlabil (de exemplu, specificații ACL, versionări, logging).

## Provider, provisioner, etc

Expand Down
Loading

0 comments on commit 168bb6e

Please sign in to comment.