Шаг за шагом руководство для развертывания и управление приложения PHP на Докер фару, LAPP, И LAOP стеков
Для запуска и управления 9 шаблонов приложений PHP (LAMP, Lapp и LAOP стеки) в этом проекте на 13 различных облаков и платформ виртуализации ( в том числе Vsphere, OpenStack, AWS, Rackspace, Microsoft Azure, Google Compute Engine, DigitalOcean, IBM SoftLayer, и т.д.), убедитесь , что вы либо:
Настройка и запустить любой из опубликованных шаблонов Docker PHP приложений (включая фару, LAPP и LAOP стеков) и многих других шаблонов (включая многоуровневые стеки приложений Java, Монго набора реплик Cluster, Drupal, Wordpress, MEAN.JS и т.д. )
Задний план
Containerizing корпоративных приложений по-прежнему является проблемой в основном потому, что существующие рамки состав приложения не учитывают сложные зависимости, внешние объединения или автоматическое масштабирование рабочих процессов пост-положение. Кроме того, эфемерная конструкция контейнеров означает, что разработчикам пришлось раскручивать новые контейнеры и заново создать сложные зависимости & внешние интеграции с каждым обновлением версии.
DCHQ, доступен в размещенных и на предпосылке версиях, устраняет все эти проблемы и упрощает контейнеризации корпоративных приложений с помощью усовершенствованной основы композиции приложений, который расширяет Docker Compose с переменными окружения кросс-изображений привязок, расширяемых BASH скрипт плагинов, которые могут быть вызывается во время запроса или после предоставления, а также применение кластеризации для высокой доступности в нескольких хостов или регионах с поддержкой автоматического масштабирования.
После того, как приложение подготовлено, пользователь может контролировать процессора, памяти и ввода / вывода запущенных контейнеров, получать уведомления & уведомления, и получить доступ к резервным копиям приложений, автоматический масштаб в / из рабочих процессов, а также плагин выполнения рабочих процессов для обновление контейнеров работает. Кроме того, автоматизированная "App Run" позволяет пользователям интегрировать их непрерывные рабочие процессы интеграции планировать развертывание контейнеров для их ночные сборки или всякий раз, когда изменения объединяются в GitHub.
В предыдущих блогах, мы продемонстрировали автоматизацию развертывания конца в конец различных Java - приложений (например , Pizza Shop и Movie магазин приложений) на многоуровневую Docker основе стеков приложений в 13 различных облаков & платформ виртуализации. Для получения полного списка этих блогов, вы можете посетить эту страницу: http://dchq.co/docker-java-applications.html~~HEAD=dobj
Тем не менее многие пользователи были до сих пор путают на некоторые из фундаментальных аспектов моделирования приложений. Эти вопросы включают в себя:
Для решения этих вопросов, мы создали образец "имена каталогов" PHP приложений в этом проекте GitHub, которые могут быть развернуты на этих стеков приложений:
В этом проекте, мы обеспечим руководство шаг за шагом для конфигурирования, развертывания и управления этой PHP приложение, используя различные стеки приложений и на различных облачных / виртуальной инфраструктуры.
Мы рассмотрим:
Конфигурирование Config.php PHP-приложения
Вы можете клонировать этот образец "имена каталогов" PHP приложение из GitHub.
Это самый важный шаг в "Dockerizing" вашего PHP приложения. Чтобы эффективно использовать переменные окружения, вы можете передать при запуске контейнеров, вам нужно будет убедиться, что ваше приложение настроено таким образом, что позволит вам изменить определенные свойства во время запроса - как:
Для достижения этой цели, вам сначала нужно настроить config.php .
Вы заметите, что свойства конкретных данных источника ссылаются следующие переменные окружения, которые будут переданы на во время запроса:
Инициализация базы данных для PHP Application
Как правило, мы рекомендуем инициализировать схему базы данных, как часть самого развертывания PHP-приложений. Таким образом, вам не придется беспокоиться о сохранении отдельных файлов SQL, которые должны быть выполнены на базе данных по отдельности.
Однако , если у вас уже есть эти SQL файлы , и вы по- прежнему предпочитают их выполнения на базе данных по отдельности - то DCHQ может помочь вам автоматизировать этот процесс с помощью своего плагина в рамках. Вы можете обратиться к этому разделу для получения дополнительной информации.
Для того чтобы включить сценарии SQL для создания таблиц базы данных в приложении PHP, вам нужно будет настроить Persistence.php файл для заполнения базы данных , используя различные операторы SQL ( в зависимости от используемой базы данных). Функция populateDatabase () работает с MySQL, PostgreSQL и Oracle.
Создание имиджа Docker Использование Php: 5,6-Apache
После того как приложение PHP сконфигурирован, вам просто нужно создать Docker изображение с помощью PHP кода.
После входа в систему, чтобы DCHQ (либо принимал DCHQ.io или на предпосылке версии), пользователь может перейти к Image Строить , а затем нажмите на + кнопку , чтобы создать новый Dockerfile (Git / GitHub / Bitbucket) сборки изображения.
Обеспечить требуемые значения следующим образом:
После того , как необходимые поля заполнены, пользователь может нажать кнопку Сохранить .
Затем пользователь может нажать на кнопку Play , чтобы построить изображение Docker по требованию.
Вот фактическая Dockerfile используется для создания этого Docker изображение из этого репозитория GitHub:
Здании YAML основе шаблонов приложений, которые могут повторно использоваться на любом хосте Linux Запуск Anywhere
После входа в систему, чтобы DCHQ (либо принимал DCHQ.io или на предпосылке версии), пользователь может перейти к App & Machine , а затем нажмите на + кнопку , чтобы создать новый Докер Compose шаблон.
Мы создали 9 шаблонов приложений , используя официальные изображения из Докер Hub для той же "имена каталогов" PHP приложения - но для разных серверов приложений и баз данных.
Шаблоны включают примеры следующих стеков приложений (для того же приложения PHP):
Переменной окружения Наручники Across Images
Кроме того, пользователь может создавать кросс-изображения переменных среды привязок, сделав ссылку на переменную окружения другого изображения. В этом случае, мы сделали несколько привязок - в том числе DB_HOST = {{MySQL | container_private_ip}} - в котором контейнер базы данных IP Косову динамически во время запроса и используется для того, чтобы Apache-PHP сервер может установить соединение с база данных.
Ниже приведен список поддерживаемых значений переменной окружения:
ЛАМПА Стек (Linux-Apache-MySQL-PHP)ЛАПП Стек (Linux-Apache-PHP-PostgreSQL)LAOP Стек (Linux-Apache-PHP-Oracle)ЛАМПА Стек (3-й эшелон Nginx-PHP-MySQL)ЛАПП Стек (3-й эшелон Nginx-PHP-PostgreSQL)LAOP Стек (3-й эшелон Nginx-PHP-Oracle XE)ЛАМПА Стек (3-й эшелон ApacheHTTP-PHP-MySQL)ЛАПП Стек (3-й эшелон ApacheHTTP-PHP-PostgreSQL)LAOP Стек (3-й эшелон ApacheHTTP-PHP-Oracle XE)Вызов подключаемый модуль для инициализации базы данных отдельно на Докер LAMP-Stack
Мы рекомендуем инициализировать схему базы данных, как часть самого развертывания PHP-приложений. Однако, если вы по-прежнему предпочитают выполнение SQL-файлы на базе данных по отдельности - то DCHQ может помочь вам автоматизировать этот процесс с помощью своего плагина в рамках.
В этом примере MySQL в этом стеке ЛАМПЫ является вызовом Баш скрипт плагин для выполнения файла populate.sql. BASH скрипт плагин был создан для навигации Плагины и выглядит примерно так:
В этом Баш скрипт плагина, $ MYSQL_USER , $ MYSQL_ROOT_PASSWORD и $ MYSQL_DATABASE переменные среды, которые передаются во время запроса.
$ FILE_URL является переписываемыми аргумент , который можно определить при создании плагина или при запросе приложения. Это будет URL для файла populate.sql.
Provisioning & Auto-Scaling подстилающей инфраструктуры на любом облаке
После того, как приложение сохраняется, пользователь может зарегистрировать поставщика облако автоматизировать выделение ресурсов и автоматическое масштабирование кластеров на 12 различных облачных конечных точек, включая VMware Vsphere, OpenStack, CloudStack, Amazon Web Services, Rackspace, Microsoft Azure, DigitalOcean, IBM SoftLayer, Google Compute Engine, и многие другие.
Во- первых, пользователь может зарегистрировать поставщика облако для Rackspace (например), перейдя в облачных провайдеров , а затем нажав на + кнопку , чтобы выбрать Rackspace . Rackspace Ключ API должен быть обеспечен , - которые могут быть извлечены из раздела Параметры учетной записи на панели управления Rackspace Cloud.
Затем пользователь может создать кластер с автоматической масштабной политики для автоматического раскрутки новых серверов Облако. Это может быть сделано путем перехода к кластерам страницы , а затем нажав на + кнопке. Вы можете выбрать политику размещения мощностей на основе , а затем Плетение в качестве сетевого уровня для того , чтобы облегчить безопасный, защищенный паролем кросс-контейнеровоз связь между несколькими хостами в кластере. Политика Auto-Scale , например, может установить максимальное количество VM (или Cloud Servers) до 10.
Пользователь может в настоящее время положение несколько облачных серверов на вновь созданном кластере либо через рабочий процесс ПИориентированного или путем определения простого YAML на основе шаблона Machine Compose, которая может быть запрошена из библиотеки самообслуживания.
Рабочий процесс UI на основе - Пользователь может запросить Rackspace Cloud Servers, перейдя в машинах , а затем нажав на + кнопку , чтобы выбрать Rackspace . После того, как поставщик Облако выбран, пользователь может выбрать область, размер и изображение , необходимое. Порты открываются по умолчанию на Rackspace Cloud Servers , чтобы приспособить некоторые требования порта (например 32000-59000 для Докер, 6783 для Weave, и 5672 для RabbitMQ). Кластер затем выбирается и может быть определено количество облачных серверов.
YAML основе Machine Compose Template - пользователь может сначала создать шаблон машины для Compose Rackspace, перейдя машин , а затем выбрав Machine Compose .
Вот шаблон для запроса сервера 4GB Cloud.
Поддерживаются следующие параметры для шаблона машины Compose приведены ниже:
После того , как шаблон Machine Compose сохраняется, пользователь может запросить эту машину от Self-Service Library . Пользователь может щелкнуть Настройка , а затем выберите поставщика облако и кластера использовать для инициализации этих Rackspace Cloud Servers.
Развертывание многоуровневой PHP приложения, установленного на Rackspace кластера
После того, как серверы облачными подготовлено, пользователь может развернуть многоуровневую, Docker на основе PHP-приложений на новых серверах Cloud. Это может быть сделано путем перехода к библиотеке Self-Service, а затем нажав на кнопку Настройка, чтобы запросить применение многоуровневой.
Пользователь может выбрать тег окружающей среды (например, DEV или QE) и кластер Rackspace, созданный, прежде чем нажать на Run.
Доступ в-браузер терминалов для функционирования контейнеров
Значок командной строки должна быть доступна рядом с именами контейнеров "на странице Живая Apps. Это позволяет пользователям входить в контейнер с помощью защищенного протокола связи через очереди сообщений агента. Белый список команд может быть определен арендатором администратора, чтобы гарантировать, что пользователи не делают никаких вредных изменений на подножку контейнеров.
Для развертывания PHP, например, мы использовали командную строку, чтобы убедиться, что код PHP действительно под / вар / WWW / HTML / каталог.
Мониторинг процессора, памяти и утилизации I / O бегущего Контейнеры
После того, как приложение и работает, наши разработчики мониторинг процессора, памяти и ввода / вывода запущенных контейнеров для получения оповещений, когда эти показатели превышают заранее определенный порог. Это особенно полезно, когда наши разработчики выполняют функциональное и нагрузочное тестирование.
Пользователь может выполнить исторический анализ мониторинга и соотнести проблемы с обновлением контейнера или построить развертываний. Это можно сделать, нажав на действия меню запущенного приложения , а затем по мониторингу . Диапазон дат можно выбрать для просмотра процессора, памяти и ввода / вывода исторически.
Включение непрерывной интеграции с использованием автоматизированных App Запуск
Для разработчиков, желающих следовать модели "неизменные" контейнеров путем восстановления изображений Docker, содержащих код приложения и прядение новые контейнеры с каждым обновлением приложения, DCHQ обеспечивает автоматизированную сборку изображения и автоматизированных функций приложения прогонов, которые позволяют разработчикам автоматически создавать Docker изображения из Dockerfiles или частные проекты GitHub, содержащие Dockerfiles, а затем раскручивается полные ЛАМПЫ стеки с использованием новейших изображений путем планирования развертывания приложений и настройки аренды приложений.
Как поясняется в образе сборки Докер разделе , пользователь может запланировать два параллельных сборок для PHP образа (который основан на PHP: 5,6-апач ).
Затем пользователь может перейти к Image Строит , а затем нажмите на + кнопку , чтобы создать новую политику "Автоматизированный App Run". Затем пользователь может заполнить необходимые поля - как:
Горизонтальное масштабирование PHP-приложения
Если работающее приложение становится ограниченным ресурсом, пользователь может масштабировать приложение для удовлетворения возрастающей нагрузкой. Кроме того, пользователь может планировать масштабирование в рабочее время и в масштабе в выходные дни, например.
Для того, чтобы масштабировать кластер PHP контейнеров от 1 до 2, пользователь может нажать на действия меню запущенного приложения , а затем выберите Scale Out . Затем пользователь может указать новый размер кластера , а затем нажмите на Run Now .
Затем мы использовали BASH плагин для обновления файла httpd.conf Apache HTTP Server, так что это известно о новом сервере приложений добавлен. Баш скрипт плагины также могут быть запланированы для размещения прецедентов, как очистка журналов или обновления конфигураций на определенных частотах.
Чтобы выполнить плагин на работающем контейнере, пользователь может нажать на действия меню запущенного приложения , а затем выберите подключаемые модули . Затем пользователь может выбрать балансировки нагрузки контейнера (HTTP - сервер Apache), поиск подключаемого модуля , который должен быть выполнен, включите перезагрузка контейнера с помощью кнопки переключения. По умолчанию аргумент этого плагина будет динамически решить все контейнер IP-адресов из контейнеров , работающих под управлением PHP и добавить их как часть файла httpd.conf.
Приложение времени линия доступна для отслеживания все изменения, сделанные приложением для аудита и диагностики. Это могут быть доступны из раздвижного меню в нижней части страницы запущенного приложения.
Предупреждения и уведомления доступны, когда контейнеры или хосты вниз или, когда ЦП и памяти Использование либо узлов или контейнеров превышает определенный порог.
Вывод
Containerizing PHP корпоративных приложений по-прежнему является проблемой в основном потому, что существующие рамки состав приложения не учитывают сложные зависимости, внешние объединения или автоматическое масштабирование рабочих процессов пост-положение.
DCHQ, доступен в размещенных и на предпосылке версиях, устраняет все эти проблемы и упрощает контейнеризации предприятия PHP приложений с помощью передовой рамки композиции приложений, которая облегчает переменных среды кросс-изображений привязок, расширяемый Баш скрипт плагины, которые могут быть вызваны в запросить время или пост-положения, а также применение кластеризацию для обеспечения высокой доступности между несколькими хостами или регионах с поддержкой автоматического масштабирования.
чтобы получить доступ к выполненной из коробки шаблонов многоуровневая PHP приложений наряду с функциональностью управления жизненным циклом приложений, таких как мониторинг, обновление контейнеров, шкала в / из и непрерывной доставки.
|
Saturday, 16 April 2016
A Step By Step Guide For Deploying & Managing A PHP Application On Docker LAMP, LAPP, And LAOP Stacks
Labels:
Russian
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment