Техническая база наших проектов
14 августа 2013
Автор: Nikolay Khivrin

Техническая база наших проектов

Опыт поддержки 40 физических серверов заставляет нас пересматривать подходы к организации ИТ-инфраструктуры наших проектов.

За годы работы случалось все, от полного падения дата-центра, где размещались наши серверы, до DDoS-атак в 1 млн ботов.

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

При проектировании таких систем есть ряд технологических проблем и задач:
1. Необходимо обеспечить полное географическое резервирование всех данных и вычислительных ресурсов
2. Добиться гибкого масштабирования
3. Не сильно потерять в производительности

Самое важное в проекте — это файловое хранилище и база данных. Для них отлично подходит HDFS (распределенная файловая система от Apache Software Foundation) и Hadoop.
Apache Hadoop
На нем можно развернуть хранилище фактически любого объема. А для увеличения производительности или ёмкости достаточно добавить нужное количество серверов. Распределив серверы между дата-цетрами соответствующим образом, можно добиться географического резервирования, т.е. сохранения полной работоспособности в случае отключения одного из дата-центров.

Почти во всех наших проектах используются базы MySQL, а размер отдельных из них около 5Tb. В Hadoop появился MySQL-адаптер, который позволяет сохранить логику приложения, изменив систему хранения данных. Пример работы MySQL через Hadoop:


Сегодня Hadoop используют крупнейшие компании во всем мире, а в России такие как Mail.Ru Group и Head Hunter.

Что же касаемо виртуализации, то здесь обязательным требованием является механизм Live Migration (возможность переноса виртуальных машин между физическими серверами без перезагрузки). Фактически Live Migration можно делать между разными дата-центрами.
Для решения этой задачи отлично подходят система паравиртуализации XEN или виртуализация уровня ОС OpenVZ.

В случае падения отдельной виртуальной машины в рамках одного дата-центра, можно воспользоваться технологией IP Failover (т.е. сделать подхватывание IP другой виртуальной машиной). Если же падает целый дата-центр, то здесь все сложнее, так как IP между дата-центрами перенести нельзя. В этом случае может помочь настройка изменяемых DNS-записей с маленьким TTL.

Обсуждение

Для добавления комментария, пожалуйста, авторизуйтесь