2016-11-27 7 views
1

Хорошо, я полный ноб в дефолтах, но, пожалуйста, несите меня, я изо всех сил старался объяснить свое затруднительное положение.Переключение с Heroku на платформу Docker Cycle.io

Теперь у меня есть приложение Java (в настоящее время размещено на геройку) с кодом, видимым в GitHub. Однако код, видимый, не может быть непосредственно развернут. Есть 2-3 привилегированных файла, таких как applications.properties, который содержит наши, еще пару файлов Auth и т. Д., Которые нельзя поместить на GitHub по очевидным соображениям безопасности. Мы также используем базу данных MySQL, предоставленную нам плагином ClearDB от Heroku.

Обходной путь на данный момент заключается в том, что эти файлы присутствуют только в удаленном устройстве Heroku git и настроены на работу. Всякий раз, когда мы хотим передислоцировать, мы переходим к удаленному устройству Heroku, вытаскиваем код из мастера и нажимаем его для автоматического развертывания.

Теперь мы переходим от Хереку к Cycle.io или Amazon Web Services. Настройка AWS будет довольно сложной, но Cycle.io использует изображения докеров. У меня было несколько вопросов.

  1. Cycle.io предоставляет нам развертывание, и я не вижу разговора о какой-либо имеющейся базе данных. Что/откуда мы получаем от БД? Каковы наши варианты? Cycle.io позволяет нам создавать Environments. Процитировать

Среды позволяют пользователям организовывать группы связанных контейнеров. Когда создается среда, Cycle автоматически создает приватную сеть для подключения контейнеров внутри.

Эта настройка некоторой среды Linux, где я могу настроить базу данных MySQL? Должен ли я настроить изображение Docker для изображения MySQL и разрешить кодовому изображению сообщать об этом с ним?

  1. Что было бы лучшим рабочим процессом, если мы рассмотрим использование изображений Docker для цикла.io? Было бы что-то вроде этого?

    • Построить докер изображение на моей системе, которая работает
    • подтолкнуть ее к Docker Hub частному хранилище и позволяют cycle.io, которая интегрируется с Docker ступице, чтобы забрать его оттуда
  2. Cycle говорит

Развертывание контейнеров в два простых шага: просто потяните готовых к созданию изображений из Docker Hub или любого Git repo и нажмите импорт изображения.

Как я могу размещать изображения докеров на GitHub. Я имею в виду, что вы действительно не должны размещать файлы на GitHub? Docker Hub имеет больше смысла. Или это означает, что он извлекает код и компилирует его в изображение докеров?

  1. Каков наилучший способ иметь «частную» ветку джита, такую ​​как геройку? Я знаю, что хотел бы добавить частный удаленный доступ, но как мне это сделать? Должен ли я просто разрешить публичный филиал и хранить как частный сброс личных файлов?

ответ

0
  1. Существуют различные способы «получить» дБ. Самое простое - использовать какое-то управляемое решение, для mysql существует много опций - самыми популярными из них являются облачные sql от Google и RDS от AWS. Вы также можете установить БД MySQL в качестве контейнера, но я не знаю, предлагает ли Cycle.io этот сервис. Лучше всего подойти к Cycle.io с этим вопросом и спросить, какое решение mysql лучше всего интегрируется с их продуктом, или выбрать AWS (эластичный beanstalk - отличный сервис для работы докеровских контейнеров и может предоставить экземпляр mysql в качестве уровня данных)
  2. Поток, который вы предлагаете, работает. Лучший поток будет включать в себя какой-то конвейер CI/CD, который может автоматически создавать ваше изображение, когда вы нажимаете код на github, а затем развертываете его в AWS/cycle.io. Мы используем CircleCI, которые предлагают 1 бесплатный контейнер для небольших сборок и отлично подходят для этих целей.
  3. Вы никогда не ставите изображение докеры на github. Что вам нужно сделать, так это добавить докерефайл в репо, и изображение будет построено на этом. Я предполагаю, что cycle.io предлагает вам эту опцию - автоматически создавая изображение из файла докеров, который вы помещаете в репо. Именно так мы строим наши образы с помощью CirclCI.
  4. Развертывание ключей полезно для этой цели. Вы создаете его и разрешаете только авторизованным службам общаться с вашим репо с помощью этого ключа.
+0

Спасибо, что дало мне некоторое представление. Тем не менее, у меня все еще нет решения для моих личных файлов (application.properties one). Я не могу иметь это в репозитории и как я могу включить это в автоматическую сборку? – tsaebeht

+1

Эта практика известна как секретное управление, и есть несколько инструментов, специально предназначенных для этого. Вы можете проверить хранилище hashicorp's в качестве примера такого инструмента - https://www.vaultproject.io/ –

+0

У меня есть мой товарищ по команде, который задал вопрос о том же здесь http://softwareengineering.stackexchange.com/questions/336959/ integrate-private-files-for-open-source-application-code-in-devops-pipe – tsaebeht