4 Инженера, 7000 Серверов И Одна Глобальная Пандемия

Привет, Хабр! Представляю вашему вниманию перевод статьи «4 инженера, 7000 серверов и одна глобальная пандемия» Адиб Дау.

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



Кто мы

Мы — команда из четырех пингвинов, которые любят писать код и работать с оборудованием.

В свободное время мы отвечаем за развертывание, обслуживание и эксплуатацию парка из более чем 7000 физических серверов под управлением Linux, распределенных по 3 различным центрам обработки данных по всей территории США.

У нас также была возможность сделать это за 10 000 км от объектов, не выходя из собственного офиса, который расположен в нескольких минутах езды от пляжа на Средиземном море.



Проблемы масштаба

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

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

Кроме того, ваш сервер обеспечивает высочайшую степень контроля и возможностей устранения неполадок.

По мере нашего развития проблемы всегда рядом.

Более того, они обычно приходят группами.

Управление жизненным циклом серверов требует постоянного самосовершенствования, чтобы иметь возможность правильно функционировать в условиях быстрого увеличения количества серверов.

Программные методы управления группами серверов в центрах обработки данных быстро становятся громоздкими.

Обнаружение, устранение неполадок и устранение сбоев при соблюдении стандартов QoS становится вопросом жонглирования чрезвычайно разнообразными массивами оборудования, различными рабочими нагрузками, сроками обновления и другими приятными вещами, о которых никто не хочет беспокоиться.



Управляйте своими доменами

Чтобы решить многие из этих проблем, мы разбили жизненный цикл сервера в Outbrain на его основные компоненты и назвали их доменами.

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

Есть еще один момент, касающийся аппаратной наблюдаемости, но мы не будем описывать все моменты.

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

После разработки рабочей абстракции она передается в ручной процесс, который развертывается, тестируется и уточняется.

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

Как и все другие наши производственные системы.

Принятие такого подхода позволило нам правильно решить многие проблемы — путем создания инструментов и автоматизации.



Нужен домен

Хотя электронная почта и электронные таблицы на первых порах были жизнеспособным способом удовлетворения спроса, они не стали успешным решением, особенно когда количество серверов и объем входящих запросов достигли определенного уровня.

Чтобы лучше организовать и расставить приоритеты входящих запросов в условиях быстрого расширения, нам пришлось использовать систему обработки заявок, которая могла бы предложить:

  • Возможность настройки просмотра только нужных полей (просто)
  • Открытые API (расширяемые)
  • Известный нашей команде (понятный)
  • Интеграция с нашими существующими рабочими процессами (унифицированными)
Поскольку мы используем Jira для управления спринтами и внутренними задачами, мы решили создать еще один проект, который поможет нашим клиентам отправлять заявки и отслеживать их результаты.

Использование Jira для входящих запросов и управления внутренними задачами позволило нам создать единую канбан-доску, позволяющую смотреть на все процессы в целом.

Наши внутренние «клиенты» видели только запросы на оборудование, не вникая в менее существенные детали дополнительных задач (таких как улучшение инструментов, исправление ошибок).



4 инженера, 7000 серверов и одна глобальная пандемия

Канбан-доска в Jira В качестве бонуса то, что очереди и приоритеты теперь были видны всем, позволило понять, «где в очереди» находился тот или иной запрос и что ему предшествовало.

Это позволило владельцам изменить приоритетность своих запросов без необходимости обращаться к нам.

Перетащите и все.

Это также позволило нам отслеживать и оценивать наши соглашения об уровне обслуживания в соответствии с типами запросов на основе показателей, сгенерированных в Jira.

Область жизненного цикла оборудования

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

Еще хуже то, что многие аппаратные средства (ОЗУ, ПЗУ) можно перемещать со склада в серверную и обратно.

Они также выходят из строя или списываются, заменяются и возвращаются поставщику для замены/ремонта.

Обо всем этом необходимо донести до сотрудников службы колокейшн, занимающихся физическим обслуживанием оборудования.

Чтобы решить эти проблемы, мы создали внутренний инструмент под названием Floppy. Его задача:

  • Управление коммуникациями с полевым персоналом, агрегирование всей информации;
  • Обновление данных «склада» после каждого выполненного и проверенного ремонта оборудования.

Склад, в свою очередь, визуализируется с помощью Grafana, который мы используем для построения графиков всех наших показателей.

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

4 инженера, 7000 серверов и одна глобальная пандемия

Пульт управления складским оборудованием в Графане Для серверных устройств, находящихся на гарантии, мы используем другой инструмент, который называется «Диспетчер».

Он:

  • Собирает системные логи;
  • Формирует отчеты в формате, требуемом поставщиком;
  • Создает запрос от поставщика через API;
  • Получает и сохраняет идентификатор приложения для дальнейшего отслеживания его хода.

Как только наша претензия принята (обычно в течение рабочего времени), запчасть отправляется в соответствующий центр обработки данных и принимается персоналом.



4 инженера, 7000 серверов и одна глобальная пандемия

Вывод консоли Дженкинса

Коммуникационная область

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

Если сначала масштабирование подразумевало покупку новых серверов, то после проекта консолидации (на базе перехода на Kubernetes) это стало совсем другим.

Наша эволюция от «добавления стоек» к «перепрофилированию серверов».

Использование нового подхода также потребовало новых инструментов, которые позволили более комфортно взаимодействовать с персоналом дата-центра.

Эти инструменты были необходимы для:

  • Простота;
  • автономия;
  • Ээффективность;
  • Надежность.

Пришлось исключить себя из цепочки и построить работу так, чтобы технические специалисты могли напрямую работать с серверным оборудованием.

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

После подключения к серверу произойдет следующее:

  • Устройство подтверждает, что этот сервер действительно требует доработки;
  • Приложения, работающие на сервере, закрываются (при необходимости);
  • На канале Slack публикуется набор рабочих инструкций с объяснением необходимых шагов;
  • По завершении работы устройство проверяет корректность конечного состояния сервера;
  • Перезапускает приложения при необходимости.

Кроме того, мы также подготовили бота Slack в помощь технику.

Благодаря широкому набору возможностей (мы постоянно расширяли функционал) бот облегчил им работу, а нам жизнь намного проще.

Таким образом мы оптимизировали большую часть процесса перепрофилирования и обслуживания серверов, исключив себя из рабочего процесса.



4 инженера, 7000 серверов и одна глобальная пандемия

iPad в одном из наших дата-центров

Аппаратный домен

Надежное масштабирование инфраструктуры нашего центра обработки данных требует хорошей визуализации каждого компонента, например:
  • Обнаружение аппаратного сбоя
  • Состояния сервера (активный, размещенный, зомби и т. д.)
  • Потребляемая мощность
  • Версия прошивки
  • Аналитика для всего этого бизнеса
Наши решения позволяют нам принимать решения о том, как, где и когда приобретать оборудование, иногда даже до того, как оно действительно понадобится.

Также, определив уровень нагрузки на различное оборудование, нам удалось добиться улучшения распределения ресурсов.

В частности, энергопотребление.

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



4 инженера, 7000 серверов и одна глобальная пандемия

Энергетическая панель в Grafana

А потом появился Covid-19.

Наша команда создает технологии, которые позволяют медиакомпаниям и издателям в Интернете помогать посетителям находить соответствующий контент, продукты и услуги, которые могут их заинтересовать.

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

Интенсивное освещение в СМИ ситуации с COVID-19 в сочетании с увеличением трафика означало, что нам срочно нужно научиться справляться с этим давлением.

Причем все это пришлось делать во время мирового кризиса, когда цепочки поставок были нарушены и большая часть персонала находилась дома.

Но, как мы уже говорили, наша модель уже предполагает, что:

  • Оборудование в наших дата-центрах по большей части нам физически недоступно;
  • Почти всю физическую работу мы выполняем удаленно;
  • Работа выполняется асинхронно, автономно и в больших масштабах;
  • Потребность в оборудовании удовлетворяем методом «сборки из запчастей» вместо закупки нового оборудования;
  • У нас есть склад, который позволяет нам создавать что-то новое, а не просто проводить текущий ремонт.
Таким образом, глобальные ограничения, которые не позволяли многим компаниям получить физический доступ к своим дата-центрам, на нас мало повлияли.

А что касается запчастей и серверов, да, мы постарались обеспечить стабильную работу оборудования.

Но сделано это с целью предотвратить возможные инциденты, когда вдруг окажется, что какая-то железка недоступна.

Мы добились того, чтобы наши резервы были заполнены без стремления удовлетворить текущий спрос.

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

И возможно, вам это будет интересно.

Оригинал: тыц Теги: #центр обработки данных #Системное администрирование #облачные сервисы #Администрирование серверов #Администрирование баз данных #администрирование #Grafana #Jira

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.