Управління персоналом

Середовище промислової експлуатації Google з точки зору SRE (Site Reliability Engineering)

Устаткування

Велика частина обчислювальних ресурсів Google розташовується в спроектованих компанією дата-центрах, що мають власну систему енергопостачання, систему охолодження, внутрішню мережу і обчислювальне обладнання [Barroso et al., 2013]. На відміну від типових дата-центрів, які надаються провайдерами своїх клієнтів, всі дата-центри Google оснащені однаково 1. Щоб уникнути плутанини між серверним обладнанням та серверним ПЗ, в цій книзі ми використовуємо таку термінологію:

• машина (комп’ютер) – одиниця устаткування (або, можливо, віртуальна машина);
• сервер – одиниця програмного забезпечення, яка реалізує сервіс.

На машинах може бути запущений будь-який сервер, тому ми не виділяємо конкретні комп’ютери для конкретних серверних програм. Наприклад, у нас немає конкретної машини, на якій працює поштовий сервер. Замість цього ресурси розподіляються нашою системою управління кластерами Borg.

Ми розуміємо, що таке використання терміну «сервер» нестандартне. Більш звично позначати їм відразу два поняття: програму, яка обслуговує мережеві з’єднання, і одночасно машину, на якій виконуються такі програми, але, коли ми говоримо про обчислювальні потужності Google, різниця між двома цими поняттями істотна. Як тільки ви звикнете до нашого трактування слова «сервер», вам стане зрозуміліше, чому важливо використовувати саме таку спеціалізовану термінологію не тільки безпосередньо в Google, але і протягом усієї цієї книги.

• Десятки машин розміщуються на стійках.
• Стійки стоять рядами.
• Один або кілька рядів утворюють кластер.
• Зазвичай в приміщенні центру обробки даних (ЦОД), або дата-центру, розміщується кілька кластерів.
• Кілька будівель дата-центрів, які розташовуються близько один до одного, складають кампус.
Усередині кожного дата-центру всі машини повинні мати можливість ефективно спілкуватися один з одним, тому ми створили дуже швидкий віртуальний комутатор (switch) з десятками тисяч портів. Це вдалося створити, з’єднавши сотні розроблених в Google комутаторів в «фабрику» на основі топології мережі Клоза [Clos, 1953], названу Jupiter [Singh et al., 2015]. У своїй максимальній конфігурації Jupiter підтримує пропускну здатність 1,3 Пб / с між серверами.

Дата-центри з’єднані один з одним за допомогою нашої глобальної магістральної мережі B4 [Jain et al., 2013]. B4 має програмно-конфігуровану мережеву архітектуру і використовує відкритий комунікаційний протокол OpenFlow. B4 надає широку смугу пропускання обмеженій кількості систем і використовує гнучке управління шириною каналу для максимізації середнього її значення [Kumar et al., 2015].

Системне ПЗ, яке «організовує» обладнання:

Програмне забезпечення, яке забезпечує управління і адміністрування нашого обладнання, повинне бути здатне справлятися з системами величезного масштабу. Збої обладнання – це одна з основних проблем, що вирішується за допомогою програмного забезпечення. З огляду на велику кількість апаратних компонентів в кластері, трапляються вони досить часто. У кожному кластері за рік зазвичай відмовляють тисячі машин і виходять з ладу тисячі жорстких дисків. Якщо помножити цю кількість на число кластерів, що функціонують по всьому світу, результат приголомшує. Тому ми хочемо ізолювати користувачів від подібних проблем, і команди, що займаються нашими сервісами, також не хочуть відволікатися на апаратні проблеми. У кожному кампусі дата-центрів є команди, які відповідають за підтримку обладнання та інфраструктуру дата-центру.