Google не действует «открыто». Они держат свою внутреннюю архитектуру под строгим контролем. Вы не найдёте публичного чертежа механизма, лежащего в основе Google Docs. Но мы не действуем вслепую. Мы можем проанализировать другие проекты Google и их известные инженерные практики, чтобы реконструировать то, как, вероятно, работает эта система.
Начнём с того, что подтверждено. Основная серверная часть — бэкенд-логика, обрабатывающая ваши запросы, — написана на Java. Это не удивительно. Java — это объектно-ориентированный язык, изначально разработанный компанией Sun Microsystems. Google использует её в качестве фундаментального строительного блока уже много лет. Она надёжна. Она масштабируема. Она соответствует их потребностям.
На другой стороне экрана браузер обрабатывает остальное. Это клиентская часть. Она полагается на JavaScript, чтобы интерфейс оставался отзывчивым. Не путайте Java и JavaScript. Они имеют общее название, но являются разными технологиями. Java создаёт автономные приложения. JavaScript улучшает веб-опыт внутри браузера. Он не работает за пределами этого окна.
За пределами этих двух фактов детали остаются секретом Google. Но мы можем строить обоснованные предположения, основываясь на том, как они решали аналогичные проблемы в прошлом. В частности, обратите внимание на Google File System. Она даёт нам дорожную карту.
Дешёвое оборудование, большой масштаб
У Google есть долгая история покупки дешёвого стандартного оборудования. Они обычно не покупают самые мощные отдельные серверы. Они покупают тысячи скромных машин. Серверы, на которых работает Google Docs, вероятно, являются «рабочими лошадками». Ничего особенного.
Почему? Потому что избыточность дешевле, чем премиальное оборудование. Если отказывает один дорогой сервер, бизнес останавливается. Если выходит из строя один дешёвый сервер, Google запускает другой. Такой подход создаёт масштабируемую систему. Вы можете легко добавлять мощности. Вам не нужно обновлять всю инфраструктуру при всплеске трафика.
Где хранятся ваши файлы?
Конфигурация, вероятно, выглядит следующим образом. У вас есть серверы приложений, на которых запускается программное обеспечение Google Docs. Затем у вас есть серверы баз данных, которые хранят ваши данные. Вероятно, существует контрольный или административный сервер, действующий как шлюз, управляющий трафиком и обновлениями.
Поскольку дешёвое оборудование ломается, Google постоянно предполагает отказы. Они используют избыточность. Ваш документ не хранится в одном месте. Он копируется на несколько серверов баз данных. Если один узел отключается, Google Docs извлекает информацию с другого. Серверы общаются с центральной контрольной точкой, чтобы поддерживать синхронизацию всего.
Физическая реальность
Сколько машин задействовано? Мы не знаем точного числа. Но мы знаем, что они используют огромные центры обработки данных. Центр обработки данных — это просто здание, заполненное компьютерным оборудованием. Серверы размещаются в металлических стеллажах, называемых стойками. Крупный объект может содержать тысячи таких серверов.
Это огромная распределённая головоломка. Google Docs — это не просто веб-страница. Это сложная экосистема, построенная на Java, JavaScript и предположении, что всё в конечном итоге сломается. И в этом ключ. Система спроектирована так, чтобы выживать после таких поломок, оставаясь незамеченной для вас.
Мы глубже рассмотрим, куда движется эта технология дальше. Но пока просто знайте, что ваш «простой» документ, вероятно, покоится на десятках дешёвых, избыточных серверов где-то в холодном, тёмном помещении.






























