Центрове За Данни

Бъдещето на сървърната виртуализация

Владимир Владков

Виртуализацията на сървъри е една от онези технологии, чиято концепция е много проста, но въздействието й върху корпоративните информационни центрове е много дълбоко.
Ако вместо да стартирате една операционна система и едно приложение на един сървър, можете да добавите софтуерен слой, познат като хипервайзор, който да ви позволи да стартирате многобройни операционни системи и свързаните с тях работни процеси на един физически сървър?
Това е идеята на сървърната виртуализация, като тази идея „датира“ още от времето на големите машини на IBM през 60-те години на миналия век, като тя бе популяризирана от VMware, която представи виртуализиращия софтуер за сървъри x86 в началото на XXI век. Оттогава и други доставчици разработиха свои сървърни виртуализиращи платформи, а индустрията като цяло създаде модерни инструменти за управление, автоматизация и оркестриране, които улесниха разгръщането, преместването и управлението на работните процеси на виртуалните машини.
Преди да се „случи“ сървърната виртуализация, предприятията трябваше да се занимават с разрастването на броя сървъри, недобре използваната изчислителна мощност, с растящи енергийни сметки, с редица ръчни процеси и с цялостна неефективност в центровете за данни.
Сървърната виртуализация промени всичко това и именно затова тя бе приета масово. Всъщност е трудно да се намери днес предприятие, което да не изпълнява повечето от работните си процеси в среда на виртуални машини.
Но както знаем, нито една технология „не е имунизирана“ срещу изместване от следващото голямо изобретение. В случая със сървърната виртуализация следващото Голямо нещо всъщност е малко. 
Сървърната виртуализация „взема“ физическото устройство и го „разделя“, давайки възможност на множество операционни системи и многобройни приложения да черпят от прилежащата изчислителната мощ. 
При следващата вълна на компютрите разработчиците разделят приложенията на по-малки микроуслуги, които работят в леки контейнери, експериментират и с безсървърни изчисления (познати и като функция като услуга - FaaS).
И в двата сценария виртуалната машина се заобикаля и кодът работи директно върху „чистия“ хардуер.

Предимства на сървърната виртуализация
Предимствата на сървърната виртуализация са много, като се започне от базовата сървърна консолидация. Можете да комбинирате няколко приложения в един хардуер, а след това да намалите общия брой на сървърите, които са нужни в центъра за данни. По-малко сървъри, по-малко шкафове, по-малко мрежово оборудване, като всичко това води до спестяване на пари от всичко – от физическото пространство в центъра до разходите за поддръжка и климатизацията. 
Сървърната виртуализация намалява нуждата от капиталови разходи за нов хардуер, което означава и по-рядко обновяване на хардуера. Освен това можете да разгърнете „внезапно“ освободените сървъри и те да изпълняват нови задачи. 
Спомняте ли си времето, когато администраторите в центровете за данни трябваше ръчно да настройват и задействат сървърите? Заедно със сървърната виртуализация има напредък и по отношение на автоматизацията, която ви позволява да пуснете виртуална машина за секунди и да преместите многобройни работни процеси само с натискане на един бутон в отговор на променените бизнес нужди.
Сървърната виртуализация предоставя и по-голяма отказоустойчивост, по-голяма скорост, мащабируемост, „бърза реакция“, производителност и гъвкавост, които изискват днешните уеб базирани бизнеси, свързани непрекъснато към мрежата. А сървърната виртуализация е прилежащата технология, която дава възможност на доставчиците на облачни изчисления да предлагат своите услуги. Когато даден потребител заяви конкретна инфраструктура като услуга (IaaS) от облачен доставчик, той започва с виртуалните машини и добавя свързаните с тях системи за съхранение, управление и защитни функции, които са нужни за изпълнение на задачата. 
  
Различни типове сървърна виртуализация
В света на сървърната виртуализация физическият сървър се нарича хост и стартира хост операционна система. Всяка виртуална машина е „гост“ и стартира „гостуваща“ операционна система. Гостите са разделени един от друг. 
  • При стандартната виртуализация, базирана на хипервайзор, хипервайзорът или мониторът на виртуалната машина (VMM) се поставя между хост ОС и прилежащия хардуерен слой, предоставяйки нужните ресурси на гостуващите операционни системи. 

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

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

  • При виртуализация на ниво ядро (kernel), вместо да се използва хипервайзор, се стартира отделна версия на Linux ядрото. Това улеснява стартирането на многобройни виртуални машини върху един хост, а драйверът на устройството се използва за комуникация между основното Linux ядро и виртуалните машини.

  • И накрая, на системно ниво или на ниво виртуализация на ОС можете да стартирате многобройни, но логически различни среди на едно копие на ядрото на операционната система. При виртуализация на системно ниво всички VM трябва да споделят същото копие на операционната система, докато сървърната виртуализация позволява на различни VM да имат различни операционни системи.

Виртуални машини или контейнери
Двете основни възможности за прехода към контейнери са Docker, популярен инструмент за задействане на контейнери, и Google Kubernetes, който помага за управлението на няколко контейнера. Контейнерите са самостоятелни среди за изпълнение на кода, които споделят ядрото на хост операционната система.
Контейнерите са по-рационални и по-леки от виртуалните машини, защото заобикалят излишните ОС за гости и свързаните с тяхното стартиране служебни операции. Разработчиците могат да стартират 6 до 8 пъти повече контейнери като VM на един и същ хардуер.
Контейнерите имат недостатъци. Като сравнително нов подход те не разполагат с богатството от инструменти за управление, на които разчита една зряла технология, така че има много работа за настройка и поддръжка. Съществуват и опасения за сигурността.
С виртуалните машини вие можете лесно да преместите работните процеси между хостовете, използвайки моментални снимки, но машините тип „голо желязо“ по-трудно се надграждат и преместват. 
„Контейнери са добри в някои ситуации, но не са панацея. Трябва да ги разгледате като още едно „оръжие“ в арсенала на облачните разработчици“, коментира Дейвид Линтикум, консултант в Cloud Technology Partners.

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


Вместо да е монолитно приложение, кодът „се разбива“ на специфични функции. Когато настъпи дадено събитие, което задейства тази функция, безсървърната услуга - например Lambda на Amazon - я изпълнява. Доставчиците на безсървърната услуга таксуват клиентите според използването на тази функция.
Смята се, че именно Amazon Web Services са започнали през 2014 г. да развиват пазара на безсървърни изчисления при пускането на продукта Lambda. Генералният директор на AWS Strategy Мат Ууд казва, че продуктът е бил вдъхновен от един от най-популярните продукти на компанията по онова време - Simple Storage Service (S3).
Блогърът Сам Круненбърг смята, че връзката между S3 и Lambda е важна аналогия. „S3 се занимава с обектите за съхранение. Вие предоставяте обект и S3 ги съхранява. Не знаете как, не знаете къде, не ви интересува. Няма дискове, за които да се тревожите. Няма такова нещо като дисково пространство. Всичко вече е абстракция. Не можете да се презапасите с дисков капацитет или той да не ви достигне в S3”, добавя той. Според Ууд AWS е искала да приложи същата философия и при изчисленията. „Lambda се занимава с функциите. Вие предоставяте код за функцията и Lambda го изпълнява по заявка... С Lambda не можете да се презапасите с изчислителен капацитет или той да не ви достигне”, обяснява Ууд.
Той твърди, че това е полезно в редица случаи. Функциите на Lambda могат да бъдат написани така, че всеки път, когато се качва снимка в S3, Lambda създава копия с различни размери, оптимизирани за настолен екран, за мобилен телефон и за таблет. Или всеки път, когато се прави запис в базата данни, функцията на Lambda може да бъде написана така, че данните да се зареждат в склад за данни като Amazon Redshift за анализ на последващ етап. Много клиенти на AWS използватLambda, за да „слепят“ AWS услугите и да изпълняват редица задачи за отчитане, планиране или промяна на данни при подготовката им за анализи. 
При сценария с микросуслуги/ контейнери безсървърните изчисления заобикалят слоя на виртуалните машини и функционалностите работят директно върху хардуера. Технологията без сървъри обаче е сравнително „неузряла“, а начините на използването й са силно ограничени.

Бъдещето на сървърната виртуализация
Въпреки че контейнерите са гореща тема, а интересът към безсървърните изчисления расте, реалността е друга. Виртуализацията на сървъри е солидна технология, която управлява огромното мнозинство от корпоративните приложения, според някои оценки насищането с виртуални машини достига до 90%.
Трудно е да си представим, че едно предприятие ще премести своите критични приложения, работещи безпроблемно върху виртуалните машини, към контейнери или на безсървърна платформа. Потребителите с хетерогенна среда вероятно ще използват VM, защото контейнерите трябва да работят на една и съща операционна система и не могат да бъдат смесвани Linux и Windows.
Но за новите приложения, които се пишат по най-модерните DevOps и „agile“ методологии, разработчиците имат повече опции. В бъдеще разработчиците ще вземат решения за всеки отделен случай дали да стартират новите натоварвания върху традиционна виртуална машина, контейнер или в безсървърна среда.




© Ай Си Ти Медиа ЕООД 1997-2019 съгласно Общи условия за ползване

X