Источник: https://www.reddit.com/r/sysadmin/comments/r6zfv/we_are_sysadmins_reddit_ask_us_anything/
Также доступен по адресу: https://github.com/yanhan/notes/blob/master/reddit-sysadmins-ama.md
Я наткнулся на эту Reddit AMA некоторое время назад и хотел сделать несколько заметок о более интересных вещах, которые я читал там. Наконец -то приступил к тому, чтобы сделать это сегодня.
Статистика
- Пиковая полоса пропускания: 924,21 мбит/второй. Они сильно использовали акамай
- Совокупный размер баз данных: 2,4 ТБ. Кажется, растет несколько ГБ в неделю
- На балансировщике нагрузки: ~ 8K установленные соединения, ~ 250 тыс. Во времени ожидание (с очень коротким временем ожидания)
Что они используют
- Акамай
- AWS (284 беговых экземпляров , 161 были серверами приложений)
- Марионетка
- Ганглия
- Zenoss
- Rabbitmq
- МакОллиной
- Центральные мемкахедные серверы (с pylibmc). Каждый сервер приложений имеет небольшой экземпляр Memcached для очень локальное кэширование, которое не может пострадать от задержки сети
- rsyslog
- Консолидация журнала: rsyslog с модулем RELP
- Hadoop (для внутреннего хранилища данных)
Интересно
- Они используют HAPROXY на экземплярах EC2 вместо ELB. Всего 8 случаев
- ELB — это HAPROXY с API. Ограниченный контроль по сравнению с размером экземпляра ELB. Первоначально настроен на очень маленький экземпляр
- Балансировка нагрузки ELB выполняется с помощью DNS с круглым ROBIN. Когда один из бэк -экземпляров вылетает, любой кэшированный DNS в Интернете будет высосать. Много устройств/программного обеспечения/интернет -провайдеров по -прежнему неверно
- Если у ELB это будет, это будет полезно:
- Статическая VIP -поддержка. Just Roubin DNS недопустимо
- Гранулированный контроль над размером экземпляра, который поддерживает ELB
- Больше функциональности правил в балансировке нагрузки. Очень ограничен по сравнению с Haproxy
- В какой -то момент проблемы репликации Postgres очень часто снимали сайт.
- Это были связаны с неудачами EBS. Они должны были входа в систему и сразу же начать репликацию, чтобы предотвратить действительно плохие поломки
- Обновление до Postgres 9 и уход от EBS позаботился об этом
- Когда они сняли Reddit во время протеста SOPA, им пришлось подготовиться к серьезной нагрузке, потому что все знали, что сайт возвращается в Интернете
- Таким образом, они не могут сделать все, что заставляет кешировать слои очистки. В противном случае сайт упал бы на лице, когда он вернулся в Интернет
- Нагрузочное тестирование: пользователи
- У них нет нагрузочного тестирования, которая может повторить пользовательский трафик
- В каждом месте, над которым один из них работал, одна из самых сложных проблем — правильно имитировать нагрузку. Благодаря динамическим услугам, таким как Reddit, требуется много работы для разработки подходящего симулятора нагрузки
- Не зарегистрированные в трафике Кэш Акамай
- Фокус безопасности: Обеспечение того, чтобы одольщики не могут попасть в приложение и делать злые вещи. Поскольку они только проводят веб -сайт, в Infra есть очень небольшое количество векторов, которые находятся под приличным контролем безопасности
- Самая распространенная атака: люди, пытающиеся «ддовать», соскребая один URL снова и снова
- Для асинхронных вещей используется Rabbitmq. Например:
- Голоса
- Дерево комментариев перечисляется
- Новые комментарии
- Министерство
- Обновления поисковой системы
- IPv6: Akamai поддерживает это и снимает больше всего бремя
- Они пристально следят за уровнем запроса, попавшей в инфраю и статистику в реальном времени от Google Analytics
- Худшее время простоя: https://redditblog.com/2011/03/17/why-reddit-was-down-for-6-of-the-last-24-hours/
- Самое глупое время простоя:
iptables -t nat -l
Чтобы проверить правила на первичной балансировщике нагрузки. Это загружает все модули iptables, включая Conntrack. Стол Conntrack сразу заполнился и снял сайт на несколько секунд - Серверы исправляются по мере необходимости. Они подписываются на все списки уведомлений о безопасности
- Стратегии резервного копирования: зашифровать и отправить в S3. Есть также один резервный сервер Postgres, на котором записано все с каждого кластера базы данных (для большего количества потребностей в резервном копировании в реальном времени)
Проблемы
- Начиная с нуля на многих вещах
- Узкие места постоянно появляются. Исправьте одно узкое место, и повышенная пропускная способность представляет несколько новых узких мест
- Не могу коснуться коробок с мемкахты. Разогреть их будет очень болезненным
- В их масштабе они должны использовать кэширование, когда это возможно. Следовательно, закрыть все и начать все обратно, это болезненный процесс
- Нужно разработать чистый способ разогревать кэши, не при этом пользователи попадают на сайт
- Одна идея состоит в том, чтобы воспроизвести журналы доступа на передовые хосты
- Другая идея состоит в том, чтобы отправить все большее количество реального трафика. Скажем, каждые 1 из 4 запросов добраются до чего -то, кроме страницы обслуживания
Совет
- Потратьте много времени на работу над собственными вещами. Например, настройте сервер веб -/баз данных только для его ад.
- Разорвать вещи, восстановить его, повторить
- Найдите все интересное, что вы можете сделать на своем домашнем сервере, и попробуйте. Даже если вы никогда не собираетесь использовать его лично.
- Если что -то сломается или не имеет смысла, не бросайте его, пока не поймете, что происходит
- Избегайте принятия какого -либо менталитета грузового культа любой ценой
- Если это звучит как экстремальное отверстие, пересмотреть устремления Sysadmin
СЕРТ Мэй Помогите вам получить интервью в некоторых компаниях и рычаг для рекламных акций на текущем рабочем месте
- Но в основном они демонстрируют неглубокое понимание системы
- Если вы уже знаете систему наизнанку, не повредит тратить небольшое количество времени на получение сертификата
Голый металл против облака
- Оголенный метал:
- Балансировщики нагрузки и серверы базы данных получат выгоду от голого металла
- Плюс пункт: может экспериментировать с новым оборудованием
- Облако:
- Серверы приложений выиграют от облака
- Плюс очки: приятно не беспокоиться о таких вещах, как сетевая инфра, установка нового оборудования, заказ нового оборудования, мощности стойки, и т.д
Ошибки, которые они сделали
- Все раньше было в одной группе безопасности
Над чем они работали
- Автоматизация большинства задач инфраструктуры, таких как создание новых серверов
- Получение сайта будет работать более чем в одном регионе. Огромный проект, который потребует большой работы на протяжении всего стека
Оригинал: «https://dev.to/yanhan/notes-from-a-reddit-sysadmins-ama-in-2013-b64»