Овладение миграцией в облако лучшие практики, чтобы сделать ее успешной

Мастерство миграции в облако лучшие практики для успешной реализации

Проекты по миграции в облако набирают обороты, так как топ-руководители ставят перед собой задачу повышения эффективности и снижения затрат. И может показаться, что облако – это ответ и путь, который следует выбрать для всех. Это может показаться привлекательным, но это не совсем так. За свою профессиональную карьеру в качестве инженера я видел различные сценарии, от компаний среднего размера, решивших перейти в облако, до корпораций корпоративного уровня, сделавших выбор в пользу инфраструктуры внутри предприятия. И я знаю, что этот путь – все, кроме прямого.

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

Переходить в облако или нет, или 3 вопроса, на которые нужно ответить перед разработкой стратегии миграции в облако

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

Я предлагаю ответить на следующие три вопроса, чтобы убедиться, что миграция в облако – это правильное решение.

1. Насколько важна в реальном времени производительность вашего приложения?

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

2. У вас есть интенсивная, но высокопредсказуемая нагрузка?

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

3. У вас есть сезонные всплески спроса?

Проблема с локальными центрами обработки данных заключается в том, что вы не можете мгновенно масштабироваться, если у вас возникает скачок трафика. Для этого вам придется физически добавить новое оборудование. Но в облаке масштабирование вверх или вниз может быть выполнено за секунды без нарушения бизнес-операций. Таким образом, если вы регулярно сталкиваетесь с сезонными всплесками спроса (например, перед Рождеством), облако обеспечит вам необходимую гибкость и мобильность для удовлетворения этого спроса.

Как подойти к миграции в облако

Теперь мы пришли к самой интересной части – перенос вашей системы в облако. Если у вас есть приложение, основанное на Salesforce, легко найти руководство по миграции в облако в Интернете. Однако, если ваша экосистема состоит из платформы Salesforce и специально разработанного решения, объединенных через настроенные процессы ETL, здесь нет готового руководства. Таким образом, помня, что подход «всеобщий» не существует, с чего начать?

1. Выполните начальную оценку

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

Мы уже говорили о том, что облако берет на себя контроль над операционной средой вашего решения. Так что, что, если ваша система напрямую взаимодействует с криптографической платой или использует лицензию, привязанную к идентификатору оборудования? Очень важно заранее понять, какие элементы и интеграции являются ключевыми для общей работы системы.

2. Определите очередность миграции

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

3. Определите зависимости

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

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

4. Выберите правильную стратегию

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

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

Еще один способ подхода к вашей стратегии миграции в облако – это посмотреть, является ли ваше решение монолитом или имеет клиент-серверную архитектуру с клиентским приложением на фронтенде и несколькими API. Если да, то эти API могут быть размещены на отдельных виртуальных машинах. Или вы также можете перестроить бекенд в функции Lambda, делая еще один шаг к бессерверной архитектуре.

В заключение

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