Введение DepC: платформа OVH для вычисления QoS



В OVH нашей первой миссией в качестве поставщика облачных услуг является предоставление продуктов с высоким качеством обслуживания (QoS). Наши клиенты ожидают, что наши решения будут иметь безупречное качество обслуживания, будь то выделенные серверы, облачные серверы или хостинговые веб-сайты. И это именно то, что наши команды стремятся предлагать вам ежедневно!

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

Итак, как мы можем количественно оценить это качество обслуживания? Как мы понимаем качество каждого продукта, каждый день, как можно точнее?

Первым шагом было найти существующие инструменты, но мы быстро поняли, что ни одно решение не отвечает нашим потребностям. Именно из этого наблюдения мы решили разработать собственное решение для вычисления QoS: DepC. Первоначально созданная для команды WebHosting, эта платформа быстро распространилась по всему OVH. В настоящее время он используется внутри десятков команд.

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

Чтобы быть максимально прозрачными, мы также решили объяснить и обосновать наши методы расчета. Вот почему мы решили сделать DepC открытым исходным кодом. Вы можете найти это на Github.

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


Что такое QoS?
Прежде всего, важно определить точную природу того, что мы хотим вычислить. QoS описывает состояние системы. Это может быть услуга (например, поддержка клиентов, время ожидания в кассе…), эксплуатация продукта (например, жизненный цикл посудомоечной машины) или сложные системы (например, инфраструктура веб-сайта).

Это состояние здоровья очень субъективно и будет варьироваться в каждом конкретном случае, но, как правило, оно будет основываться на вероятности получения пользователем пользы от услуги в хороших условиях. В нашем случае хорошие условия означают как доступность услуги (то есть инфраструктура работает), так и ее общее состояние (то есть инфраструктура реагирует правильно).

QoS выражается в процентах, начиная с 100%, когда сервис полностью достигнут, а затем постепенно уменьшается в случае сбоя. Этот процент должен быть связан с периодом: месяц, день, время и т. Д. Таким образом, услуга может иметь 99,995% QoS в текущий день, тогда как днем ​​ранее она составляла 100%.

Другие концепции также важны:
  • SLA (Соглашение об уровне обслуживания): не следует путать с QoS, это контракт между заказчиком и поставщиком, указывающий ожидаемое качество обслуживания. Этот контракт может включать штрафы, назначенные клиенту в случае невыполнения поставленных задач.
  • SLO (Цель уровня обслуживания): это относится к цели, которую поставщик услуг хочет достичь с точки зрения QoS.
  • SLI (индикатор уровня обслуживания): это мера (время ответа на пинг, код состояния HTTP, задержка в сети…), используемая для оценки качества услуги. SLI лежат в основе DepC, поскольку они позволяют нам преобразовывать необработанные данные в QoS.

Цель достижения
DepC изначально был создан для команды WebHosting. С 5 миллионами веб-сайтов, распределенных по более чем 14 000 серверов, инфраструктура, необходимая для работы веб-сайтов (описанная в этой статье), а также постоянные изменения затрудняли расчет качества обслуживания в режиме реального времени для каждого из наших клиентов., Кроме того, для выявления проблемы в прошлом нам также необходимо было знать, как реконструировать QoS, чтобы отражать состояние инфраструктуры в то время.

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

Но как мы можем измерить состояние здоровья каждого из сайтов наших клиентов? Наша первая идея состояла в том, чтобы запросить их один за другим, проанализировать HTTP-код ответа и на основе этого определить состояние сайта. К сожалению, этот сценарий оказался сложным для реализации по нескольким причинам:
  • Команда WebHosting управляет миллионами веб-сайтов, поэтому масштабирование было бы очень сложным.
  • Мы не единственные гаранты правильного функционирования сайтов. Это также зависит от клиента, который может (намеренно или нет) генерировать ошибки, которые будут интерпретироваться как ложные срабатывания.
  • Даже если бы мы решили предыдущие трудности и можно было рассчитать QoS веб-сайтов, было бы невозможно определить основные причины в случае сбоя.
Мы должны были найти другое решение…

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

Чтобы понять это, мы должны помнить, как работает наша инфраструктура. Не вдаваясь в подробности, помните, что каждый веб-сайт работает через набор серверов, взаимодействующих друг с другом. Например, вот две зависимости, которые вы наследуете при заказе решения для веб-хостинга у OVH:
  • Исходный код ваших сайтов размещен на серверах хранения (так называемый filerz).
  • Базы данных, используемые сайтом, также размещаются на серверах баз данных.
Если на одном из этих серверов произойдет сбой, доступность веб-сайта будет неизбежно нарушена, что приведет к снижению качества обслуживания клиента.


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

Этот пример намеренно упрощен, поскольку зависимости наших клиентов, конечно, гораздо более многочисленны (веб-серверы, почтовые серверы, балансировщики нагрузки и т. Д.), Даже без учета всех мер безопасности, введенных в действие, чтобы уменьшить эти риски отказа.

Для тех, кто прошел некоторые компьютерные курсы, эти зависимости очень похожи на график. Поэтому мы решили использовать графо-ориентированную базу данных: Neo4j. В дополнение к очень хорошей производительности, язык запросов, Cypher и платформа разработки являются реальными преимуществами.

Однако создание дерева зависимостей (узлов и их отношений) не требует от нас знания Neo4j, потому что мы разработали демон, который позволяет нам преобразовывать сообщения JSON в узлы на графике. DepC предоставляет API, так что каждая команда может добавлять новые элементы в свое дерево зависимостей, не изучая Cypher.

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

ovh.github.io/depc/guides/kafka.html

Расчет QoS
Платформа DepC предлагает API для хранения и запроса дерева зависимостей. Это может показаться тривиальным, но следить за инфраструктурой с течением времени уже является сложной задачей. Это настолько мощно, что некоторые команды используют только эту часть платформы, используя DepC как эквивалент своей CMDB (инвентарь своего технического парка).

Но ценность DepC идет дальше. Большинство наших пользователей рассчитывают качество обслуживания своего узла, но DepC предлагает два метода для разных случаев:
  • Узел представляет элемент, контролируемый одним или несколькими зондами.
  • Целевой узел не является контролируемым элементом

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

Здесь мы находим концепцию SLI, которую мы видели выше: DepC анализирует необработанные данные, отправленные датчиками, чтобы преобразовать их в QoS.

Принцип очень прост:
  • Пользователи объявляют индикаторы в DepC, определяя запрос для получения данных из базы данных временных рядов, а также порог, который подразумевает снижение QoS для этого узла.
  • DepC запускает этот запрос для всех узлов, выбранных пользователем, затем анализируется каждый результат, чтобы рассчитать QoS, как только пороговое значение будет превышено. Затем мы получаем QoS данного узла. Обратите внимание, что этот процесс выполняется каждую ночь благодаря инструменту планирования задач Airflow.
Технически анализ временных рядов DepC — это просто вопрос преобразования отсортированного по времени списка значений в отсортированный по времени список логических значений.


Расчет тогда очень прост: «истинное» значение увеличит QoS, а «ложное» значение уменьшит его. Например, из 100 баллов, при этом 95 баллов ниже порогового значения (это так), QoS будет составлять 95% (DepC начинает этот расчет каждую ночь; количество точек данных на самом деле намного выше).

Обратите внимание, что для завершения этой части DepC в настоящее время поддерживает базы данных временных рядов OpenTSDB и Warp10. Другие базы данных временных рядов будут добавлены в ближайшее время (InfluxDB, Prometheus ...).

Неконтролируемые узлы
Некоторые узлы представляют не контролируемые зондом элементы. В таких случаях их QoS будет рассчитываться на основе QoS их родителей в дереве зависимостей.

Представьте, например, узел, представляющий «клиента» и связанный с несколькими отслеживаемыми узлами типа «сервер». У нас нет данных для анализа для этого клиента. С другой стороны, для «серверных» узлов мы можем рассчитать их QoS благодаря отслеживаемым узлам. Затем мы агрегируем эти показатели QoS, чтобы получить данные «клиентского» узла.

Для достижения этого DepC вычисляет QoS отслеживаемых узлов, получая, таким образом, список логических значений. Затем булева операция И применяется между этими различными списками (по зависимости), чтобы получить уникальный список булевых значений. Этот список затем используется для расчета QoS нашего неконтролируемого узла.


Затем вычисление выполняется так же, как и для отслеживаемых узлов, с учетом количества «истинных» вхождений по отношению к общему количеству точек.

ovh.github.io/depc/guides/queries.html#operation-based-qos
Для этого примера мы использовали только логический оператор. Однако DepC предоставляет несколько типов логических операций для разных приложений:
  • И: все зависимости должны работать для предоставления услуги.
  • ИЛИ: одной зависимости достаточно для оказания услуги.
  • СООТНОШЕНИЕ (N): необходимо, чтобы N% зависимостей работали для предоставления услуги.
  • ATLEAST (N): независимо от количества зависимостей, услуга оказывается, если функционирует хотя бы N зависимостей.
Мы не будем слишком углубляться во внутреннее функционирование, которое позволяет нам рассчитывать QoS в больших масштабах. Но если вас это заинтересует, я приглашаю вас посмотреть конференцию, которую мы провели на FOSDEM 2019 в зале Python. Видео и слайды доступны по этому адресу.

Заключение
DepC уже используется десятками команд в OVH. Выбранная архитектура позволяет нам предлагать визуализацию QoS через встроенный веб-интерфейс, с самим DepC или депортировать дисплей в Grafana.

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


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

Наша цель — стать стандартным решением для расчета QoS в OVH. Инструмент находится в производстве уже несколько месяцев, и мы получаем тысячи новых узлов в день. Наша база данных в настоящее время содержит более 10 миллионов, и это только начало.

И, конечно, если вы хотите протестировать или развернуть DepC дома, не стесняйтесь. Это открытый исходный код, и мы останемся в вашем распоряжении, если у вас есть вопросы или идеи по улучшению!

Github: github.com/ovh/depc
Documentation: ovh.github.io/depc/
Presentation FOSDEM 2019 (EN): fosdem.org/2019/schedule/event/python_compute_qos_of_your_infrastructure/
Presentation PyconFR 2018 (FR): pyvideo.org/pycon-fr-2018/calculer-la-qos-de-vos-infrastructures-avec-asyncio.html

Почему создать сайт проще, чем кажется



Проще, чем вам кажется!
Есть стереотип, что для создания сайта обязательно требуются глубокие технические знания. А если их нет, то тогда обязательно нужно заказывать сайт у фрилансера или агентства. Но это не так! Сегодня существует множество доступных и готовых инструментов, позволяющих быстро получить красивый и функциональный интернет-проект. Конструктор сайтов REG.RU — один из таких сервисов, и в этом письме мы расскажем об его возможностях, чтобы вы могли начать уже сегодня.

Преимущества Конструктора сайтов REG.RU
  • 1. Простое управление. Чтобы создать сайт и добавить к нему все необходимые элементы, вам не нужно изучать вёрстку, JavaScript, PHP или другие языки программирования. Все возможности Конструктора сайтов REG.RU доступны в понятном визуальном редакторе.
  • 2. Доступность. Всё, что нужно для старта, — домен и хорошая идея для проекта. На начальном этапе может быть достаточно бесплатного тарифа. Так вы освоитесь с большинством функций сервиса без лишних затрат. В дальнейшем вы всегда сможете перейти на платные и более производительные тарифы.
  • 3. Не нужно заказывать хостинг. В состав услуги уже включён производительный хостинг, и вам не потребуется дополнительно его заказывать.
  • 4. Шаблоны на все случаи жизни. Ресурсы для компаний, визитки, блоги — пользователям доступны более 170 готовых шаблонов. С помощью сервиса вы даже сможете создать полноценный интернет-магазин (например, на домене .SHOP), добавить товары, способы оплаты и другие необходимые элементы.
  • 5. Плагины. Конструктор сайтов REG.RU поддерживает добавление дополнительных модулей, среди которых виджеты фотогалерей, видео, музыки, платёжные системы, кнопки соцсетей и карты Google или «Яндекс».




Сэкономьте 15%!
Для подписчиков REG.RU действует специальное предложение!
По промокоду NEWSITE15 вы можете заказать тариф «Годовой» или «Бесконечный» Конструктора сайтов REG.RU со скидкой 15%. Акция продлится до 1 сентября 2019 года и действует для всех клиентов REG.RU, кроме партнёров, при заказе новой услуги. Активируйте промокод и получите удобный и простой веб-инструмент для интернет-проекта!
www.reg.ru/web-sites/website-builder/

Dedicated Server deals during 48 hours from 11.50€



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

START-2-M-SATA
CPU: 1x Intel C2750 (Avoton) — 1 CPU — 8C/8T — 2.4 GHz
RAM: 16 GB
Storage: 1x 1 TB SATA
Save up to 50% during 3 months
www.online.net/en/server-dedicated/start-2-m-sata

PRO-6-XS
CPU: 1x Intel Xeon D-1531 — 1 CPU — 6C/12T — 2.2 GHz
RAM: 32 GB
Storage: 2x 500 GB SSD
Save up to 40% during 12 months
www.online.net/en/server-dedicated/pro-6-xs

STORE-2-M
CPU: 1x Intel Xeon E5 1410 v2 — 1 CPU — 4C/8T — 2.8 GHz
RAM: 64 GB
Storage: 3x 6 TB SATA
Save up to 50% during 6 months
www.online.net/en/server-dedicated/store-2-m

CORE-5-M
CPU: 1x AMD EPYC 7401P — 1 CPU — 24C/48T — 2 GHz
RAM: 256 GB
Storage: 3x 1 TB NVMe
Save up to 40% during 3 months
www.online.net/en/server-dedicated/core-5-m

Глобальные неполадки в публичной сети, 18 августа 2019



Уважаемый клиент
Мы фиксируем глобальные сетевые неполадки в публичной сети в облачных локациях Амстердама. Они связаны с массированной и рапределенной DDoS-атакой.

Мы работаем над восстановлением нормальной работы сети с максимальным приоритетом.

С уважением,
команда поддержки Servers.ru

VPS в 10 различных локациях от DignusData



Хочешь посмотреть Netflix? Хочешь послушать музыку в Spotify? Хочешь обойти блокировку РКН или запустить свой собственный VPN-сервер?

Македонская компания DignusData предлагает всего за 5 евро в месяц получить виртуальный сервер в 10-ти различных локациях с 1 Гбит-ным каналом, без ограничений по трафику и защитой от DDoS-атак вплоть до 500 Гбит.

Подключись сейчас и активируй скидку в 50% на весь период заказа VPS-сервера по промокоду: DignusData50%

Детали по ссылке: dignusdata.center/vps

Новости FirstByte.RU -Теперь еще и виртуальный PHP хостинг!



Мы рады вам сообщить, что теперь Вы можете заказать сразу виртуальный SSD хостинг для своего сайта. Это профессиональный хостинг основанный на панели управления ISP и отвечающий последним необходимым функционалом для работы различных сайтов работающих в связке PHP, MySQL.

На самом деле все просто, быстро и удобно! Особенно тогда, когда разбираться VDS и настройкой софта и панелей управления нет времени!

Доступные тарифы:
  • Старт — 55 рублей в месяц от 5GB SSD/512 RAM
  • Стандарт — 111 рублей в месяц от 10 GB SSD/1024 RAM
  • Бизнес — 222 рублей в месяц от 15 GB SSD/1536 RAM

  • Регистрация доменов и бесплатный DNS доступны для полноценной работы.
  • При оплате хостинга на год, мы предоставляем скидку в 10% !
  • Хостинг и DNS находятся под базовой защитой от DDOS атак.

Заказать можно прямо на сайте firstbyte.ru/hosting/
Либо через личный кабинет. billing.firstbyte.ru/billmgr

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

С уважением,
Команда FirstByte
support@firstbyte.ru

https://firstbyte.ru

Microsoft подготовили обновление для устранения обнаруженных уязвимостей службы удалённых рабочих столов.

Данное обновление призвано устранить проблемы, связанные с двумя вредоносными RCE уязвимостями (CVE-2019-1181/1182). Они были найдены в процессе повышения уровня надёжности службы удалённых рабочих столов.

Данная уязвимость затрагивает следующие версии операционной системы: Windows 7 SP1, Windows Server 2008 R2 SP1, Windows Server 2012, Windows 8.1, Windows Server 2012 R2, а также все версии Windows 10.

Обновление для вашей версии операционной системы можно скачать по ссылке: portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-1182

Техподдержка через Telegram



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



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



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

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

Для нас очень важно ваше мнение и обратная связь, поэтому команда Keyweb.ru ждёт ваших отзывов и предложений по данному сервису!
Приятного пользования и до встречи в Telegram!

Подписаться вы сможете по данной ссылке.
my.keyweb.ru/index.php?m=telebot
Подробная инструкция по подключению здесь.
my.keyweb.ru/knowledgebase.php?action=displayarticle&id=129

Команда Keyweb.ru

Облачные функции: бессерверные вычисления от Selectel



Можно ли создавать приложения и сервисы, забыв про серверы? Да, и скоро эта возможность будет реализована в «Облачных функциях Selectel» — платформе бессерверных вычислений. Разбейте логику приложений на микрозадачи, создайте под каждую функции и настройте их запуск по срабатыванию триггера. Больше не нужно настраивать сервер — просто пишите код.
Технология позволяет:
  • Забыть про администрирование серверов и сосредоточиться на написании кода.
  • Не думать о масштабировании — услуга сделает его за вас.
  • Анализировать статистику и мониторить каждую выполняемую функцию.

Оптимизируйте работу своего бизнеса:
  • Ускорьте процесс вывода продукта на рынок благодаря гибкому развертыванию приложения на уровне одной функции.
  • Быстро обрабатывайте данные, не беспокоясь о настройке высокой доступности.
  • Экономьте за счет платы только за используемые ресурсы (pay-as-you-go).

Сейчас мы находимся в стадии разработки продукта, поэтому ваша обратная связь очень нужна. Напишите нам и расскажите, есть ли у вас опыт работы с бессерверными вычислениями. А чтобы следить за прогрессом по услуге — подпишитесь на обновления.
selectel.ru/services/cloud/serverless/