Контейнери: Вашето сигурно бъдеще без надграждане в облака

  • Sep 04, 2023

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

щастливи-контейнер-хора.jpg
Изображение: ZDNet

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

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

И тогава има приложения, с които често трябва да се работи.

Разбираме, не искате да правите това повече.

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

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

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

Всъщност той се използва често от около 20 години - на UNIX-базирани сървъри.

За локални среди контейнеризацията работи естествено днес в Linux с помощта на Docker и неговите производни и ще бъде вградена функция на Windows Server 2016.

Голяма част от дискусията за контейнерите днес се съсредоточава около намаляването на разходите и сложността на облачните изчисления. Доставчиците на услуги и хипермащабните обществени облаци, като Amazon Web Services и Azure, са сега тъкмо започва да го внедрява.

Намаляване на разходите чрез увеличена плътност на сървъра, гъвкавост, модулиране, бързо осигуряване и по-добра сигурност в облакът със сигурност е основната цел на контейнеризацията, но това не е единственото място, където технологията може да бъде приложено.

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

Защо бихте искали да поставите контейнери на вашата клиентска операционна система? Или по-скоро, как контейнерите ни отдалечават от текущото статукво на надграждане/актуализация?

Нека започнем с обяснението на съществуващото статукво. На устройството сме склонни да мислим за операционната система като свързана с хардуера или работеща „на метала“.

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

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

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

Колкото по-близо до метала се приближавате, толкова по-голямо е потенциалното въздействие върху това, което се намира над него.

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

Начинът, по който индустрията се справи с този проблем, предимно в рамките на центъра за данни, беше виртуализация. Въпреки че вече е активирана на повечето 64-битови компютърни операционни системи и компютърен хардуер, повечето крайни потребители не използват тази технология директно.

Виртуализацията има много предимства, тъй като абстрахира хардуера от операционната система. Между ядрото на ОС и фърмуера виртуализираните системи изпълняват a хипервизор, която по същество е междинна операционна система от ниско ниво, която изпълнява много от свързаните с хардуера функции на ядрото на ОС.

VMware ESX, Hyper-V на Microsoft и Linux KVM са често срещани хипервайзори, които работят на платформата Intel x86. Има и множество хипервайзори, които могат да работят и на ARM архитектурата.

Вижте също

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

Hyper-V, между другото, е активиран за безплатна употреба на всяко копие на Windows 8.x Professional и по-нова версия. И можете също да включите операционната система, работеща на метала на вашия компютър във виртуална машина, ако искате да го преместите на нов компютър, като всички приложения се запазят такива, каквито са.

Виртуализираната ОС или виртуалната машина (VM) е по същество файл или малка колекция от файлове, които съдържат цялата информация, от която една ОС се нуждае, за да работи, заедно с приложенията. Представете си го като ZIP файл, който можете да копирате на USB флаш устройство и след това да преместите или копирате на друг компютър през мрежата.

VM прави операционните системи преносими и ви позволява да премествате операционни системи с всички съдържащи се в тях приложения към различен хардуер през мрежа.

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

Така че хипервайзорите са страхотни, нали? Проблемът е решен, виртуализирайте всичко. Е, не е толкова просто.

Първо, има цена за виртуализацията, тъй като има включено натоварване на процесора и паметта. На сървър със стотици гигабайти RAM и десетки процесорни ядра в голям център за данни, това не е толкова притеснително, но на нормален компютър за краен потребител или на мобилно устройство, където ресурсите обикновено са много по-ограничени, това не е непременно практичен.

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

С технологията за виртуализация „токсичната ядка“ може да стане нещо от миналото.

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

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

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

Контейнер се движи по a контейнер хост, което е споделено ядро ​​на операционната система, което от своя страна може да работи на виртуална машина, въпреки че може също работи директно върху метала, което е по-вероятен сценарий за нещо като смартфон, таблет или IoT устройство.

Можете да мислите за тази архитектура на приложението като за основополагащи Lego Bricks на една компютърна среда от 21-ви век.

Контейнерите могат да общуват помежду си чрез виртуална мрежа, но иначе са напълно изолирани един от друг.

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

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

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

Можете да направите това още една крачка напред, като изолирате разделите на уеб браузъра в техните собствени отделни контейнери.

Голямото подобрение в сравнение с директната виртуализация е, че контейнерите могат да се разменят и преместват независимо от базовата операционна система, като се използват методи за автоматизация и внедряване на пакети, като напр. Докер, който работи днес на Linux и скоро, Windows.

Тъй като контейнерите са опаковани, това се поддава на подхода на „магазин за приложения“ към управлението на софтуера -- всичко се инсталира и актуализира от централизирано хранилище („repo“) дистанционно и модулно мода.

Специално свойство

Изграждане на софтуерно дефиниран център за данни

Има огромни ползи от ефективността, гъвкавостта и управляемостта от виртуализирането на вашия център за данни и стартирането му от софтуер.

Прочетете сега

Репото може да се управлява публично, като iOS и Mac App Store, Google Play Store в Android или новия Windows Store в Windows 10 или може да се управлява частно, като например в рамките на корпоративен интранет.

И така, накъде отиваме с всичко това?

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

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

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

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

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

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

Готови ли сте за контейнери? Говорете и ме уведомете.