Автоматизация транспортно-логистических компаний - УрГУПС

Курс лекций и лабораторных работ по системному анализу

Преподаватель: Шипулин Александр Валерьевич

Лекция 6. Принципы построения систем

Эта лекция

В этой лекции мы рассмотрим требования ГОСТ к созданию автоматизированных систем, изучим архитектуры систем (монолит, микросервисы, serverless), разберём API и форматы данных, а также познакомимся с методологиями Agile, Scrum и DevOps.

Цель

Сформировать представление о требованиях ГОСТ к созданию автоматизированных систем, архитектурах систем, API-интеграциях и методологиях разработки Agile/Scrum/DevOps.

Содержание


6.1 Требования ГОСТ и принцип первого руководителя

ГОСТ РД 50-680-88

ГОСТ РД 50-680-88 — стандарт для автоматизированных систем на транспорте. Определяет основные требования к проектированию и созданию АС.

Требование Содержание
Системность АС рассматривается как часть более крупной системы (отрасль, экономика)
Развитие АС должна иметь резерв мощности для масштабирования
Современность Применение современных технологий и методов
Стандартизация Использование стандартизированных компонентов и интерфейсов
Эффективность Экономическая и социальная эффективность внедрения

ГОСТ 34.601-90

ГОСТ 34.601-90 — стандарт, описывающий этапы создания автоматизированных систем:

graph LR
    A[1. ТЗ] --> B[2. Проект]
    B --> C[3. Рабочий]
    C --> D[4. Внедрение]
    D --> E[5. Эксплуатация]
    
    style A fill:#ff9,stroke:#333
    style E fill:#bfb,stroke:#333
Этап Результаты
Техническое задание Документ с требованиями к системе
Проектная документация Архитектура, алгоритмы, интерфейсы
Рабочая документация Программный код, инструкции
Внедрение Установка, настройка, обучение
Эксплуатация Поддержка, развитие, обновления

Принцип первого руководителя

Принцип первого руководителя — условие успеха автоматизации является активная поддержка топ-менеджмента.

Без поддержки первого лица (генерального директора, технического директора) автоматизация обречена.

Почему это важно:

Причина Объяснение
Ресурсы Только руководитель может выделить бюджет и персонал
Изменения Автоматизация меняет процессы — только топ может обязать меняться
Конфликты Межфункциональные конфликты решает только руководитель
Мотивация Личный интерес руководителя — главный драйвер успеха

6.2 Архитектуры систем: монолит, микросервисы, serverless

Монолитная архитектура

Монолит — единое приложение, где все компоненты связаны и развёртываются вместе.

Плюсы Минусы
Простота разработки и тестирования Сложность масштабирования
Простота развёртывания Один компонент влияет на всё приложение
Понятная структура Долгая разработка при росте команды

Применение в ТЛК: Небольшие ТЛК с 1–2 пользователями, простые системы учёта.

Микросервисная архитектура

Микросервисы — архитектура, где приложение состоит из независимых сервисов, каждый решает свою задачу.

graph TD
    A[API Gateway] --> B[CRM-сервис]
    A --> C[TMS-сервис]
    A --> D[WMS-сервис]
    A --> E[Документооборот]
    A --> F[Аналитика]
    
    B --> G[(БД CRM)]
    C --> H[(БД TMS)]
    D --> I[(БД WMS)]
    
    style A fill:#4facfe,stroke:#333,color:#fff
Плюсы Минусы
Независимое масштабирование Сложность управления
Независимое развёртывание Сложность отладки
Технологии под задачу Требует DevOps-культуры
Отказоустойчивость Сетевые задержки

Применение в ТЛК: Средние и крупные ТЛК, облачные платформы (как АРК).

Serverless-архитектура

Serverless — архитектура, где разработчик пишет код, а инфраструктурой управляет провайдер.

Характеристика Описание
Event-driven Код выполняется при наступлении события
Автоматическое масштабирование От нуля до миллионов вызовов
Оплата за вызов Платите только за время выполнения
Нет серверов Провайдер управляет инфраструктурой

Применение в ТЛК: Webhook-уведомления, обработка файлов, API-интеграции.

6.3 API, форматы данных и интеграции

API как основа интеграции

API (Application Programming Interface) — интерфейс, позволяющий различным приложениям обмениваться данными.

Тип API Описание Пример
REST Простой, на основе HTTP REST API АРК
GraphQL Гибкий запрос данных API социальных сетей
gRPC Высокая производительность Внутренние микросервисы

HTTP REST: методы и статус-коды

HTTP-методы REST API:

Метод Описание Пример
GET Получить данные GET /api/clients — список клиентов
POST Создать ресурс POST /api/clients — создать клиента
PUT Обновить ресурс PUT /api/clients/123 — обновить клиента
DELETE Удалить ресурс DELETE /api/clients/123 — удалить клиента

HTTP-статус-коды:

Код Значение Описание
200 OK Успешный запрос
201 Created Ресурс создан
400 Bad Request Неверный запрос
401 Unauthorized Нет авторизации
403 Forbidden Нет доступа
404 Not Found Ресурс не найден
500 Internal Server Error Ошибка сервера

Форматы данных

Сравнение форматов данных:

Формат Размер Читаемость Сложность Применение
JSON Средний Высокая Низкая REST API, веб-приложения
XML Большой Высокая Высокая ЭДО, корпоративные системы
Protobuf Маленький Низкая Высокая Микросервисы, IoT

Пример JSON-запроса к API АРК:

{
  "client": {
    "name": "ООО «ТрансЛог»",
    "inn": "7701234567",
    "type": "legal"
  },
  "contact": {
    "email": "info@translog.ru",
    "phone": "+7(495)123-45-67"
  }
}

Webhooks — механизм обратной связи: приложение АРК отправляет HTTP POST-запрос на указанный URL при наступлении события (новая заявка, изменение статуса).

6.4 Agile, Scrum и DevOps

Agile Manifesto

Agile — семейство методологий разработки, основанных на итеративном подходе и адаптивности.

Четыре ценности Agile Manifesto:

Ценность Значение
Люди и взаимодействие > Процессы и инструменты Команда важнее инструментов
Работающий продукт > Исчерпывающая документация Результат важнее планов
Сотрудничество с заказчиком > Согласование условий Обратная связь важнее контрактов
Готовность к изменениям > Следование плану Адаптивность важнее следования

Методология Scrum

Scrum — фреймворк Agile для управления разработкой продукта.

Роли Scrum:

Роль Ответственность
Product Owner Определяет «что» делать — бэклог продукта
Scrum Master Обеспечивает «как» — процесс Scrum
Development Team Реализует — «кто» делает

Артефакты Scrum:

Артефакт Описание
Product Backlog Список всех задач по продукту
Sprint Backlog Задачи на текущий спринт (1–4 недели)
Increment Готовый результат спринта

Церемонии Scrum:

flowchart LR
    A[Sprint Planning] --> B[Daily Scrum]
    B --> C[Разработка]
    C --> D[Sprint Review]
    D --> E[Retrospective]
    E --> A
    
    style A fill:#ff9,stroke:#333
    style D fill:#bfb,stroke:#333
    style E fill:#4facfe,stroke:#333,color:#fff
Церемония Цель Длительность
Sprint Planning Планирование спринта До 2 часов
Daily Scrum Ежедневная синхронизация 15 минут
Sprint Review Демонстрация результата До 1 часа
Retrospective Улучшение процесса До 1 часа

DevOps-практики

DevOps — культура и практика взаимодействия разработки (Development) и эксплуатации (Operations).

CI/CD (Continuous Integration / Continuous Delivery):

graph LR
    A[Код в репозиторий] --> B[Автоматическая сборка]
    B --> C[Автоматическое тестирование]
    C --> D[Деплой на staging]
    D --> E[Проверка качества]
    E --> F[Деплой на production]
    
    style A fill:#ff9,stroke:#333
    style F fill:#bfb,stroke:#333

Ключевые практики DevOps:

Практика Описание Выгода
CI/CD Автоматическая сборка и доставка Быстрые релизы, меньше ошибок
Автоматизация тестирования Unit, интеграционные, E2E тесты Качество кода
Мониторинг Отслеживание работы в реальном времени Быстрое выявление проблем
Infrastructure as Code Управление инфраструктурой через код Воспроизводимость

Кейс АРК: BI-аналитика и дашборды

Встроенная BI-аналитика АРК предоставляет руководителям инструменты для принятия решений на основе данных.

Основные компоненты BI-модуля АРК:

Компонент Описание
Информационные панели Настраиваемые дашборды с KPI-виджетами
KPI-виджеты Выручка, расходы, доходность, EBITDA, маржинальность
Фильтры и срезы По датам, клиентам, направлениям, менеджерам
Drill-down Детализация от общего к частному

Показатели в дашбордах АРК:

Показатель Описание Формула
Выручка Общая сумма по перевозкам Сумма счетов
Расходы Переменные и постоянные затраты Сумма расходов по заявкам
Доходность Прибыль по периоду Выручка - Расходы
EBITDA Операционная прибыль EBITDA по всем заявкам
Маржинальность Процент прибыли (Выручка - Расходы) / Выручка
Простои Время простоя транспорта Сумма часов простоев

ABC/XYZ-анализ во встроенной аналитике:

flowchart TD
    A[ABC/XYZ-анализ] --> B[Клиенты]
    A --> C[Грузы]
    A --> D[Маршруты]
    
    B --> E[Категория A: 20% → 80% выручки]
    B --> F[Категория B: 30% → 15% выручки]
    B --> G[Категория C: 50% → 5% выручки]
    
    C --> H[Стабильный спрос X]
    C --> I[Сезонный спрос Y]
    C --> J[Нестабильный спрос Z]
    
    style A fill:#4facfe,stroke:#333,color:#fff

Yandex DataLens — внешний BI-инструмент:

DataLens позволяет подключаться к данным АРК через API/HTTP REST и строить внешние дашборды:

  1. Получение API-ключа в настройках АРК
  2. REST API запрос к эндпоинтам АРК (GET /api/reports/...)
  3. Подключение DataLens к API АРК
  4. Построение визуализаций: графики, диаграммы, таблицы
  5. Настройка обновлений в реальном времени

Практическое задание: Постройте дашборд со встроенной аналитикой АРК и подготовьте внешний дашборд в DataLens для лабораторной работы 6.

Транспортный контекст

Примеры из «Управления процессами перевозок»

На железнодорожном транспорте принципы построения систем включают:

Примеры из «Транспортной логистики»

В автомобильной логистике Agile/Scrum применяется для:

Связь с ФГОС 23.05.04 «Эксплуатация железных дорог»

Код компетенции Описание компетенции
УК-4 Способен оценивать архитектуры информационных систем и выбирать оптимальную для ТЛК
ПК-7 Способен проектировать API-интеграции и выбирать форматы данных для обмена
ПК-12 Способен применять методологии Agile/Scrum и DevOps при разработке ИС для транспорта

Заключение и выводы для специалиста

  1. ГОСТ — не бюрократия, а проверенный путь. Стандарты ГОСТ 34.601-90 и РД 50-680-88 обеспечивают системный подход и снижают риски провала проектов.

  2. Архитектура определяет возможности. Монолит подходит для малого бизнеса, микросервисы — для масштабируемых платформ, serverless — для event-driven задач.

  3. API — язык общения систем. Без понимания REST API невозможно построить интеграцию между системами ТЛК.

  4. Agile/Scrum — стандарт индустрии. Итеративная разработка с регулярными релизами позволяет быстрее реагировать на изменения рынка.

  5. BI-аналитика — основа принятия решений. Дашборды с EBITDA, маржинальностью и ABC/XYZ-анализом дают полную картину бизнеса.

Вопросы для самопроверки

  1. Какие пять требований ГОСТ РД 50-680-88 к автоматизированным системам вы знаете?

  2. В чём различие между монолитной, микросервисной и serverless архитектурой? Когда какая применяется?

  3. Какие четыре HTTP-метода REST API вы знаете? Для чего каждый из них?

  4. Какие четыре ценности Agile Manifesto вы знаете?

  5. Какие компоненты BI-аналитики предоставляет система АРК?