Съдържание
Ако работите в софтуерната индустрия или около нея, вероятно сте чували за виртуални машини. Ако не, може би се чудите какво представляват те и за какво се използват.
Като софтуерен инженер ежедневно използвам виртуални машини. Те са мощни инструменти за разработване на софтуер, но имат и други приложения. Известни още като виртуални машини, много предприятия ги използват заради тяхната гъвкавост, надеждност и рентабилност; те също така предотвратяват катастрофи от тестване на софтуер в бягство.
Нека разгледаме какво представляват виртуалните машини и защо се използват.
Какво представлява виртуалната машина?
Виртуалната машина е инстанция на операционна система (ОС), като Windows, Mac OS или Linux, която работи в рамките на основната ОС на компютъра.
Обикновено тя работи в прозорец на приложение на работния плот. Виртуалната машина има пълна функционалност и действа като отделен компютър или машина. По същество виртуалната машина е виртуален компютър, работещ в друг компютър, известен като хост машина.
Изображение 1: Виртуална машина, работеща на лаптоп.
Виртуалната машина не разполага с хардуер (памет, твърд диск, клавиатура или монитор). Тя използва симулиран хардуер от хост машината. Поради тази причина на една хост машина могат да бъдат стартирани множество виртуални машини, наричани още "гости".
Изображение 2: Хост машина с няколко виртуални машини.
Хостът може също така да стартира множество виртуални машини с различни операционни системи, включително Linux, Mac OS и Windows. Тази възможност зависи от софтуер, наречен хипервайзор (вж. Изображение 1 по-горе). Хипервайзорът работи на хост машината и ви позволява да създавате, конфигурирате, стартирате и управлявате виртуални машини.
Хипервайзорът разпределя дисково пространство, планира времето за обработка и управлява използването на паметта за всяка виртуална машина. Това правят приложения като Oracle VirtualBox, VMware, Parallels, Xen, Microsoft Hyper-V и много други: те са хипервайзори.
Хипервайзорът може да работи на лаптоп, компютър или сървър. Той прави виртуалните машини достъпни за локалния компютър или за потребители, разпределени в мрежа.
Различните видове виртуални машини и среди изискват различни видове хипервайзори. Нека разгледаме някои от тях.
Видове виртуални машини
Системни виртуални машини
Системните виртуални машини, понякога наричани пълна виртуализация, се изпълняват от хипервайзор и осигуряват функционалността на действителна компютърна система. Те използват собствената операционна система на хоста за управление и споделяне на системните ресурси.
Системните виртуални машини често се нуждаят от мощен хост с бързи или многобройни процесори, голямо количество памет и тонове дисково пространство. Някои от тях, които работят на персонални или преносими компютри, може да не изискват изчислителната мощ, от която се нуждаят големите корпоративни виртуални сървъри; въпреки това те ще работят бавно, ако хост системата не е подходяща.
Процес на виртуални машини
Процесните виртуални машини са доста различни от SVM - може да са стартирани на вашата машина и дори да не знаете за това. Те са известни още като приложни виртуални машини или управлявани среди за изпълнение (MRE). Тези виртуални машини работят в хост операционна система и поддържат приложения или системни процеси.
Защо да използвате PVM? Те изпълняват услуги, без да зависят от конкретни операционни системи или хардуер. Имат своя собствена малка операционна система само с ресурсите, от които се нуждаят. MRE е в отделна среда; няма значение дали работи на Windows, Mac OS, Linux или друга хост машина.
Една от най-разпространените виртуални машини е тази, за която вероятно сте чували и може би сте виждали да работи на вашия компютър. Тя се използва за изпълнение на Java приложения и се нарича Java Virtual Machine или накратко JVM.
Видове хипервайзори
Повечето виртуални машини, с които се занимаваме, използват хипервайзор, тъй като емулират цяла компютърна система. Има два различни вида хипервайзори: Bare Metal Hypervisors (хипервайзори на голи метали) и Hosted Hypervisors (хипервайзори на хостове). Нека разгледаме набързо и двата вида.
Хипервайзор за голи метали
BMH могат да се наричат и местни хипервайзори и работят директно върху хардуера на хоста, вместо да работят в операционната система на хоста. Всъщност те заемат мястото на операционната система на хоста, като планират и управляват използването на хардуера от всяка виртуална машина, като по този начин изключват "посредника" (операционната система на хоста) в процеса.
Нативните хипервизори обикновено се използват за широкомащабни корпоративни виртуални машини, които компаниите използват, за да предоставят на служителите си сървърни ресурси. Microsoft Azure или Amazon Web Services са виртуални машини, хоствани на този тип архитектура. Други примери са KVM, Microsoft Hyper-V и VMware vSphere.
Хостван хипервайзор
Хостваните хипервайзори работят на стандартни операционни системи - точно както всяко друго приложение, което стартираме на машините си. Те използват операционната система на хоста за управление и разпределение на ресурсите. Този тип хипервайзор е по-подходящ за индивидуални потребители, които трябва да използват няколко операционни системи на машините си.
Те включват приложения като Oracle VirtualBox, VMware Workstations, VMware Fusion, Parallels Desktop и много други. Можете да намерите по-подробна информация за хостваните хипервайзори в нашата статия "Най-добрият софтуер за виртуални машини".
Защо да използвате виртуални машини?
Сега, след като имате основна представа за това какво представлява виртуалната машина, вероятно можете да се сетите за някои отлични приложения. Ето някои от основните причини, поради които хората използват виртуални машини.
1. Разходно-ефективен
Виртуалните машини са рентабилни в много ситуации. Една от най-известните е в корпоративния свят. Използването на физически сървъри за осигуряване на ресурси за служителите може да бъде много скъпо. Хардуерът не е евтин, а поддръжката му е още по-скъпа.
Използването на виртуални машини като корпоративни сървъри вече се е превърнало в норма. При виртуалните машини от доставчик като MS Azure не се налагат първоначални покупки на хардуер и такси за поддръжка. Тези виртуални машини могат да бъдат създадени, конфигурирани и използвани само за стотинки на час. Те могат също така да бъдат изключени, когато не се използват, и да не се налагат никакви разходи.
Използването на виртуална машина на вашата машина може да бъде и огромна икономия на пари. Ако трябва да работите в няколко операционни системи или различни хардуерни конфигурации, можете да
да използвате няколко виртуални машини на един хост - не е необходимо да купувате отделен компютър за всяка задача.
2. Мащабируемост и гъвкавост
Независимо дали са корпоративни сървъри или виртуални машини, работещи на вашия лаптоп, виртуалните машини са мащабируеми. Лесно е да регулирате ресурсите, за да отговарят на вашите нужди. Ако имате нужда от повече памет или място на твърдия диск, просто влезте в хипервайзора и преконфигурирайте виртуалната машина, за да разполага с повече. Не е необходимо да купувате нов хардуер, а процесът може да бъде завършен бързо.
3. Бърза настройка
Имал съм случаи, в които съм имал нужда от настройка на нова виртуална машина, обадих се на колегата си, който ги управлява, и я подготвих за използване за по-малко от час.
4. Възстановяване при бедствия
Ако се опитвате да предотвратите загубата на данни и да се подготвите за възстановяване след бедствие, виртуалните машини могат да бъдат чудесен инструмент. Те са лесни за архивиране и могат да бъдат разпределени на различни места, ако е необходимо. Ако трета страна като Microsoft или Amazon хоства виртуалните машини, те ще бъдат извън сайта - което означава, че данните ви са в безопасност, ако офисът ви изгори.
5. Лесно възпроизвеждане
Повечето хипервайзори ви позволяват да създавате копие или образ на виртуална машина. Създаването на образ ви позволява лесно да създавате точни копия на една и съща базова виртуална машина във всяка ситуация.
В средата, в която работя, даваме на всеки разработчик виртуална машина, която да използва за разработка и тестване. Този процес ни позволява да имаме образ, конфигуриран с всички необходими инструменти и софтуер. Когато имаме нов разработчик на борда, всичко, което трябва да направим, е да направим копие на този образ и той има всичко, което му е необходимо, за да започне работа.
6. Перфектно за Dev/Test
Едно от най-големите предимства на използването на виртуални машини е, че те са идеален инструмент за разработване и тестване на софтуер. Виртуалните машини позволяват на разработчиците да разработват за множество платформи и среди на една машина. Ако тази виртуална машина се повреди или унищожи, бързо може да се създаде нова.
Работил съм по проекти, в които създадохме автоматизирани тестови скриптове, които създават нова виртуална машина, инсталират най-новата версия на софтуера, изпълняват всички необходими тестове, след което изтриват виртуалната машина след приключване на тестовете.
Виртуалните машини работят чудесно за тестване на продукти и прегледи като тези, които правим тук, в SoftwareHow.com. Мога да инсталирам приложения във виртуална машина, работеща на моята машина, и да ги тествам, без да претрупвам основната си среда.
Когато приключа с тестването, винаги мога да изтрия виртуалната машина, а след това да създам нова, когато ми потрябва. Този процес също така ми позволява да тествам на няколко платформи, въпреки че имам само машина с Windows.
Заключителни думи
Както виждате, виртуалните машини са икономичен и универсален инструмент, който може да се използва за много приложения. Вече не е необходимо да купуваме, настройваме и поддържаме скъп хардуер, за да осигурим достъп до сървъри за тестери, разработчици и други. Виртуалните машини ни дават гъвкавостта лесно и бързо да създаваме операционните системи, хардуера и средите, от които се нуждаем - по всяко време.