Главная » Продукция » Red Hat Enterprise Linux » Контейнеры Red Hat Enterprise Linux

Контейнеры Red Hat Enterprise Linux

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

Подробнее

ТРАДИЦИОННАЯ УПАКОВКА И РАЗВЕРТЫВАНИЕ ПРИЛОЖЕНИЙ

Для нормальной работы приложений, как сторонних, так и собственной разработки, требуется соответствующее окружение. Некоторые поставщики приложений предоставляют техническую поддержку только при использовании строго определенного окружения.

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

Автоматизация упрощает этот процесс, но не до конца и не всегда. Иногда она может еще больше запутать дело, создавая трудно диагностируемые проблемы в производственной среде.

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

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


РАЗВЕРТЫВАНИЕ ПРИЛОЖЕНИЙ С ИСПОЛЬЗОВАНИЕМ КОНТЕЙНЕРОВ

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

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

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

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

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


КОНТЕЙНЕРЫ В RED HAT ENTERPRISE LINUX

Red Hat Enterprise Linux 7 и Red Hat Enterprise Linux Atomic Host содержат все необходимое для защищенного и надежного развертывания упакованных в контейнеры приложений. В состав Red Hat Enterprise Linux 7 также входят средства управления ресурсами, изоляции контейнеров, защиты, упаковки и оркестрации.

  • Управление ресурсами выполняется с использованием групп управления (cgroups), которые следят за тем, чтобы контейнер мог использовать только заданное количество определенных системных ресурсов (дисковый ввод-вывод, память или ЦП).

  • Изоляция контейнеров реализована на уровне доменов в пространстве имен ядра ОС (namespaces). Это означает, что каждый контейнер имеет собственную копию критических системных настроек и не может получить доступ к другим процессам или контейнерам, работающим на той же системе.

  • Безопасность обеспечивается средствами Security-Enhanced Linux (SELinux), которые предотвращают неавторизованный доступ контейнера к нижележащей операционной системе и другим контейнерам.

  • Стандартизация пакетов с использованием формата docker обеспечивает упаковку приложения вместе с зависимостями в легко переносимый пакет.

  • Оркестрация обеспечивается средствами фреймворка Kubernetes, который обеспечивает управление и масштабирование кластеров контейнеров в среде с несколькими узлами.

Технологии изоляции контейнеров Red Hat Enterprise Linux 7 также обеспечивают изоляцию контейнерной среды окружения от нижележащей операционной системы. Иначе говоря, если контейнер приложения содержит среду выполнения, отличную от Red Hat Enterprise Linux 7, приложение по-прежнему будет нормально работать на сервере Red Hat Enterprise Linux 7.

Таким образом, организация может развертывать приложения с различными Linux-окружениями на платформе Red Hat Enterprise Linux 7, что упрощает внедрение многообещающих с точки зрения разработки приложений технологий.


ПОЛЕЗНЫЕ МАТЕРИАЛЫ

  • Дополнительные сведения об использовании контейнеров

  • Загрузить ознакомительную версию Red Hat Enterprise Linux 7 или Red Hat Enterprise Linux Atomic Host

  • Получить дополнительную информацию и приобрести подписки можно в отделе продаж Red Hat.