Facebook выпустила StateService, систему восстановления сервисов после сбоев

Facebook StateService

Facebook опубликовала исходный код StateService  — собственной системы автоматического восстановления сервисов после крупных сбоев. Она подойдет решениям, которые построены на сторонних разработках и функционируют на виртуальных машинах (ВМ).

Принцип работы

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

Facebook StateService

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

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

Технические аспекты StateService

Система работает в качестве веб-сервиса через HTTP и отвечает кодами состояния. К примеру, на вопрос «Сервер находится в состоянии А?» положительный ответ — 200, отрицательный — 406. В будущем разработчики намерены интегрировать StateService с другим программным обеспечением, таким как Ansible и Puppet.

Важно не только оперативное восстановление работы сервисов, но и их безопасность. Канадская компания BlackBerry запустила сервер, который, как утверждается, способен защитить данные даже от атак с использованием квантовых компьютеров.

Source: Facebook Code