НовостиСобытияКонференцииФорумыIT@Work
Идеи и практики автоматизации:

Блог

Про надежность и масштабируемость ИТ-инфраструктуры

Сергей Бобровский
28.06.2011 10:30:42

Urs Hölzle, Google Fellow, ранее -- первый вице-президент Google по инжинирингу, дал интервью ZDNet UK. Беседа свелась к способам масштабирования и повышения надежности систем.

Google разработала много соответствующих технологий, правда практически все ключевые закрыты. Такова библиотека разработчика MapReduce для распределенной обработки петабайтных массивов в кластерах -- запатентована (хотя некоторые специалисты утверждают, что по функциональности она сильно похожа на Oracle PL/SQL), но имеется несколько ее свободных реализаций -- например, Apache Hadoop (написан на Java, а гуглевский вариант на С++), включающий файловую систему Hadoop Distributed File System.

Google тоже использует распределенную кластерную файловую систему Google File System (GFS), которая способна эффективно обрабатывать миллионы файлов и защищает от сбоев оборудования -- например, таким нехитрым способом, как троекратное дублирование информации. Она проприетарна, закрыта, несовместима с *nix и тщательно охраняется. Идея же GFS и подобных ей решений в том, чтобы развертывать масштабную систему на оборудовании среднего качества.

Google приходится постоянно сражаться с каскадными сбоями и повышающимся уровнем общей сложности ее систем. Мартовский сбой GMail тому пример. Интересно, что огромное преимущество, по мнению Hölzle, компания получает в первую очередь от масштабируемого софта -- проапгрейдить железо на порядок далеко не всегда возможно, хотя в некоторых проектах (например централизованная обработка э-почты с миллионами аккаунтов) все же удобнее нарастить пул аппаратных серверов.

Однако GFS применяется создателями не очень массово, и сейчас готовится новая файловая технология -- лучше масштабируемая, и с меньшей задержкой (GFS ориентирована на поставку объемных данных по широким каналам, а единичные запросы могут заметно тормозить). Хотя, отмечает Hölzle, через три года повсеместным решением станет флеш-память, а скорость сетей и процессоров, как всегда, сильно возрастет. А вот СУБД Bigtable продолжит активно использоваться -- ее архитектура хорошо адаптируется к флеш-хранилищам.

FOSS -- неизбежная тенденция, говорит Hölzle, но ведь сильная сторона этих систем -- возможность создавать инфраструктуру на готовых решениях, например, веб-сервере Apache. Нам же важно сопровождение, мы делаем инновационные вещи, сейчас уходим в облака, и поэтому приходится многое на переднем крае ИТ делать самим.
Надо отметить, что например свободная СУБД Cassandra, на которой работает Facebook, вряд ли нагружена сильно меньше, нежели закрытые системы Google.

На вопрос, "каковы текущие технически сложности?", вице-президент ответил так: все что может сломаться, сломается, это мы уже прошли. Хотя мы виртуализируем все, что можно, все равно возникают сбои -- теперь в виртуальных накопителях. Сильная сторона MapReduce и Hadoop в том, что они заточены на параллелизм, автоматическую балансировку загрузки и обеспечивают высокую надежность при сбоях. Но все равно при этом возможны программные ошибки, и нету толку от троекратного копирования, если баги могут разом уничтожить все копии. Поэтому для бэкапа желательно применять что-то внешнее, не связанное с основной системой (Google до сих пор архивирует данные на ленты).
Автоматизация работы -- ключ к повышению эффективности, но она тоже по своему опасна: автоматизировать все невозможно, а если автоматизируем по максимуму, то будем получать каскадные сбои.

Как сделать систему масштабируемой и в тоже время простой? Это очень, очень трудно. Далеко не все в современных системах масштабируется так, как надо.

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

Подведем резюме интервью: проектирование современных, масштабируемых и надежных ИТ-инфраструктур становится, к сожалению, все больше искусством, нежели технологией. Архитекторам приходится все тщательнее искать баланс между эффективностью и сложностью, надежностью и стоимостью, и находить компромиссы между "много мелких багов" и "изредка масштабные каскадные сбои". Проектные запросы быстро растут, но если заказчик не так богат, как Гугль, то чем сложнее получается проект, тем меньше качественной системно-методологической и кадровой поддержки ему достанется.

Комментариев: 0

Только зарегистрированные и авторизованные пользователи могут добавлять комментарии