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 та припущенні, що все зрештою зламається. І це ключ. Система спроектована так, щоб виживати після таких поломок, залишаючись непоміченою для вас.
Ми розглянемо глибше, куди рухається ця технологія далі. Але поки що просто знайте, що ваш «простий» документ, ймовірно, спочиває на десятках дешевих, надлишкових серверів десь у холодному, темному приміщенні.






























































