ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 150
Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 25
Abonament PDF

Du-te (GO) și găsește instrumentul

Marius Ciotlos
Delivery Manager
@Betfair



PROGRAMARE


De când am început să lucrez în industria IT, am avut multe roluri diferite, de la dezvoltare software până la suport rețea și suport tehnic computer.

După o perioadă destul de îndelungată de muncă în această industrie, am constatat că puține instrumente sunt cu adevărat inovatoare. De asemnea, multe dintre instrumentele existente sunt se deosebesc între ele prin puține nuanțe sau sunt atât de specifice în sarcina lor încât depinde de tine cum îți formezi procesul de lucru cu ele. În rândurile următoare, voi atrage atenția asupra unui instrument care se numește GO și este dezvoltat de ThoughtWorks. Este dificil de găsit din cauza numelui simplu, elegant, aceasta pe lângă dezavantajul că limbajul de programare GO are același nume.

Ce este acest instrument?

Dar destul cu introducerea; să trecem la detaliile din spatele acestui instrument. GO a fost conceput drept un instrument cu care să poți face "Livrare continuă". Aș dori să evit atingerea acestui subiect, din cauză că există atât de multe lucrări pe această temă și fiecare autor tehnic imprimă terminologiei propria sa particularitate.Este un instrument foarte personalizabil pentru fluxul de lucru. Și mai presus de toate, este acum sursă deschisă (open source ).

Am aflat de GO de abia acum o lună, într-un seminar din cadrul companiei mele. Unii ar putea crede că ni s-au inoculat informații subiective de către vreun furnizor plătit de către ThoughtWorks. Este departe de adevăr. GO era în acel moment doar numele unui instrument obscur (pentru mine). Am fost sceptic în privința instrumentelor complexe "universale", căci am avut partea mea de dezamăgiri cu unele dintre ele, care întotdeauna se promovează drept făcând multe, dar sfârșesc de multe ori prin a te încurca.

Structura lui GO: Privire de ansamblu de la nivel înalt, privind instrumentul din spațiu

GO este un Server →Arhitectură de tip agent, unde ai serverul principal cu UI și mulți agenți care se conectează cu acest Server și primesc comenzi. Agenții pot rula pe Windows, Linux și Mac OSX, și depinde de tine cât de mulți vrei (poți chiar să rulezi mai mulți agenți pe un aparat).

Pe server ai:

Agenții tăi vor avea etichete (tags ) care specifică ceea ce pot face (de exemplu, să ruleze bash , să ruleze python să ruleze GIT, să ruleze SSH), iar operațiile tale (jobs ) au și ele eticheta pentru a specifica resursele de care ai nevoie pentru ca acea lucrare să se deruleze. Serverul doar potrivește agentul potrivit pentru job -ul potrivit!

Ce poți face cu GO?

Noi îl utilizăm pentru punerea în funcțiune a serverelor (server deployments ), rularea testelor și a automatizării de infrastructură. Totuși modul în care este construit, vă permite să-l utilizați pentru multe alte scopuri. Cum funcționează:

Principalele caracteristici care îți permit să atingi acest nivel ridicat de flexibilitate:

Comenzi personalizate

Comenzile personalizate (custom ) sunt o listă de comenzi pe care le poți folosi pentru a face lucruri într-o sarcină. Ce e frumos la GO este că poți rula literalmente orice utilizând un terminal (Linux, Windows, Mac OSX). Dacă comenzile de bază nu sunt suficiente pentru tine, este posibil să îți creezi singur comenzi mai complexe, utilizând scrip t-uri (gândește-te la PowerShell, Python, etc.). Comenzile personalizate îți permit de asemenea să urmărești statutul unei comenzi care tocmai a rulat. Noi am folosit script -uri Python pentru a avea și mai multă flexibilitate în procesarea rezultatului (output-ul) și trimiterea înapoi a "codului status" astfel încât să știi dacă o sarcină (care rulează comanda) a eșuat sau nu.

Artefacte – Construiește și testează

Artefactele sunt al doilea concept grozav în GO, unde o lucrare (care are sarcini multiple cu comenzi personalizate) poate genera un rezultat și tu ai putea să "îi spui" lui GO că acesta este un artefact. Chiar dacă ai doar două tipuri de artefacte permise de GO, Artefactul Build este destul de generic pentru a fi orice. Cu artefactele poți aduce în instrument mai multe informații de la output (rezultat), dar poți de asemenea să le furnizezi pentru utilizare într-o Etapă diferită sau la un Produs în dezvoltare diferit. Imaginați-vă un scrip t care generează un binar temporar de care ai nevoie mai încolo în cursul dezvoltării produsului. Ai putea utiliza artefacte pentru a nu mai avea nevoie de un repo extern pentru ceva care este atât de volatil. De asemenea, Artefactele Test sunt felul în care GO poate interpreta rezultatele testelor pentru o Etapă.

Pe baza artefactelor poți avea niște tab -uri speciale care să încarce HTML-ul pe care l-ai generat cu o comandă, pentru a-l vedea direct în instrument.

Configurația XML

Întreaga configurație pentru server stă într-o versiune de fișier XML. Dacă interfața pentru utilizator nu este suficientă, poți oricând să editezi manual. Această funcție este disponibilă numai pentru Super Admin deoarece este foarte ușor și posibil să încurci lucrurile de acolo. Configurația XML stă într-o zonă de text care are multă validare, dar un lucru pe care probabil îl vei face în timp ce îți definești fluxul de lucru este să redenumești anumite Produse care sunt în dezvoltare, iar acest lucru poate să îți cauzeze probleme.

Bibliografie

Forum public: https://groups.google.com/forum/#!forum/go-cd

Documentație: https://go.app.betfair/go/help/index.html

Pagină comunitate mai veche: http://support.thoughtworks.com/categories/20002778-Go-Community-Support

Webinar introductiv: http://www.go.cd/2014/03/10/go-webinar-recording.html

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects