- PVSM.RU - https://www.pvsm.ru -
Какое бы множество причин ни существовало, чтобы переместить приложения из обычных ЦОД в облачные, существует не меньше причин осуществить обратные действия. Показательным примером такого переноса стало недавнее перемещение серверов Instagram из общественного облачного сервиса Amazon в дата-центры Facebook.
Чтобы провести такую операцию, инженерам Instagram пришлось пораскинуть мозгами, применив нестандартный подход в преодолении неожиданных сложностей. Эта их работа – напоминание о том, что размещение мощностей в облаке остается довольно сложной задачей, как для провайдеров, так и для производителей оборудования для ЦОД.
Основатель и генеральный директор Facebook Марк Цукерберг отметил, что Instagram имел возможность оценить преимущества инженерных решений и инфраструктуры Facebook еще в 2012 году после приобретения сервиса онлайн размещения фотографий от интернет-гиганта.
Команда решила переместиться, чтобы облегчить интеграцию с системами Facebook и для того, чтобы использовать всю инфраструктуру Facebook, созданную инженерами для управления своими масштабными серверными мощностями. После осуществления этих действий команда инженеров нашла несколько точек соприкосновения с инфраструктурой Facebook, что дало еще больше возможностей для развития продукта и повышения безопасности.
Проект миграции был не так прост, как сперва ожидалось. «Сперва перемещение казалось простым делом: настроить безопасную сеть между облаком Amazon Elastic Compute Cloud (EC2) и дата-центром Facebook и постепенно переместить сервисы по частям» — заявили инженеры Instagram Рик Бренсон, Педро Кахуати и Ник Шотвей в блоге [1].
Однако быстро поняли, что это не так просто, как сперва показалось. Главной проблемой стал конфликт IP-адресов Facebook и EC2. Решением стала первоначальная миграция на Amazon’s Virtual Private Cloud (VPC) и только потом в ЦОД Facebook, используя Amazon Direct Connect.
Direct Connect – это сервис, предлагаемый Amazon в ЦОД, который по сути является связующим звеном между сервисами пользователей и общественными облачными сервисами. Прежде всего нацеленный на предприятия, он создан для того, чтобы обойти интернет-общественность, поддержать производительность и обеспечить безопасность. «VPC Amazon достаточно гибкое, чтобы избежать конфликтов с зарытой сетью Facebook!» – заявили инженеры.
Однако, перемещение приложений с облачной инфраструктуры на частное облако также не так просто, как это кажется сначала. У Instagram проходят тысячи процессов в день. Чтобы снизить риск сбоя и облегчить эти процессы насколько возможно, команда нуждается в облачных сервисах EC2 и VPC одновременно – и в этом и лежит проблема.
«AWS не обеспечивает возможность обмена группами безопасности, ни перекрывать закрытые сети EC2 и VPC» – пишут они. «Единственный путь взаимодействия между двумя закрытыми сетями – это создание общественного адресного пространства». Python и Zookeeper написали специальное приложение для обращения с динамическими IP-адресами, под названием Neti, которое обеспечило безопасную деятельность в группе и отдельный адрес для каждого конкретного запроса.
Таким образом, через три недели было осуществлено перемещение, названное самым быстрым в своем роде. Стек был готов к размещению на новом месте – в дата-центрах Facebook.
Этот этап процесса был более сложным, т.к. команда Instagram хотела сохранить все управленческие инструменты, созданные для производственных систем, размещенных на ЕС2. Для этого были использованы конфигураторы Chef и инструмент под названием Fabric, которые выполняли различные функции – от размещения приложений до продвижения баз данных.
Чтобы поместить инструменты в четко настроенную Linux-среду Facebook, команда поместила все инструменты резервирования в Linux-контейнеры (LXC), именно в таких условиях они размещаются на «родных» серверах Facebook сейчас. «Инструменты резервирования Facebook используются для создания базовой структуры, а Chef внутри контейнеров устанавливает и конфигурирует специфическое ПО для Instagram», сообщила команда Instagram.
Такой проект не может пройти без необходимости изучения одного-двух новшеств, и команде Instagram пришлось также с этим столкнуться. Вот только несколько из новоприобретенных идей:
Автор: Hull
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/facebook/68558
Ссылки в тексте:
[1] блоге: http://instagram-engineering.tumblr.com
[2] Источник: http://habrahabr.ru/post/234809/
Нажмите здесь для печати.