Как показывает практика, контейнеры — это мощная технология, но, как и многие другие технологии, она не универсальная. Руководитель Core Data Center компании CDW Эшминдер Убхи призывает на портале Information Age не переусердствовать с ее применением, применяя контейнеры там, где это действительно нужно.

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

Давняя история

Контейнеры, конечно, не так уж новы — в той или иной форме они существуют с 1970-х. Еще в 1979 г., во время разработки Unix V7, была представлена система chroot, которая фактически стала первым примером изоляции процессов, лежащей в основе контейнеров. В 2004-м была выпущена первая публичная бета-версии Solaris Containers — фактически это была первая система виртуализации, которая появилась до VMware. В течение следующего десятилетия все становилось более доступным, поскольку сообщество Open Source-разработчиков освоило контейнеры и начало применять стандарты. К началу 2010-х контейнеризация стала мейнстримом, и запуск Docker в 2013 г. способствовал ее популярности.

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

Разделяй и властвуй

Контейнеры оказались жизненно важными для некоторых важных технологических функций, на которые полагаются современные предприятия. Допустим, у вашей компании есть приложение для покупок, где клиенты могут просматривать одежду, совершать платежи и управлять своим счетом. Раньше все приложение находилось в одном монолитном модуле на вашей системе, а это означало, что для обновления одной функции приложения, например, платежей, каталога или поиска, приходилось отключать все приложение. Но если, используя контейнеры, разбить приложение на модули для каждой функции, все можно масштабировать, обновлять или настраивать раздельно. Однако при использовании, скажем, пяти контейнеров для одного приложения масштабирование становится сложнее. Тем не менее, Kubernetes позволяет решить эту проблему, управляя контейнерными рабочими нагрузками и сервисами. По сути, это сердце и мозг для масштабирования подобных функций.

Автоматизированная помощь

Kubernetes — это мощный помощник для DevOps и гибких методов работы. Контейнерами, на которых запускаются приложения, необходимо управлять, чтобы исключать простои — если один контейнер выходит из строя, то на его место должен прийти другой. Этим легче управлять, если за дело берется автоматизированная система, и Kubernetes предоставляет фреймворк, который обеспечивает отказоустойчивость и масштабирование приложения, а также такие функции, как развертывание. Однако, как мы уже видели на примере других технологий, Kubernetes — это не решение всех проблем. Например, CRM 20-летней давности — это не то, что можно просто перенести за одну ночь — ее перенос будет стоить целое состояние. Предприятиям необходимо обратиться к сторонним экспертам, которые помогут им понять, что они могут сделать, а что нет.

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