Instagram «спускается с облаков» Amazon в дата-центры Facebook

в 16:45, , рубрики: amazon, AWS, EC2, Facebook, Instagram, lxc, VPC, ит-инфраструктура, Сетевые технологии

Какое бы множество причин ни существовало, чтобы переместить приложения из обычных ЦОД в облачные, существует не меньше причин осуществить обратные действия. Показательным примером такого переноса стало недавнее перемещение серверов Instagram из общественного облачного сервиса Amazon в дата-центры Facebook.

Instagram «спускается с облаков» Amazon в дата центры Facebook

Чтобы провести такую операцию, инженерам Instagram пришлось пораскинуть мозгами, применив нестандартный подход в преодолении неожиданных сложностей. Эта их работа – напоминание о том, что размещение мощностей в облаке остается довольно сложной задачей, как для провайдеров, так и для производителей оборудования для ЦОД.

Основатель и генеральный директор Facebook Марк Цукерберг отметил, что Instagram имел возможность оценить преимущества инженерных решений и инфраструктуры Facebook еще в 2012 году после приобретения сервиса онлайн размещения фотографий от интернет-гиганта.

Не так просто, как сначала показалось

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

Instagram «спускается с облаков» Amazon в дата центры Facebook

Проект миграции был не так прост, как сперва ожидалось. «Сперва перемещение казалось простым делом: настроить безопасную сеть между облаком Amazon Elastic Compute Cloud (EC2) и дата-центром Facebook и постепенно переместить сервисы по частям» — заявили инженеры Instagram Рик Бренсон, Педро Кахуати и Ник Шотвей в блоге.

Сначала пытались переместиться на закрытое облако Amazon

Однако быстро поняли, что это не так просто, как сперва показалось. Главной проблемой стал конфликт IP-адресов Facebook и EC2. Решением стала первоначальная миграция на Amazon’s Virtual Private Cloud (VPC) и только потом в ЦОД Facebook, используя Amazon Direct Connect.

Instagram «спускается с облаков» Amazon в дата центры Facebook

Direct Connect – это сервис, предлагаемый Amazon в ЦОД, который по сути является связующим звеном между сервисами пользователей и общественными облачными сервисами. Прежде всего нацеленный на предприятия, он создан для того, чтобы обойти интернет-общественность, поддержать производительность и обеспечить безопасность. «VPC Amazon достаточно гибкое, чтобы избежать конфликтов с зарытой сетью Facebook!» – заявили инженеры.

EC2 не очень «дружит» с VCP Amazon

Однако, перемещение приложений с облачной инфраструктуры на частное облако также не так просто, как это кажется сначала. У Instagram проходят тысячи процессов в день. Чтобы снизить риск сбоя и облегчить эти процессы насколько возможно, команда нуждается в облачных сервисах EC2 и VPC одновременно – и в этом и лежит проблема.

«AWS не обеспечивает возможность обмена группами безопасности, ни перекрывать закрытые сети EC2 и VPC» – пишут они. «Единственный путь взаимодействия между двумя закрытыми сетями – это создание общественного адресного пространства». Python и Zookeeper написали специальное приложение для обращения с динамическими IP-адресами, под названием Neti, которое обеспечило безопасную деятельность в группе и отдельный адрес для каждого конкретного запроса.

Таким образом, через три недели было осуществлено перемещение, названное самым быстрым в своем роде. Стек был готов к размещению на новом месте – в дата-центрах Facebook.

Linux-контейнеры сделали пользовательские инструменты портативными

Этот этап процесса был более сложным, т.к. команда Instagram хотела сохранить все управленческие инструменты, созданные для производственных систем, размещенных на ЕС2. Для этого были использованы конфигураторы Chef и инструмент под названием Fabric, которые выполняли различные функции – от размещения приложений до продвижения баз данных.

Instagram «спускается с облаков» Amazon в дата центры Facebook

Чтобы поместить инструменты в четко настроенную Linux-среду Facebook, команда поместила все инструменты резервирования в Linux-контейнеры (LXC), именно в таких условиях они размещаются на «родных» серверах Facebook сейчас. «Инструменты резервирования Facebook используются для создания базовой структуры, а Chef внутри контейнеров устанавливает и конфигурирует специфическое ПО для Instagram», сообщила команда Instagram.

Миграция — это опыт

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

  • стараться практически не влиять на среду, куда предстоит внедриться;
  • применять такие «безумные» идеи как приложение Neti, которые упрощают работу;
  • создавать собственные приложения, чтобы избежать неожиданностей;
  • использовать знакомые понятия и процессы, что бы максимально упростить работу.

Автор: Hull

Источник

Поделиться

* - обязательные к заполнению поля