Разворачивание сервиса Elasticsearch в D2C.io

Это руководство поможет вам развернуть сервис Elasticsearch в Docker контейнере. Данное руководство может быть полезно как начинающим, так и продвинутым разработчикам.

Denis Zaripov

Product manager

Почему Docker?

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

В своем ядре docker позволяет запускать практически любое приложение, безопасно изолированное в контейнере. Безопасная изоляция позволяет вам запускать на одном хосте много контейнеров одновременно. Легковесная природа контейнера, который запускается без дополнительной нагрузки гипервизора, позволяет вам добиваться больше от вашего железа.

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

Подготовка

Будет проще начать, если у вас уже есть подключенный сервер. 

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

Создание сервиса Elasticsearch

Для начала, потребуется открыть или создать любой проект и нажать «+Создать сервис». Вы увидите список нативно поддерживаемых сервисов, которые можно развернуть с помощью D2C.

Нажимаем на плитку Elasticsearch.

Создание сервиса Elasticsearch. Настройки сервиса

Name

Имя должно начинаться с буквы и содержать не более 16 символов (допускаются латинские символы и цифры).

У каждого сервиса есть своё уникальное имя. Сервисы могут обращаться друг к другу по имени контейнера  (например, elastic-1)или по alias-именам (например, elastic).

Version

Вы можете выбрать версию из списка:

В большинстве случаев этих параметров достаточно, чтобы развернуть базу данных. Теперь вы можете выбрать сервера и создать сервис. В сервисах хранения данных также есть дополнительные настройки. Мы покажем их ниже.

Создание сервиса Elasticsearch. Выбор серверов

На этом шаге вы можете создавать новые сервера и выбирать их пока они создаются (статусы creating/setting up). Контейнеры будут развернуты после того, как сервера будут готовы.

Для Elasticsearch рекомендуется использовать сервера как минимум с 4GB RAM. В данном случае показан пример тестового разворачивания сервиса.

После успешного разворачивания ваш проект будет выглядеть примерно так:

Создание сервиса Elasticsearch. Дополнительные настройки

Нажмите «Show advanced settings».

Ports

Первый блок — порты.

Доступ в Интернет (Access from the Internet) выключен по умолчанию. Вы можете включить доступ в Интернет во время создания или редактирования сервиса, но это не рекомендуется. Во-первых — по причинам безопасности, во-вторых — все сервисы в D2C запускаются внутри приватной сети и могут обращаться друг к другу по имени контейнера или alias-имени. Не важно на каком сервере сервис запущен – все взаимосвязи внутри приватной сети прозрачны для сервисов.

Persistent data volumes

D2C разделяет приложение от данных приложения. Docker volumes используются для хранения постоянных данных. Данные хранятся локально на серверах. 

Configs

D2C создает стандартный конфиг для Elasticsearch. Вы можете его изменить нажав на кнопку «Edit»

Нажмите на кнопку “Generate new config”, если требуется вернуться к стандартному значению.

Global dependencies 

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

Initial commands

Команды, которые выполняются один раз после разворачивания сервиса.

Environment variables
Вы можете указать переменные окружения для вашего приложения. Их можно изменять после создания сервиса.

Что дальше?

В следующей статье мы поговорим о:

  • поддержке сервисов хранения данных: создание бэкапов, масштабирование, проверка логов и метрик контейнеров, обновление версии