Скитник

Docker Vs Vagrant

Docker Vs Vagrant

Екипите за разработка и експлоатация се занимават със сложността на софтуерните среди от самото начало. Често срещан проблем е, когато работещият код в една среда не работи в друга.

Както докерът, така и скитникът помагат за създаването на предсказуеми и повторяеми среди за разработка. Docker обаче използва контейнерна технология, докато vagrant използва виртуални машини, за да постигне тази цел. Разбирането на силните и слабите страни на Docker и Vagrant ще помогне на разработчиците да смесят и съчетаят тези инструменти, за да постигнат желаните резултати.

Нека първо започнем с основните технологии.

Виртуална машина

Виртуална машина (VM) емулира физически компютър. Той идва със собствена цялостна операционна система и разпределение на ресурси. Хост машината предоставя необходимите физически ресурси, но виртуализираната среда работи като независима машина със собствен BIOS, процесор, хранилище и мрежови адаптери.

Въпреки че днес VMware е най-известен със съвременната VM технология, идеята за виртуалната машина съществува отдавна.

През 1965 г. изследователският център на IBM Yorktown се нуждаеше от начин да измери ефективността на различни идеи за компютърни науки. Изследователският екип искаше да превключва между функции и да измерва резултатите. Екипът измисли схема за разделяне на една машина на по-малки дялове. По-малките дялове ще управляват собствените си ресурси. Те биха били малки виртуални машини.

Идеята за VM беше успешна. IBM започна да прави операционни системи, базирани на виртуални машини. IBM System 370 (S / 370) и IBM System 390 (S / 390), и двете базирани на IBM VM / ESA системи, станаха популярни сред бизнеса и университетите, защото позволиха на институциите да позволят на своите потребители да споделят изчислителни ресурси, без да засягат средата на другия. Идеята спомогна и за създаването на операционната система Unix и езика за програмиране Java.

Съвременните виртуални машини работят на хипервизори. Хипервизорите са софтуерът, фърмуерът или хардуерът, отговорни за създаването и изпълнението на виртуални машини. На пазара има много хипервизори. KVM, Red Hat Enterprise Virtualization (RHEV), XenServer, Microsoft Hyper-V и VMware vSphere / ESXi са видни играчи.

Днес виртуалните машини стимулират растежа на облачните изчисления. Amazon AWS, Microsoft Azure, Google Cloud, Digital Ocean и други облачни компании силно зависят от технологията за виртуализация.

Контейнери

Контейнерите създават виртуализация на ниво операционна система. Те работят като изпълним софтуерен пакет, който изолира приложенията от заобикалящата го среда. Вътре в пакета контейнерът има необходимите свойства като код, време на изпълнение, системни библиотеки и инструменти, за да поддържа приложението отделно от външно влияние. Той работи на операционната система на хост машината. Контейнерите споделят библиотеки и двоични файлове, когато е възможно, и отделя само абсолютно необходимите ресурси.

През 1979 г. системните повиквания „chroot“ могат да изолират процеси за Unix. Това беше първото семе на идеята за контейнера. Ранната контейнерна технология стартира с FreeBSD Jails през 2000 година. Година по-късно Linux VServer позволи на множество машини Linux да работят на един хост. През 2004 г. Oracle Solaris Zones предостави подобна функционалност като затворите на FreeBSD. През 2006-2007 г. Google разработи Process Container и след това го обедини в ядрото на Linux. Linux Containers (LXC) е създаден през 2008 г., за да се възползва от Linux групите и пространството от имена. През 2013 г. Docker е създаден чрез комбиниране на LXC идеи. Той също така добави инструменти за лесно изграждане и извличане на изображения на контейнери.

Докер

Docker е технология за контейнери с отворен код, базирана на LXC. Той е популярен, защото улеснява създаването, стартирането и внедряването на приложения в автономна среда. Docker не създава цяла операционна система като виртуална машина. Вместо това използва ядрото на операционната система на хоста и създава виртуализация само за приложението и необходимите библиотеки. Този подход го прави много по-лек от виртуалните машини.

Контейнерите на Docker се създават от Docker Images. Docker Изображенията могат да се възприемат като моментни снимки на машини. Потребителите могат лесно да стартират контейнер от изображение. Изображенията се създават като слоеве. Да предположим, че екипът за разработка се нуждае от контейнер с Apache и Python, инсталиран на определена версия на Linux. Разработчик може да изтегли изображение на Linux от Docker Hub, да стартира контейнер, да инсталира Apache и Python, да създаде ново изображение от контейнера и да сподели това изображение. Други членове на екипа не трябва да преминават през същата инсталация. Той помага да се поддържа постоянна среда за всички.

Docker също поддържа скриптове и приложения с няколко контейнера. Потребителите могат да използват базиран на текст Dockerfile, за да дефинират изисквания и след това да изграждат контейнери чрез Docker Compose. Горният пример за създаване на сървър Apache / Python / Linux също може да бъде постигнат чрез този процес. С Docker Compose екипите трябва само да споделят Dockerfile, за да създадат същата среда.

Docker разполага с по-специализирани инструменти за сложни задачи. Docker Swarm помага за организирането на широкомащабни внедрявания на докери.

Скитник

Vagrant е инструмент с отворен код, който помага за създаването и поддържането на виртуални машини. Работи с VirtualBox, VMWare, AWS и други доставчици.

Vagrant опростява управлението на виртуални машини. Използвайки Vagrantfile, разработчиците могат да дефинират свойствата на виртуалната машина като операционна система, софтуерни инсталации и други. Текстовият Vagrantfile може да бъде споделен чрез контрол на версиите и необходимата машина може да бъде стартирана с помощта на проста команда като „vagrant up“. След това потребителите могат да влязат в машината като физически сървър.

Кога да използвате Docker или Vagrant

Използването на Docker или Vagrant често се свежда до необходимостта от контейнери или виртуални машини. Ето някои прилики и разлики между Docker и Vagrant по отношение на използването:

Прилики

Както Docker, така и Vagrant имат лесно конфигурируема среда, която може да се контролира чрез скриптове. Те също са удобни за облаци.

Разлики

Виртуалната машина Vagrant осигурява разделяне на защитата, базирана на ядрото. Разделянето прави виртуалните машини по-малко рискови от контейнерите. Но контейнерите на Docker са много леки. Те използват по-малко ресурси и са бързи при изпълнение. Така че можете да имате много повече контейнери на един хост, отколкото виртуални машини. Освен това стартирането и спирането на контейнери е почти мигновено в сравнение с виртуалните машини. Виртуалните машини преминават през пълния цикъл на зареждане на BIOS и операционната система.

Разделянето на сигурността на виртуална машина прави отказ на виртуална машина по-самостоятелен. От друга страна, контейнерите споделят ресурси и могат да имат каскаден ефект на срив. Също така заплахите за сигурност на контейнера могат да достигнат ядрото на хост операционната система.

Въпреки това, скоростта на изпълнение и лекият отпечатък на контейнерите правят Docker много привлекателен за развитие. С архитектурата на микросервизите контейнерите могат да се представят добре, тъй като рисковите фактори са смекчени чрез използването на микроуслуги. Също така се постига напредък, за да се направи Docker по-сигурен всеки ден.

Заключение

Docker и Vagrant са и двете полезни технологии, които могат да помогнат на разработчиците да подобрят своята производителност. Ако сигурността на приложенията е проблем, тогава използването на Vagrant и VM може да е добра идея. За бързо развитие и споделяне, Docker предоставя предимство. Повечето отбори използват и двете, за да работят гладко.

Препратки:

Как да промените левия и десния бутон на мишката на компютър с Windows 10
Напълно нормално е всички устройства на компютърни мишки да са ергономично проектирани за десничари. Но има налични устройства за мишка, които са спец...
Емулирайте кликванията на мишката, като задържите курсора на мишката с кликаща мишка в Windows 10
Използването на мишка или клавиатура в неправилна поза при прекомерна употреба може да доведе до много здравословни проблеми, включително напрежение, ...
Добавете жестове на мишката към Windows 10, като използвате тези безплатни инструменти
През последните години компютрите и операционните системи значително се развиха. Имаше време, когато потребителите трябваше да използват команди за на...