При поддержке «Клуба директоров ИТ — 4 СИО.Ру» вышла книга «Архитектура высоконагруженных систем. Системы сбора информации. Распределенные системы управления. Системы реального времени». Автор — Вадим Подольный, более 20 лет работает в области разработки программного обеспечения для промышленных распределенных систем управления. Принимал участие в ряде масштабных инфраструктурных проектов обеспечения технологичеcкого суверенитета предприятий ключевых отраслей отечественной промышленности: разработка Российской программной платформы АСУ ТП АЭС класса DCS/SCADA в ГК Росатом; создание специальной операционной системы «Заря» сопряжения автоматизированных систем управления ВС РФ; разработка и обеспечение кибербезопасности автоматизированных систем РЖД, «Ростех», «ОРКК» и др.

Идея книги, как отмечает автор, появилась после многочасовых обсуждений с техническими заказчиками подходов к разработке масштабных высоконагруженных распределенных систем. Какими должны быть данные в таких системах? Как обуздать хаос, потенциально возможный при создании и эксплуатации сложных, многофункциональных систем, создаваемых разными специалистами, с различных позиций рассматривающих систему: с точки зрения архитектуры и используемых технологий; с точки зрения предоставляемых сервисов; с точки зрения бизнеса? Данные, применяемые для управления распределенными системами, должны быть целостными, что особенно важно для опасных производств — работа с неконсистентными (устаревшими) данными чревата авариями. А какими должны быть метрики целостности (консистентности) данных, позволяющие однозначно оценить готовность данных к обработке?

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

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

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

Для оптимизации (планирования) нагрузки на распределенные системы применяется балансировка, особенности и способы реализации которой достаточно подробно разбираются в книге, и отмечается, что это одна из сложнейших задач при создании современных инфраструктур. При этом не стоит забывать и о ограничениях распределенных систем, каждая из которых должна удовлетворять принципу теоремы CAP — при реализации распределенных вычислений можно обеспечить выполнение не более двух из трех требований: согласованность, доступность и устойчивость к разделению. Типичные распределенные системы построены на сочетаниях требований CAP-теоремы: согласованные со всегда доступными узлами, но неустойчивые к разделению; устойчивые к разделению со всегда доступными узлами, но не согласованные; согласованные и устойчивые к разделению, но с не всегда доступными узлами.

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

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

Отдельная глава посвящена вариантам реализации системы распределенного хранения и доступа к данным, которые, как отмечается в книге, наиболее эффективно реализуются в архитектуре in-memory. Среди способов организации хранения распределенных данных в книге разбираются механизм ключ-значение; объектная надстройка; связи и отношения между объектами, а также индексирование для ускорения поиска данных. Несмотря на то, что структура данных большинства систем реального времени относительно статична, но сами данные, входящие в ее состав, могут меняться весьма динамично. Однако и структура может в ряде случаев корректироваться, хотя и не в режиме реального, но в режиме «нормального» времени.

 

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

Вадим Подольный. Архитектура высоконагруженных систем. Системы сбора информации, распределенные системы управления, системы реального времени. Издание первое. – М.: «САМ  Полиграфист» («OneBook»),  2022.  – 160  стр, ил. ISBN 978-5-00166-697-4.

DOI: 10.51793/OS.2022.62.79.001