Рубрики
Без рубрики

Как и почему я создал BlueThroat – Инструмент миграции облака с открытым исходным кодом

Проект BlueThroat-это единственное решение с открытым исходным кодом для переноса вашей инфраструктуры в облако.

Автор оригинала: Vishnu Ks.

Обо мне

Я опытный разработчик, который любит создавать решения, которые делают клиентов и бизнес счастливее. Сегодня я открываю один из своих инструментов, написанных для миграции инфраструктуры в облако.

Проблема, которую я хотел решить

Когда дело доходит до миграции серверов в облако, существуют разные подходы. Сегодня мы будем говорить только о подъемной и сменной миграции. Вот что делает наш инструмент. Это может помочь вам перенести тысячи ваших флотов серверов в облако за несколько кликов. Опять же, он находится в альфа – стадии и не тестируется на массовую миграцию. И я верю, что вместе мы сможем сделать этот инструмент лучше .

Что такое Bluethroat – Инструмент миграции облака с открытым исходным кодом?

Проект BlueThroat – это решение с открытым исходным кодом для миграции вашей инфраструктуры. Миграция может быть от постоянного тока к постоянному, от постоянного тока к облаку, от облака к постоянному, от облака к облаку.

Это швейцарский армейский нож для миграции инфраструктуры. На рынке есть аналогичные инструменты, такие как Cloudendure и zero.

Прямо сейчас функциональные возможности ограничены следующими функциями

  • Миграция инфраструктуры в AWS
  • Безагентный
  • Обнаружение окружающей среды
  • Автоматическое создание сети и развертывание сервера
  • Миграция сервера Linux

Технический стек

Этот инструмент построен на нижеприведенном технологическом стеке

  • Питон
  • Ансибль
  • Mongodb

BlueThroat можно получить и использовать с веб-портала. Сервисы и полезные нагрузки написаны на python. Ansible используется для подготовки серверов к миграции. MongoDB собирает информацию обо всех серверах и состоянии всего процесса.

Процесс создания Bluethroat – Инструмента миграции облака с открытым исходным кодом

Как это работает?

У нас есть 5 шагов в полном процессе миграции сервера.

  • Discover: Он обнаружит количество ядер, размер оперативной памяти, размер жесткого диска и разделов, сведения о сети
  • Чертеж: Здесь мы выберем соответствующий размер машины и диапазон CIDR для сети
  • Клонирование: Этот шаг клонирует локальный сервер в корзину S3
  • Преобразование: Мы преобразуем клонированный образ сервера в AMI
  • Сборка: Мы строим сетевые компоненты и строим сервер с преобразованным AMI

Как использовать инструмент миграции Bluethroat?

В этом сценарии мы собираемся перенести сервер Red Hat Linux из одной учетной записи AWS в другую учетную запись AWS. Вы можете выполнить ту же процедуру, когда хотите перенести свои серверы из on-prem в AWS cloud.

Компоненты

  • Сервер репликации с достаточными привилегиями для развертывания сетевых компонентов(VPC, Подсеть, Таблицы маршрутизации, Группа безопасности), развертывания машин EC2, выполнения импорта ec2, доступа к ведру S3 для чтения/записи. (Доступ может быть предоставлен с помощью ролей ec2 или ключей AWS)
  • MongoDB – Его можно настроить на самом сервере репликации

Шаг 1 – Настройка сервера репликации

Войдите в учетную запись AWS, где вы хотите перенести серверы, и создайте новый экземпляр EC2 с ОС ubuntu 18.04 для сервера репликации. Установите и настройте MongoDB. После настройки выполните приведенную ниже команду для создания пользователя в MongoDB.

$mongo
mongo> db.createUser({user: "migrationuser",pwd:"mygrationtool",roles:[{role:"readWrite",db:"migration"}]})

Приведенная выше команда создаст пользователя с именем migration user with password migration tool. Миграция пользователей пользователь будет иметь доступ на чтение и запись к миграции базы данных. Теперь вам нужно установить зависимости, упомянутые в requirements.txt файл. Вы можете сделать это, выполнив следующую команду

pip install -r requirements.txt

Как только зависимости будут выполнены, вы можете запустить приложение, выполнив следующую команду.

python app.py

Шаг 2 – Создайте доступ к серверу, который мы хотим перенести

На этом шаге необходимо создать пользователя с правами sudo на сервере, который вы хотите перенести. Мы будем использовать ssh для подключения к серверу. Как только это будет сделано, мы сможем перейти к следующему шагу.

Шаг 3 – Начните миграцию вашей инфраструктуры

Шаг 3 - Начните миграцию вашей инфраструктуры

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

Скриншот 2019-03-15 в 16.33.41.png

После того как вы добавили серверы, нажмите на кнопку “Добавить IP-адреса ваших серверов для миграции”, а затем нажмите на кнопку “Открыть”.

Как только обнаружение будет завершено, он покажет вам окно предупреждения с сообщением о том, что обнаружение завершено. Затем вы должны нажать на кнопку “Чертеж”.

Скриншот 2019-03-15 в 16.34.56.png

На странице чертежа вы можете увидеть подробную информацию о серверах, добавленных ранее. Как я уже упоминал ранее, теперь инструмент поддерживает только миграцию DC в AWS или AWS в AWS. Таким образом, фрагменты информации, которые вы должны предоставить, будут относиться к AWS. Теперь выберите VPC CIDR из выпадающего списка, затем выберите тип машины и выберите, являются ли они общедоступными или частными машинами. Как только выпадающие списки будут выбраны, нажмите на кнопку создать чертеж. Затем он создаст сетевой шаблон для построения. Затем вы должны нажать кнопку начать клонирование.

На странице чертежа вы можете увидеть подробную информацию о серверах, добавленных ранее. Как я уже упоминал ранее, теперь инструмент поддерживает только миграцию DC в AWS или AWS в AWS. Таким образом, фрагменты информации, которые вы должны предоставить, будут относиться к AWS. Теперь выберите VPC CIDR из выпадающего списка, затем выберите тип машины и выберите, являются ли они общедоступными или частными машинами. Как только выпадающие списки будут выбраны, нажмите на кнопку создать чертеж. Затем он создаст сетевой шаблон для построения. Затем вы должны нажать кнопку начать клонирование.

Как только клонирование будет завершено, вы получите окно оповещения, как указано выше. На этом этапе образ диска вашего сервера будет скопирован на уровне блоков в корзину S3. Далее вам нужно нажать кнопку Начать конвертацию. Это позволит преобразовать все загруженные образы дисков в AMI в вашем аккаунте Amazon. Как только вы получите предупреждение с завершенным преобразованием сообщения, нажмите кнопку Start build, он построит VPC, подсеть и развернет машину в этой подсети, используя AMI, созданные на предыдущем шаге.

Смотрите видео

Синий горностай

Проблемы, с которыми я столкнулся

Когда я начал тестировать инструмент, единственной проблемой, с которой я столкнулся, было создание среды для его тестирования. Все тесты проводились в локальной лаборатории с моим личным аккаунтом AWS. Я протестировал серверы приложений с WordPress и MySQL, и инструмент успешно перенес сервер. И приложение работало по-прежнему.

Ключевые уроки

Есть много вещей, которые нужно знать, прежде чем вы сделаете миграцию центра обработки данных в облако. Пропускная способность сети, запущенные приложения, потребление ресурсов и количество серверов-вот некоторые из ключевых факторов. Как только соответствующая информация будет доступна, вы сможете правильно определить размер каждого сервера. Вы можете решить, когда бизнес может позволить себе простои, потому что вам может потребоваться остановить службы, работающие на серверах баз данных, и в зависимости от пропускной способности сети мы можем решить, сколько серверов необходимо перенести одновременно. В принципе, если вы делаете все это вручную, это действительно утомительная задача. Поэтому я построил инструмент BlueThroat. Надеюсь, это будет полезно.

Советы и рекомендации

Все, что вы делаете больше двух раз, должно быть автоматизировано. Очень простое правило devops . Автоматизация делает вашу жизнь проще. У вас будет больше времени, чтобы сосредоточиться на нескольких вещах.

Заключительные мысли и следующие шаги

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

Дорожная карта

  • Нулевой сенсорный калибровка
  • Миграция инфраструктуры к другим поставщикам, Azure и GCP
  • Автоматическое обнаружение портов и создание брандмауэра
  • Дополнительное обнаружение и миграция дисков
  • Миграция Windows server

Связи

Youtube: BlueThroat in action Github: Код BlueThroat