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.
В частности, мы:
- Создал учетную запись Digital Ocean и получил токен персонального доступа
- Создал каплю для размещения нашего бокса
- Создал экземпляр Facebox
- Сделал коробку общедоступной
Выключение коробки
Самый простой способ отключить поле - войти в консоль Digital Ocean и получить доступ к разделу Капли, откуда вы можете уничтожить его с помощью пользовательского интерфейса.
Что дальше?
После того, как вы приступите к работе, вы можете подумать о следующем:
- Для масштабирования и избыточности рассмотрите возможность использования балансировщика нагрузки для разделения трафика на множество экземпляров Facebox.
- Защитите ящик с помощью межсетевого экрана.
- Вам нужно будет немного поработать для поддержки SSL / HTTPS - возможно, с изображением nginx, которое проксирует трафик на соответствующие конечные точки.
Больше о Machine Box?
Machine Box помещает современные возможности машинного обучения в контейнеры Docker, поэтому разработчики, такие как вы, могут легко включить обработку естественного языка, распознавание лиц, распознавание объектов и т. Д. В свои собственные приложения очень быстро.
Ящики созданы для масштабирования, поэтому, когда ваше приложение действительно набирает обороты, просто добавьте больше ящиков по горизонтали, до бесконечности и дальше. Да, и это намного дешевле, чем любой из облачных сервисов (а они могут быть лучше)… и ваши данные не покидают вашу инфраструктуру.