Machine Box предоставляет услуги через контейнеры Docker, а Digital Ocean - отличное место для размещения этих контейнеров в производстве.

Это руководство проведет вас через шаги, необходимые для развертывания Facebox с Digital Ocean.

СОВЕТ. Прежде чем начать, важно помнить, что хостинг в Digital Ocean требует небольших затрат - он очень конкурентоспособный, но не бесплатный.

1. Создайте учетную запись цифрового океана.

Перейдите на https://www.digitalocean.com/ и создайте учетную запись.

2. Создайте токен личного доступа.

Чтобы получить доступ к сервисам Digital Ocean через API, нам понадобится персональный токен доступа.

  • Нажмите на панель навигации API.
  • В разделе Персональные токены доступа нажмите Создать новый токен.

  • Дайте вашему токену имя и нажмите кнопку Создать токен.

После создания скопируйте его и создайте переменную среды.

3. Создайте каплю

В Digital Ocean машины называются каплями. И нам нужно будет создать его, чтобы мы могли запускать образы докеров Machine Box.

Мы будем использовать команду docker-machine, которая уже должна быть установлена ​​на вашем компьютере разработки, если вы работали с Docker.

СОВЕТ: Введите docker-machine в терминал, если вы получите сообщение об ошибке, вам может потребоваться установить его самостоятельно.

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

docker-machine create --digitalocean-size "s-2vcpu-4gb" --driver digitalocean --digitalocean-access-token PERSONAL_ACCESS_TOKEN facebox-prod-1
  • --digitalocean-size "s-2vcpu-4gb" создает образ с 2 процессорами и 4 ГБ ОЗУ - вы можете использовать любой размер, который считаете нужным.
  • facebox-prod-1 это имя нашей капли

Если все в порядке, это создаст каплю. Вы можете проверить это, набрав:

docker-machine ls

Вы должны увидеть что-то похожее на:

facebox-prod-1 * digitalocean Running tcp://152.63.254.5:2376 v18.05.0-ce

4. Подключитесь к новой капле.

Чтобы подключиться к капле, выполните следующую команду:

eval $(docker-machine env facebox-prod-1)

На самом деле это просто установка некоторых переменных среды, которые будут использовать команды docker-machine и docker.

СОВЕТ: Вы можете запустить только docker-machine env facebox-prod-1, чтобы увидеть значения.

5. Запустите службу Machine Box.

Теперь, когда наша капля работает и мы подключены к ней, пора запустить одну из коробок Machine Box.

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

docker run -d -p 80:8080 -e "MB_WORKERS=2" -e "MB_KEY=$MB_KEY" machinebox/facebox

Это немного отличается от того, как вы можете запускать Facebox в разработке, по ряду причин:

  • Мы используем флаг -d, чтобы Docker запускал это как демон (фоновая задача) - вы можете опустить его во время настройки, и ваш терминал останется подключенным, как и во время разработки.
  • Мы сопоставляем порт коробки 8080 (где работают службы) с портом 80 - это то, что делает его доступным в Интернете без указания номера порта.
  • Мы используем флаг -e, чтобы установить для переменной среды MB_WORKERS значение 2 - чтобы соответствовать количеству имеющихся у нас процессоров.

ВНИМАНИЕ: если вы видите ошибку с жалобой на MB_KEY, убедитесь, что вы присвоили переменной среды значение с веб-сайта Machine Box.

6. Получите IP-адрес устройства.

В том же терминале выполните следующую команду, чтобы получить общедоступный IP-адрес машины:

docker-machine ip facebox-prod-1
152.65.253.2

В веб-браузере перейдите на этот IP-адрес, чтобы убедиться, что Facebox действительно работает:

Теперь вы можете обновить свой клиентский код, чтобы использовать новую конечную точку вместо localhost.

Это все, ребята

Мы успешно запустили производство Facebox в Digital Ocean.

В частности, мы:

  1. Создал учетную запись Digital Ocean и получил токен персонального доступа
  2. Создал каплю для размещения нашего бокса
  3. Создал экземпляр Facebox
  4. Сделал коробку общедоступной

Выключение коробки

Самый простой способ отключить поле - войти в консоль Digital Ocean и получить доступ к разделу Капли, откуда вы можете уничтожить его с помощью пользовательского интерфейса.

Что дальше?

После того, как вы приступите к работе, вы можете подумать о следующем:

Больше о Machine Box?

Machine Box помещает современные возможности машинного обучения в контейнеры Docker, поэтому разработчики, такие как вы, могут легко включить обработку естественного языка, распознавание лиц, распознавание объектов и т. Д. В свои собственные приложения очень быстро.

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