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

Обо мне

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

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

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

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

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

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

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

Стек технологий

Инструмент основан на техническом стеке ниже

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

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

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

  • Обнаружение: он обнаружит количество ядер, размер ОЗУ, размер и разделы жесткого диска, сведения о сети.
  • Blueprint: Здесь мы выберем подходящий размер машины и диапазон CIDR для сети.
  • Клонирование: на этом шаге локальный сервер будет клонирован в корзину S3.
  • Конвертировать: мы конвертируем клонированный образ сервера в AMI.
  • Сборка: мы собираем сетевые компоненты и собираем сервер с преобразованным AMI.

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

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

Составные части

  • Сервер репликации с достаточными привилегиями для развертывания сетевых компонентов (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"}]})

Приведенная выше команда создаст пользователя с именем migrationuser и паролем mygrationtool. Пользователь migrationuser будет иметь доступ для чтения и записи к миграции базы данных.
Теперь вам нужно установить зависимости, указанные в файле requirements.txt.
Вы можете сделать это, выполнив команду ниже

pip install -r requirements.txt

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

python app.py

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

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

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

screen1.png

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

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

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

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

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

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

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

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

варакушка

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

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

Основные выводы

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

Советы и советы

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

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

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

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

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

YouTube : Синяя глотка в действии
Гитхаб: Код BlueThroat

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *