Care este diferența dintre Openshift și OpenStack?

Cel mai bun răspuns

OpenStack este cloud Infrastructure as a service (IaaS). Oferă utilizatorilor o interfață pentru a porni sisteme de cpu / memorie / disc / rețea specifice folosind o imagine bazată pe un anumit sistem de operare (+ alte funcționalități). Utilizatorul final poate decide cum să utilizeze sistemul după ce Openstack creează un sistem / vm. El / ea poate instala unele aplicații la alegere etc. și le poate rula volumul de lucru. OpenStack acceptă mai mulți hipervizori de virtualizare.

OpenShift este cloud Platform as a Service (PaaS). Oferă utilizatorilor o interfață pentru a selecta o platformă de aplicație precum jboss / python și pentru a-și rula direct volumul de lucru cu codul / configurația specifică aplicației pentru a rula. Acest lucru este implementat folosind container / pods. Se poate folosi registrul Red Hat pentru containere testate / certificate sau se poate utiliza și registrul de andocare sau orice alt registru terț.

Răspuns

Nu există o singură modalitate de a compara, deoarece acestea sunt în mare parte lucruri diferite. Acestea fiind spuse, voi încerca mai întâi să definesc nevoia pentru fiecare dintre acestea și să le conectez.

Să începem cu partea de jos a stivei. Aveți nevoie de infrastructură pentru a vă rula serverele. Cu ce ​​ai putea merge? Puteți utiliza un furnizor VPS, cum ar fi DigitalOcean, sau puteți utiliza AWS.

Ce se întâmplă dacă, dintr-un motiv non-tehnic, nu puteți utiliza AWS? De exemplu, există o conformitate legală care stipulează că datele pe care le stoc și serverele pe care le rulez se află în aceeași geografie cu clienții pe care îi servesc, iar AWS nu are o regiune pentru același lucru?

Acesta este unde intervine OpenStack . Este o platformă pentru gestionarea infrastructurii dvs. Gândiți-vă la aceasta ca la o implementare open source a AWS pe care o puteți rula pe centre de date bare metal.

Apoi, ne deplasăm în sus în stivă. Vrem o modalitate eficientă de a împacheta și livra aplicația noastră. Luați în considerare un exemplu din lumea reală în care doriți să mutați o cantitate fixă ​​de mașini, cărbune și bumbac de la punctul A la punctul B. Pur și simplu nu le stivim pe toate în navă și le trimitem! Folosim containere. Un container este o unitate standardizată care asigură izolarea și ambalarea corespunzătoare a mărfurilor dvs., astfel încât acestea să poată fi deplasate eficient.

Sursa: Containere pe o navă de marfă fotografie de Axel Ahoi (@axelahoi) pe Unsplash

Docker este echivalentul software al unui container fizic. Oferă izolare și ambalare pentru aplicațiile dvs. Le puteți scala cu ușurință. Există multe tehnologii de containerizare, dar Docker este cea dominantă.

Îți dai seama că Docker îți oferă atât de multe avantaje și începi să folosești mai multe. Vă „containerizați” aplicațiile și le expediați la producție. În curând, vă confruntați cu o nouă problemă. Cum să gestionați eficient aceste containere? Cum pot orchestra containerele mele?

Sursă : Fotografie de repetiție a orchestrei de Manuel Nägeli (@gwundrig) pe Unsplash

De ce containerele au nevoie de orchestrare în primul rând? Șansele sunt că citiți acest răspuns pe computerul dvs. desktop, care rulează un sistem de operare. Când deschideți browserul, sistemul de operare alocă resurse precum memoria și puterea de calcul pentru procesul browserului. După un timp, schimbați fila browserului și apoi, o clipă mai târziu, deschideți un nou program. Sistemul de operare face multă muncă grea în culise, astfel încât toate procesele dvs. să obțină o parte echitabilă din resursele de calcul de care au nevoie. Avem nevoie de un sistem de operare la nivel de containere. Acesta este rolul exact pe care îl joacă Kubernetes .

Îi oferim lui Kubernetes un set de resurse de calcul (numite noduri) și o sarcină de lucru, precum „Hei, creați și dați-mi 3 containere pentru a rula această aplicație PHP ”, iar Kubernetes își propune să creeze containerele menționate pe lângă resursele mele de calcul existente. Există și alte soluții de orchestrare a containerelor, precum Docker swarm și Mesos.

Kubernetes este pentru clusterul dvs. ceea ce este un nucleu Linux pentru sistemul dvs. de operare. La fel cum nucleul gestionează doar procesele din sistemul dvs. de operare, Kubernetes gestionează doar containerele. Pentru a rula un sistem de operare complet, aveți nevoie de mult mai mult, cum ar fi utilizatori, permisiuni, drivere de dispozitiv și alte lucruri. Într-un mod similar, Kubernetes de la sine are o utilitate limitată. Vă poate furniza containere dacă îi oferiți o specificație sau o sarcină de lucru. Cum vă construiți containerul înainte să îl dați lui Kubernetes? Cum puteți declanșa automat o nouă aprovizionare Kubernetes după ce expediați un cod nou? Există o mulțime de soluții construite deasupra Kubernetes pentru a face acest lucru. Puteți fie să le optimizați, cât și să le conectați pentru a se potrivi nevoilor dvs., sau puteți utiliza OpenShift .

Sursă: Prezent, arc, panglică și fotografie HD de Crăciun Ben White (@benwhitephotography) pe Unsplash

OpenShift este o distribuție Kubernetes care combină toate aceste bunătăți pe Kubernetes goale într-un mod bine ambalat. OpenShift este pentru Kubernetes ceea ce este Ubuntu pentru Kernel-ul Linux. Nu este o „bifurcație” a lui Kubernetes, ci se dezvoltă deasupra.

Dacă doriți să faceți o scufundare profundă pe ceea ce construiește OpenShift deasupra lui Kubernetes, puteți verifica postarea mea pe topic, OpenShift vs Kubernetes – Craft of Coding .

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *