Flux 7 introduce 8 cazuri de utilizare Docker utilizate frecvent, și anume configurarea simplificată, gestionarea pipeline-ului de cod, eficiența îmbunătățită a dezvoltării, aplicații izolate, servere consolidate, capabilități de depanare, medii multi-chiriaș și dezvoltare rapidă. Am tot vorbit despre Docker, cum să-l folosești și cu ce ocazii? Poate acest articol te poate ajuta. Dacă există ceva de comunicat, puteți comunica cu noi prin comentarii.
Acum câteva săptămâni, am participat la DockerCon, prima conferință tech centrată pe Docker. Este destinat dezvoltatorilor și practicienilor interesați să construiască, livreze și rulează aplicații distribuite pe platforma deschisă Docker, fie că rulează pe propriile laptopuri sau pe mașini virtuale din centrul de date. Am participat la conferință, iar Flux7 este partener de integrare a sistemelor pentru fundațiile Docker și vorbitor invitat.
CEO-ul nostru, Aater Suleman, a vorbit cu unul dintre clienții noștri. Deși DockerCon a fost foarte distractiv, am simțit că conferința s-a concentrat prea mult pe detaliile Docker și a neglijat cazurile de utilizare ale acestuia. Așadar, în acest articol, vreau să introduc și să împărtășesc câteva cazuri practice de utilizare ale Docker.
Înainte să discutăm despre cazurile de utilizare ale Docker, să aruncăm o privire asupra a ceea ce face Docker atât de special.
Docker oferă virtualizare ușoară, aproape fără overhead suplimentar, ceea ce este destul de interesant.
În primul rând, nu trebuie să-ți faci griji pentru costurile suplimentare oferite de Docker, bucurându-te în același timp de puterea de virtualizare pe care o aduce. În al doilea rând, poți crea un număr mai mare de containere pe aceeași mașină decât pe o mașină virtuală.
Un alt avantaj al Docker este că containerele pot fi pornite și oprite în câteva secunde. Solomon Hykes, fondatorul Docker, a vorbit odată despre ce a realizat Docker pe lângă doar LXC, și poți să-l verifici.
Iată câteva dintre cazurile mele de utilizare pentru Docker, care vă arată cum să valorificați beneficiile Docker pentru a crea un mediu consecvent cu un overhead redus.
1. Configurație simplificată
Acesta este principalul caz de utilizare al Docker promovat de Docker Company. Cel mai mare beneficiu al mașinilor virtuale este posibilitatea de a rula diferite platforme (software, sisteme) pe facilitățile tale hardware, iar Docker oferă aceeași funcționalitate cu un cost suplimentar mai mic. Îți permite să pui runtime-ul și configurația în cod și apoi să le implementezi, iar configurația aceluiași Docker poate fi folosită în medii diferite, ceea ce reduce cuplarea dintre cerințele hardware și mediile aplicațiilor.
2. Managementul conductelor de cod
Scenariul anterior este de mare ajutor în gestionarea pipeline-ului de cod. Codul trece prin multe medii intermediare, de la mașina dezvoltatorului până la implementarea finală în mediul de producție. Fiecare mediu intermediar are propriile diferențe mici, iar Docker oferă un mediu consistent de la dezvoltare până la lansare, făcând pipeline-ul de cod mult mai ușor.
3. Îmbunătățirea eficienței dezvoltării
Acest lucru aduce unele beneficii suplimentare: Docker face ca dezvoltatorii să fie mai productivi. Dacă vrei să vezi un exemplu mai detaliat, poți consulta prezentarea Aater la DevOpsDays Austin 2014 sau la DockerCon.
În medii de dezvoltare diferite, toți vrem să facem două lucruri bine. În primul rând, vrem să facem mediul de dezvoltare cât mai aproape de mediul de producție, iar în al doilea rând, vrem să construim rapid mediul de dezvoltare.
Ideal, pentru a atinge primul obiectiv, trebuie să rulăm fiecare serviciu într-o mașină virtuală separată pentru a monitoriza starea serviciului în producție. Totuși, nu vrem să avem nevoie de o conexiune de rețea de fiecare dată și este deosebit de dificil să ne conectăm de la distanță de fiecare dată când recompilăm. Asta face Docker în mod deosebit de bine, mașinile din mediul de dezvoltare au de obicei memorie relativ mică, iar când folosim virtual, adesea trebuie să adăugăm memorie la mașinile din mediul de dezvoltare, dar acum Docker poate permite cu ușurință zeci de servicii să ruleze în Docker.
4. Izolarea aplicațiilor
Există multe motive pentru care ai putea alege să rulezi aplicații diferite pe o singură mașină, cum ar fi scenariile menționate anterior pentru a îmbunătăți eficiența dezvoltării.
Adesea trebuie să luăm în considerare consolidarea serverelor pentru a reduce costurile și divizarea unei aplicații monolitice într-un singur serviciu slab cuplat. Dacă vrei să înțelegi de ce aplicațiile slab cuplate sunt atât de importante, consultă această lucrare scrisă de Steve Yege care compară Google cu Amazon.
5. Consolidarea serverelor
Așa cum mai multe aplicații sunt integrate prin mașini virtuale, capacitatea Docker de a izola aplicațiile îi permite consolidarea mai multor servere pentru a reduce costurile. Fără amprentă de memorie de la mai multe sisteme de operare și cu posibilitatea de a partaja memoria nefolosită între mai multe instanțe, Docker poate oferi o soluție mai bună de consolidare a serverelor decât mașinile virtuale.
6. Abilitate de depanare
Docker oferă o mulțime de unelte care nu sunt neapărat doar pentru containere, dar funcționează și pentru containere. Oferă o mulțime de funcționalități, inclusiv posibilitatea de a seta puncte de control pentru containere, de a separa versiuni și de a vedea diferențele dintre două containere, ceea ce poate ajuta la depanarea bug-urilor. Poți găsi un exemplu în articolul Docker Save the World.
7. Mediul multi-chiriaș
Un alt caz de utilizare interesant pentru Docker este în aplicațiile multi-chiriaș, care pot evita rescrierea aplicațiilor critice. Un exemplu particular al acestui scenariu este dezvoltarea unui mediu multi-chiriaș rapid și ușor de folosit pentru aplicațiile IoT. Acest cod de bază multi-închiriere este complex și dificil de gestionat, iar replanificarea unei astfel de aplicații este o pierdere de timp și bani.
Cu Docker, este ușor și ieftin să creezi medii izolate pentru mai multe instanțe ale fiecărui strat de aplicație al tenantului, datorită vitezei mediilor Docker și comenzilor lor eficiente de diferențe.
Puteți afla mai multe despre acest scenariu aici.
8. Desfășurare rapidă
Înainte de mașinile virtuale, este nevoie de câteva zile pentru a introduce noi resurse hardware. Tehnologia de virtualizare a Docker reduce acest timp la minute, iar Docker creează pur și simplu un proces container fără să pornească sistemul de operare, ceea ce durează câteva secunde. Exact asta prețuiesc atât Google, cât și Facebook.
Poți crea o resursă de distrugere în centrul tău de date fără să-ți faci griji legate de costurile suplimentare ale unui restart. De obicei, centrele de date au doar 30% utilizare a resurselor, iar utilizarea resurselor poate fi îmbunătățită prin utilizarea Docker și o alocare eficientă a resurselor. |