Алексей Кобец: "Все больше компаний сегодня используют распределенные хранилища данных для того, чтобы обеспечить работу контейнеров и гарантировать сохранность информации из самых разных источников. Одним из ярких примеров является Пенсионный фонд РФ, который использует единое хранилище для всех филиалов во всех субъектах Российской Федерации"
Алексей Кобец,
старший вице-президент по разработке Virtuozzo
© ComNews
13.08.2018

Исследование 451 Research, опубликованное в январе 2018 года, показало, что 20,6% корпораций уже используют контейнеры приложений, а 33,5% - планируют их внедрение как максимум в течение двух лет. И для этого есть серьезные причины. Согласно оценкам 451 Research Market Monitor & Forecast по итогам 2017 года рынок контейнеров превысил $1 миллиард. и продолжает расти. К 2021 году его емкость может достигнуть $3-5 миллиардов. Аналитики Gartner придерживаются аналогичных взглядов и считают, что к 2020 году уже 50% компаний будут использовать контейнеры приложений, как свое конкурентное преимущество. А по словам аналитиков IDC, такие разработчики контейнеризации, как Docker, K8S, CoreOS и Mesosphere претендуют на то, чтобы изменить сам принцип работы информационных технологий и способы их использование бизнесом самым радикальным образом уже в ближайшие годы.

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

Какой может быть эффект от применения контейнеров в вашей компании?

Контейнеры приложений – действительно эффективное решение для целого спектра задач. Они позволяют значительно упростить и удешевить разработку (DevOps), внедрять и распространять новые версии ПО с меньшими затратами, обслуживать больше процессов на одних и тех же серверах. Контейнеры приложений уже содержат в себе необходимые компоненты и создают полноценные условия для работы микросервисов. А это значит, что удалить и создать контейнер оказывается намного быстрее, чем обновлять программное обеспечение в нем. Как следствие, при выпуске новой версии, например, платежного сервиса, веб-портала, мобильной игры и любого другого ПО все контейнеры, работающие с ним проще уничтожить и за считанные секунды создать заново. Ведь если на запуск виртуальной машины нужны десятки секунд, то контейнер приложения запускается моментально.

Надо сказать, что абсолютное большинство контейнеров приложений имеют облачную "прописку". Они запускаются в виртуальных машинах, которые в свою очередь находятся либо в публичных облаках, либо в приватных частных облаках. Контейнеры приложений компактны, потому что в них находятся лишь несколько процессов. При этом они не могут работать независимо от базовой ОС, и контейнеры нужно запускать внутри какой-то другой оболочки. Впрочем, отрасль движется к тому, чтобы упростить запуск контейнеров прямо на "голом железе" или внутри гипервизора - вместе с виртуальными машинами.

Отсюда вытекает другой важный плюс – это плотность размещения. Уже сегодня на оборудовании где запускаются десятки ВМ можно разместить сотни, а иногда - тысячи контейнеров. Например, такие платежные гиганты как Visa используют решения контейнерной виртуализации для повышения уровня утилизации ресурсов. Конкретный рост плотности зависит от типа задачи, ведь контейнеры помогают экономить ресурсы за счет отсутствия лишних компонентов операционной системы. Например, вместе с игровым сервисом запускаются только нужные ему библиотеки. И чем мельче будет задача, тем больше экономии ресурсов обеспечит контейнер. Но даже для нагрузочных корпоративных процессов контейнеров будет больше в разы.

Системный подход

Аналитики Gartner констатируют, что контейнерная виртуализация поможет компаниям перейти от устаревших приложений к новым, облачным технологиям. Однако в этом новом подходе есть ряд проблем, которые необходимо сначала решить. В числе прочих элементов формирования контейнерной среды, по версии экспертов, должно использоваться единое хранилище данных.

Зачем контейнерам внешнее хранилище? По своей архитектуре контейнеры приложений подразумевают отсутствие механизмов постоянного хранения информации. По истечению "срока годности" контейнер просто уничтожается, а вместо него при необходимости создастся новая версия. То есть старт сервиса эквивалентен созданию, а операция остановки – удалению контейнера. Поэтому владельцам такой инфраструктуры приходится как-то решать задачу хранения данных при пересоздании контейнеров.

Как следствие, все ценные данные надо сохранять вне контейнеров, обеспечивая заданный уровень безопасности и защиты. К этому же подталкивают вопросы безопасности. Представьте, что вы запустили на одном компьютере (физическом или виртуальном) сотни контейнеров с финансовыми транзакциями. Ведь если злоумышленник "выскочит" из одного контейнера, взломав сервис, он сможет скомпрометировать все остальные контейнеры в той же среде. И это создает реальную угрозу, если не вынести данные из контейнеров и не хранить их отдельно в зашифрованном виде.

По мере роста количества сервисов, вместо десятков генераторов данных мы начинаем работать с сотнями и даже тысячами. Именно в связи с ростом популярности Docker, K8S и других экосистем контейнеров приложений стал появляться спрос на персистентные (или постоянные) хранилища данных. Как ожидают аналитики 451 Research, в 2018 году на централизованные хранилища именно для контейнеров будет потрачено порядка $45 миллионов, а в 2021 году - уже $104 миллиона.

Хранить все данные можно на одной платформе

Как же сохранить данные из сотен и тысяч контейнеров, которые постоянно создаются и уничтожаются? Сделать это эффективно и с должным уровнем безопасности можно только в готовой программно-определяемой среде - виртуальном хранилище данных. Работают такие системы очень просто: они используют диски, которые уже установлены в ваших серверах, создавая единую сеть хранения. На сегодняшний день существуют бесплатные версии таких хранилищ с открытым кодом, такие как СЕРН, которые можно доработать и интегрировать в существующие облачные среды силами ИТ-отдела или интегратора. Есть также готовые и уже оптимизированные для решения определенных задач решения, такие как Virtuozzo Storage.

Экономика такого хранилища оказывается еще интереснее в рамках единой гиперконвергентной инфраструктуры, потому что в одном и том же пространстве появляется возможность сохранять данные с контейнеров, виртуальных машин, устройств интернета вещей, датчиков, сенсоров и так далее. При этом производительность системы оказывается тем выше, чем масштабнее ваша сеть, а вопросы резервного копирования решаются встроенными средствами дублирования. И это становится ключевым фактором для принятия решений о переходе на новые технологии, так как согласно данным 451 Research, 57% компаний наблюдают рост операционных затрат, связанных именно с хранением данных.

Использование таких современных технологий репликации, как Erasure Coding позволяет снизить потребность в дополнительных емкостях для резервных копий в несколько раз. Система сама разбивает данные на фрагменты и сохраняет только контрольные суммы, позволяющие моментально восстановить недостающие "кусочки" при выходе из строя серверов или дисков. Мы уже неоднократно делились своими расчетами эффективности при использовании EC: для хранений двух копий файла размеров в Терабайт нужно будет в сумме 3 Терабайта емкости. А вместе с Erasure Coding при стандартной схеме резервирования нужно будет только 40% дополнительной емкости для двойной защиты - то есть 1,4 Терабайта.

Контейнеры и гиперконвергенция "в одном флаконе"

Все больше компаний сегодня используют распределенные хранилища данных для того, чтобы обеспечить работу контейнеров и гарантировать сохранность информации из самых разных источников. Одним из ярких примеров является Пенсионный фонд РФ, который использует единое хранилище для всех филиалов во всех субъектах Российской Федерации. И если вы собираетесь экономить вместе с контейнерами, использование централизованного виртуального хранилища сделает применение новых технологий еще более выгодным и сформирует основу для внедрения гиперконвергентных инфраструктур, ведь программно-определяемое хранение является одним из неотъемлемых элементов компьютерной современной вычислительной экосистемы.