ABONAMENTE VIDEO TESTE REDACȚIA
RO
EN
×
▼ 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.

Reclame

Sponsori

  • ntt data
  • 3PillarGlobal
  • Betfair
  • Telenav
  • Accenture
  • Siemens
  • Bosch
  • FlowTraders
  • MHP
  • BCR
  • Itiviti
  • Connatix
  • UIPatj
  • MicroFocus
  • Colors in projects