14
В работе в качестве средства оркестрации контейнеров использован
Docker Compose. Это средство, позволяющее использовать для запуска
нескольких контейнеров их описание в одном текстовом файле и
установления между ними зависимостей друг от друга. В терминах Docker
это называется стек приложения. Файл, как правило, имеет имя docker-
compose.yml и располагается в одном каталоге с файлами стека приложения
(конфигурационные файлы сервисов и файлы приложений, копируемые в
контейнер директивой ADD или COPY, каталоги, используемые в
контейнерах в качестве томов)[23]. Обзор синтаксиса yml файлов Docker
Compose выходит за рамки работы из-за большого количества различных
директив. Пример yml файла, использованного для запуска стека
исследуемого приложения приведен в приложении 1.
Также группа контейнеров приложения может быть распределена по
разным хост-системам, при этом оставаясь в одной логической сети и
централизованно управляться. Такие возможности предоставляются
средствами для создания кластеров, например, Docker Swarm. Если перестает
хватать ресурсов для обслуживания какого-либо из сервисов приложения,
достаточно просто увеличить количество экземпляров контейнеров, на
которых он работает. Сделать это можно разными способами, в зависимости
от того, какое средство оркестрации используется. Суть состоит в том, что
контейнерная среда имеет свои собственные сети, в которых возможно
разрешение имен контейнеров и при увеличении количества контейнеров,
например, содержащих php файлы и сервер Apache, все они будут доступны
по имени и на фронт-энд сервере достаточно указать имя контейнера чтобы
запросы стали равномерно распределяться между ними[13].
В данной работе для запуска приложений будет использована
платформа Docker. Для работы приложения будет необходимо запустить три
контейнера, как в приведенном выше примере: СУБД MySQL, Apache с php
приложением и nginx. Однако по ряду причин нет возможности отказаться от
прежнего размещения приложения на отдельном сервере в локальной сети,