ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
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 76
Abonament PDF

Deployment în Cloud Hibrid folosind Visual Studio Team Services (Azure DevOps)

Mihai Sava
Devops Consultant @ Endava



PROGRAMARE

Cu toții am auzit despre concept, o definiție cât mai scurtă ar fi "Accesarea la cerere, de resurse hardware și software, prin internet oferite de către un furnizor". Un Cloud Hibrid nu este altceva decât o combinație într-un Cloud Public de genul Microsoft Azure și resursele hardware locale.

Prin anii 80 și până la explozia Dot Com din anul 2000 majoritatea corporațiilor își țineau ocupate etaje, subsoluri cu echipamente hardware care valorau sute de milioane de dolari constând în mainframe-uri de ultima generație, switch-uri, routere și ehipamente de răcire.

Conceptul de Cloud există încă din anii 80 când corporațiile gigant închiriau resursele hardware companiilor mai mici, odată cu intrarea pe piață a jucătorilor mari de Cloud Computing multe din subsolurile cu echipamente hardware ale corporațiilor dispăreau.

Cloud Hibrid

După cum ziceam mai sus tot mai multe companii se "mută" în Cloud din diferite motive unul și cel mai evident este acela de cost dar și renunțarea la mentenanța echipamentelor hardware. Pe lângă cost și mentenanță un alt factor este scalabilitatea, este mult mai ușor într-un Cloud să adaugi resurse hardware bazate pe nevoile de consum decât într-un mediu local unde adăugarea de resurse hardware poate fi mult mai costisitoare și consumatoare de timp. Un Cloud Hibrid poate fi găzduit fie în locația unde compania își desfășoară activitatea fie de către un terț.

Livrare Hibrida cu Visual Studio Team Services

Un Public Cloud de genul Microsoft Azure nu este întotdeauna soluția cea mai optimă pentru multe din companii și asta din varii motive, unul din ele și cel mai frecvent întâlnit de noi a fost acela al securități și reglementărilor guvernamentale și atunci soluția unui Cloud Hibrid este mult mai plauzibilă fie el local sau printr-un terț.

Într-o astfel de situație am fost și noi implicați, în a găsii ceea mai optimă varianta de livrare a soluțiilor dezvoltate într-un Cloud Public - Microsoft Azure și un Cloud Hibrid printr-un terț.

Tehnologiile care sunt aprobate pentru conceperea acestui plan sunt Visual Studio Team Services (Recent sub numele de Azure DevOps) Microsoft Azure că și mediu Dev/Qa și SonarQube.

De ce Visual Studio Team Services (VSTS), pentru că este gratis pentru firmele care au încheiat un parteneriat cu Microsoft prin intermediul MSDN (Microsoft Developer Network) plus zero costuri cu mentenanță fiind un serviciu SaaS (Software-as-a-Service).

Cu toate astea că și cerință am început a elabora un concept și varianta din graficul de mai jos este și cea finală:

VSTS în detaliu

Pentru că totul să fie posibil în diagrama propusă ne vom folosi de un concept din VSTS numit Self Hosted Agents. De obicei un Cloud Hibrid se află în spatele unor firewall-uri și are conexiune limitată la internet sau internetul este deservit printr-un proxy.

Agentul de care ne vom folosi nu este altceva decât un serviciu de Windows (sau Linux, MacOS) care orchestrează toate acțiunile în Cloud-ul Hibrid, fie ele Deployments, rulări de teste automate sau Code Builds.

Funcționalitatea din spatele unui Agent Self Hosted este destul de simplă, el trebuie instalat pe o mașină dedicată în cazul nostru un Windows Server 2012R2 cu conexiune prin proxy la internet pe lângă asta mai este necesar că  toate dependințele software să fie instalate pe mașină dedicată, aici depinde în funcție de tehnologia proiectului ce dependințe trebuie instalate.

Proiectul nostru este unul .NET 4.6.1 deci avem nevoie de Visual Build Tools.

Înainte de a conecta un Self Hosted Agent este necesar crearea unui nou Pool în secțiunea Agent Pools din VSTS pe care îl vom numi "DeploymentAgents" în acest fel vom știi că toți agenți care fac parte din acest Pool sunt doar Deployment Agents:

Imaginea de mai jos reprezintă pași de instalare a unui Self Hosted Agent:

Dacă mașină pe care se instalează agentul este conectată la internet printr-un proxy este nevoie de crearea unui fișier cu extensia .proxy unde se va specifică adresa de proxy sub formă de http://IP:(Port) , după ce fișierul .proxy a fost creat se poate rula scriptul config.cmd unde se specifică următoarele detalii:

Dacă toate opțiunile au fost valide agentul se va înregistra în instanța de VSTS în grupul DeploymentAgents:

Avem așadar un Self Hosted Agent conectat la instanța noastră de VSTS el este disponibil pentru toate proiectele existente și nou create.

Mai urmează acum să configurăm planul de deployment în așa fel încât să se folosească de agentul nou adăugat în VSTS în acest fel avem scenariul din digrama propusă.

Pentru fiecare plan de deployment va fi nevoie schimbarea grupului sub Agent Pool cu cel sorespunzator Cloud-ului Hibrid, în cazul nostru grupul este "DeploymentAgents":

Concluzie

Am reușit cu ajutorul lui Visual Studio Team Services să implementăm o soluție de Continuous Delivery prin intermediul unui Self Hosted Agent care orchestrează livrarea artefactului între un Cloud Public - Microsoft Azure și un Cloud Hibrid care se află în spatele unui firewall și cu internet printr-un proxy server. Soluția este una fiabilă deoarece nu se modifică structura artefactului.

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