‫În regulă, acum că am învățat totul despre scalarea Swarm cu rețeaua de plasare și rețeaua superioară, vreau să treceți
‫prin procesul de creare a bunurilor sau a obiectelor pe care trebuie să le implementați
‫într-un scenariu Swarm.
‫Deci, nu mai folosim comanda de rulare a docker-ului, dar rețeaua și volumele sunt
‫cam la fel, dar ușor diferite.
‫Vreau să vă dau un scenariu real al unei aplicații multi-tier și vom folosi aplicația distribuită de votare a
‫Docker.
‫Se numește de fapt aplicația Exemple de votare.
‫S-ar putea să fi văzut-o în notele-cheie Docker sau în alte laboratoare sau tutoriale.
‫Este destul de comună și cred că este o aplicație excelentă, deoarece are cel puțin cinci roluri sau mai multe containere
‫pe care trebuie să le folosiți.
‫Și toate servesc o funcție specială și de fapt fac lucruri care de fapt funcționează, de fapt, fac ceea ce
‫trebuie să facă.
‫Și astfel puteți juca cu el și are componente tipice, distribuite de arhitectură precum interfața
‫web și backend-ul lucrătorilor
‫și valoarea cheie într-o bază de date. Cred că este foarte util să o faceți. În acest caz, veți
‫folosi directorul swarm-app-1. Este de fapt în repo cursul nostru. Nu există
‫decât o citire și o imagine. De la acel readme, trebuie să creați volumul și câteva rețele și
‫cinci servicii necesare pentru ca această aplicație să funcționeze pe deplin.
‫Acesta vă poate ajuta să încercați unele dintre aceste comenzi la nivel local sau, de fapt, să le scrieți în editorul dvs. de text și să le
‫compuneți, deoarece acestea vor fi puțin complexe. Când faceți acest serviciu
‫de docare, trebuie să îl conectați la o anumită rețea și să deschideți porturile și să-l numiți
‫un nume specific și să utilizați o anumită imagine. Deci, ar putea fi mai ușor să o editați la nivel local și apoi
‫să vă tăiați și să vă lipiți în cochilia dvs., oriunde vă aflați.
‫Dar asta sunt doar eu.
‫Totul va folosi imaginile Docker Hub, deoarece în producția Swarm nu vrei să construiești.
‫Nu este un proces pe care îl vrei pe producția ta Swarm, de obicei.
‫De obicei, doriți să faceți clădirea dvs. fie printr-un serviciu online automatizat, cum ar fi
‫Docker Hub sau Docker Cloud, sau undeva în conducta dvs. CI / CD care nu mănâncă resurse pe producția dvs. Swarm.
‫În acest scenariu, ne putem imagina că imaginile noastre sunt construite în altă parte și stocate
‫pe Docker Hub și trebuie doar să le tragem în jos, indiferent de cele mai recente versiuni, în Swarm.
‫Și voi spune asta, la fel ca multe lucruri din Informatică, este o jumătate de știință, o jumătate de artă.
‫Comenzile dvs. ar putea fi în ordine total diferită sau au comenzi de opțiuni total diferite decât ale mele.
‫S-ar putea numi rețelele dvs. diferite lucruri.
‫E in regula.
‫În final, rezultatul este că aplicația funcționează, că este capabil să vorbească unul cu
‫celălalt în mod corespunzător, că aveți toate porturile publicate și că aveți datele protejate într-un volum.
‫Să aruncăm o privire rapidă asupra a ceea ce aveți de-a face.
‫Imaginați-vă că trebuie să proiectați comenzile și arhitectura pentru asta.
‫Și asta ți-ar da dezvoltatorul care ți-a scris această aplicație.
‫Ei bine, în acest caz, probabil că o mulțime de dezvoltatori au scris această aplicație, nu?
‫Deoarece avem de fapt un interfață web care este în Python, avem un backend Web care
‫rulează în Nod.
‫Avem un proces de muncitor care rulează. NET și apoi avem un magazin cu valoare cheie
‫Redis și o bază de date PostgreSQL.
‫Acesta este de fapt un lucru pe care îl văd tot mai des, în care echipe diferite scriu diferite părți
‫ale unei soluții și sunt capabili să aleagă limba pe care o consideră cea mai bună pentru scenariul respectiv.
‫Și în lumea containerelor, acest tip de aplicație strălucește cu adevărat. Deoarece aplicațiile noastre sunt toate segmentate, acestea pot
‫rula din punct
‫de vedere tehnic pe aceeași mașină, dar toate sunt protejate una de alta, astfel încât
‫să nu ajungeți în Nod în conflict cu dependențe de Python sau orice altceva.
‫De asemenea, veți observa fluxul de trafic, iar aplicația de votare nu o are, dar ar trebui să aibă o
‫săgeată care să vină prin faptul că acesta este locul în care utilizatorii vor veni în partea
‫de votare.
‫Și puteți vedea că aplicația de votare trebuie să vă împrăștie voturile pentru această aplicație, care, apropo, veți
‫vota pentru pisici și câini.
‫O să îl împingeți în Redis, iar apoi muncitorul va verifica sistemul Redis pentru
‫orice în coadă și apoi va împinge rezultatele în Postgres care vor fi apoi afișate pe
‫un backend WebSockets care actualizează actualmente în timp real vot.
‫Dacă intrăm rapid în Directoare, am pus niște note aici pentru a vă ajuta pe parcurs, deoarece există
‫câteva lucruri care sunt puțin diferite și noi.
‫Dar zona de servicii ar fi scrisă ca și cum ar fi fost de la cineva care știa cererea lor, dar nu știa
‫cum să implementeze acest lucru în Docker. Și acesta este un scenariu destul de comun.
‫Puteți vedea că în serviciile pe care le-am enumerat imaginea pe care trebuie să o implementați, numele
‫real pe care trebuie să-l dați, deoarece acestea sunt importante.
‫Acestea sunt imagini care, din păcate, codificate greu pentru numele pe care vor căuta în rețea.
‫În mod ideal, doriți ca aplicațiile pe care le puteți configura în regim de urgență pentru ceea ce trebuie să facă pentru nume,
‫dar, în acest caz, votul va căuta în mod special o înregistrare DNS numită redis. Puteți vedea că există două
‫rețele aici. Avem o rețea frontală și o rețea backend. Este destul de tipic, de asemenea,
‫o aplicație mai mare în cazul în care doriți să vă protejați baza de date într-o rețea de backend, astfel
‫încât aplicația de utilizator frontend să nu aibă acces direct la acesta.
‫Și asta am arătat aici și veți observa că lucrătorul este de fapt conectat la două rețele.
‫Deci, atunci când utilizați comanda dvs. de creare, amintiți-vă că utilizați serviciul de docare creare nu rulează docker.
‫Deci, atunci când folosiți comanda de creare a serviciului de andocare, va trebui să specificați -network
‫de două ori, o dată pentru interfață și o singură dată pentru backend.
‫Evident, știi să creezi mai întâi rețelele tale.
‫Deci, unele dintre acestea sunt specificate aici. Și dacă aveți nevoie de imaginea din nou, diagrama de arhitectură este
‫de asemenea aici, doar în cazul în care vă ajută în mod conceptual cu modul în care veți implementa acest lucru.
‫Și, desigur, veți avea documentația Docker. S-ar putea să fie nevoie să utilizați comanda --help
‫din comanda de creare a serviciului care vă va oferi toate opțiunile de care aveți nevoie.
‫Voi aveți nevoie doar de trei sau patru dintre acestea. Dacă rămâneți blocați cu comenzile înșiși,
‫poate doriți să revizuiți documentația actuală, pe care o voi pune în resursele acestei secțiuni.
‫Dar acest document special, în cadrul programului Swarm, merge de fapt în crearea serviciilor și configurarea serviciilor.
‫Așadar, este un pic cam proastă, dar are multe informații care te pot ajuta dacă rămâi
‫aici.
‫Următorul videoclip, de fapt, voi trece prin tot acest lucru ca și cum aș fi fost tu.
‫Mult noroc și să te distrezi.