среда, 6 апреля 2016 г.

Обновление Веб-инфраструктуры TDF

Эта статья перевод оригинальной статьи из блога TDF. Хочу сразу сделать несколько пояснений:
  • под инфраструктурой в сообществе LibreOffice понимается всё что связано с интернетом (то есть: сервера, сайты, почтовые рассылки, боты, сборочные фермы);
  • в данной статье, в основном, речь пойдёт о серверной части инфраструктуры;
  • хотя это не указано в оригинале, статья написана Александром Вернером (Alexander Werner), Итало Виджноли (Italo Vignoli) — администратор опубликовавший статью;
  • в статье странно указан парк серверов, на самом деле, сейчас новые сервера стараются закупать, но ещё сохранились арендуемые;
  • в конце статьи, как всегда, есть ссылки для дополнительного чтива, если что забыл включить - гуглите сами :);
  • некоторые вещи я так и не смог грамотно перевести ("как собака — всё понимаю, а сказать не могу" ;), прошу за это прощение, в этих местах будет немного не по русски.


За кулисами TDF: инфраструктура

2015 год принес некоторые сложные и захватывающие изменения, касающиеся непрерывной реструктуризации нашей инфраструктуры. В начале года после обширной тестовой фазы новой платформы виртуализации, продолжалась миграция наших существующих виртуальных машин и голого железа.
Платформа виртуализации состоит из трех серверов, в каждом из которых 256 Гб оперативной памяти, 64 процессорных ядра и довольно много места на жестком диске. Одна из машин предназначена для использования исключительно разработчиками для краш-тестов. Все эти серверы располагаются на площадке Manitu в немецком городе Санкт-Вендель и в настоящее время проходят миграцию на нашей собственной специальной стойке 42U, включая универсальность для настройки частной сети между этими машинами и другими, которые мы там содержим.
После некоторых проблем с программным обеспечением, ранее выбранным для нашей платформы виртуализации, основная работа пошла в сторону создания виртуальных машин, на которой работающие службы изолированы друг от друга, и базируется на простом KVM. Это уже привело к переходу официального блога на одну из наших собственных машин, что даёт нам больше контроля над установкой плагинов, а также обеспечивает более гибкое управление используемого WordPress.
Во время Hackfest в Университете Гран-Канария, шла работа над переработкой более простого для работы людей, которые хотят участвовать в нашей инфраструктуре, используемого Salt States. Это также привело к созданию видео-учебника о том, как создать среду разработки для нашей инфраструктуры.
Также были созданы ежемесячные встречи (в Hangouts) команды Поддержки Инфраструктуры, происходящие каждую последнюю среду месяца в 17:00 по Гринвичу. Они привели к созданию еженедельного окна автоматического обслуживания для обновления сервера, перезагрузки и основных изменений конфигурации, это происходит каждый понедельник между 03:00 и 05:00 по Гинвичу.

Обновление операционных систем

Во время встреч сообщество решило, в течение ближайших нескольких месяцев, обновить базовую операционную систему до Debian 8. С целью проверки на наличие каких-либо проблем, которые могут возникнуть во время обновления, это было проделано на одном из наших узлов виртуализации, во время созданного окна обслуживания. При обновлении, были установлены некоторые препятствия и места для обходных путей, чтобы обеспечить плавное обновление.
Мы также инвестировали в аппаратные средства от независимого поставщика Thomas Krenn, которые позволяют нам установить два дополнительных сборочных робота (Buildbot) для Windows на двойной процессор и высокоскоростные SSD, параллельно с ещё двумя сборочными роботами для Linux, работающих на таком же оборудовании. Эти роботы для сборки будут также размещаться в Санкт-Вендель и будут включены в нашу инфраструктуру. Еще два сервера будут использоваться для резервного копирования. Мы планируем все оборудование TDF соединить через VPN, выстраивая глобальную корпоративную внутреннюю сеть (интрасеть).
Во второй половине года, на Debian 8 были переведены ещё машины, в том числе два гипервизора все еще работавших на Wheezy (Debian 7). Из-за большого успеха новых роботов для сборки, были заказаны и теперь расширяют интрасеть ещё два сборочных робота, с высокопроизводительным маршрутизатором облачного ядра от Mikrotik ставшего центральной точкой подключения нашей интрасети. Маршрутизатор облачного ядра также служит в качестве поставщика VPN для членов TDF в зонах с ограниченным доступом в Интернет — таких, как конференция LibreOffice в Орхусе, Дания в октябре.
По мере того как число новых серверов выросло, мы решили перенести нашу платформу мониторинга на TKmon, работающую на виртуальной машине с обеспечением бесперебойной работы, которая отделена от остальной части нашей инфраструктуры. TKmon интегрируется с поддержкой производителя оборудования и автоматически уведомляет об аппаратных сбоях. TKmon это программное обеспечение с открытым исходным кодом и использует инструменты, такие как icinga и pnp4nagios.
Для того, чтобы быть более свободными с уведомлениями мониторинга, я написал инструмент под названием TMB, который предусматривает робота для службы чата Telegram и отправляет уведомления для администраторов. Разработка была выполнена с PyCharm, Python IDE.

Наш серверверный парк

Современное состояние инфраструктуры состоит из трех арендованных гипервизоров, каждый из которых с четырьмя процессорами, 256 Гб оперативной памяти, с восемью жесткими дисками и частично твердотельными накопителями. Дополнительные арендованные серверы включают в себя один сервер резервного копирования и один дублёр веб-сайта в режиме ожидания хоста, который был необходим из-за проблем виртуализации в начале года, и будет выведен из эксплуатации в ближайшее время. Девять размещённых сервера с Intel SSD-накопителями и мощными двойными процессорами находятся только в интрасети, с доступом под контролем к ним основного маршрутизатора.
На гипервизорах, в настоящее время насчитывается 31 виртуальная машина, предоставляя такие услуги, как AskBot, WordPress, Gerrit, Bugzilla, Jenkins, MozTrap и многое другое. В Hetzner сейчас находиться четыре сервера: один содержит Wiki, MirrorBrain и наши публичные списки рассылки, второй для внутренних служб, а также два сервера для хранения резервных копий - в том числе тот, который обеспечивает емкость более 17 ТБ.
Большая часть нашей документации и многие из наших Salt State теперь опубликованы на github https://github.com/tdf/salt-states-base, а скомпилированую документацию можно найти по адресу: http://salt-states-base.readthedocs.org/en/latest/. Salt State теперь тестируются с Travis CI и результаты сборки находятся на https://travis-ci.org/tdf/salt-states-base. Поэтому теперь очень легко внести свой вклад в развитие и улучшение документации. Просто сделайте форк хранилища и создайте пул-реквест — тогда результаты будут автоматически проверены в Travis. Если вы хотите внести свой вклад в инфраструктуру наших проектов, Вы приглашены присоединиться к нашим ежемесячные встречам, или приходите на канал команды Поддержки Инфраструктуры #tdf-infra в сети Freenode.

Дополнительная литература и источники: