Репозиторий посвящен первому ИТ-чемпионату нефтяной отрасли.
В отборочном этапе приняли участие 38 команд, 10 состязались в 48-ми часовом хакатоне и 9 защищали свое решение в финале.
- место команда NESTRO TECH (Зарубежнефть) 32,2 балла
- место команда Прометей (Газпром нефть - ЦР) 31,83 балла
- место команда Drill IT (Газпром) 28,27 баллов
Демо стенд решения доступен по ссылке
Благодарим экспертов за ценные комментарии на ХАКАТОНЕ, представляем вам Прототип системы обеспечения непрерывности Центра управления строительством скважин.
- Видеопрезентация
- Цель прототипа
- Реализация
- Поддержка
- Целевое видение системы
- Руководство по эксплуатации
- Запуск проекта
- Разворачивание проекта в Yandex Cloud - Object Store
Цель прототипа предоставить интерфейс для работы с математической моделью, попробовать оценить различные конфигурации ИТ-ресурсов и оценить различные сценарии отказов.
Веб-приложение, в которое заложены алгоритмы оценки ущерба и анализа различных сценариев без сохранения в базу данных. Пользователь может сохранять свои данные в файл, затем возвращаться к веб-приложению и продолжать работать с ранее сохраненными конфигурациями и сценариями, а также делиться ими с другими пользователями. В решении использована сторонняя библиотека go.js для визуализации диаграммы дерева отказов и React.js - JavaScript-библиотека для создания пользовательских интерфейсов.
Достаточно, чтобы функционировал веб-сервер с фронт-энд частью. Сложное конфигурирование фронт-энд части не требуется. На этапе MVP можно получать пользу от продукта без дополнительной регистрации и специального обучения пользователей. Интерфейс интуитивный.
Cистема клиент-серверного исполнения, многопользовательская, идентификация и авторизация пользователей через AD, распределение нагрузки при расчете, централизованное хранение данных. Stateless компоненты упакованы в контейнеры на корпоративной платформе контейнеризации. Statefull компонент - база данных - на корпоративной платформе виртуализации с организованной системой резервного копирования.
В целевом виде развертывание системы будет производиться автоматически на основе созданных сценариев DSO. Аналогичным образом будет производиться установка обновлений. В ходе сборки приложения подразумевается выполнение сценариев автоматического тестирования.
Целевое содержание функций системы:
- Добавьте элементы дерева отказов в одноименном разделе.
- Перейдите в раздел "Варианты дерева отказов". Введите с клавиатуры название новой конфигурации и нажмите "+" - добавится пустое дерево отказов, в которое вы можете добавить элементы и установить между ними связи. Вы можете перетаскивать элементы на поле диаграммы. Также вы можете приближать или отдалять области дерева для более удобной работы. Для этого можно зажать клавишу Ctrl и прокручивать колесо мыши вперед/назад.
- Перейдите в раздел "Сценарии отказов" и для новой конфигурации добавьте сценарий, также вы можете задать имя сценария.
- По умолчанию сценарий заполняется для оценки слабых мест конфигурации и максимальных простоев. Вы можете активировать Сценарий частичного отказа (кнопка) и затем вручную задать отказавший узел путем ввода тестового RTO. Далее сможете по дереву отказов оценить влияние этого узла на бизнес. Как и при работе с деревом, у вас есть возможность приближать или отдалять области дерева для более удобной работы.
- Убедитесь, что установлены следующие компоненты:
nodejs@14 [email protected]
- Выполните следующие команды:
- Перейдите в папку front-end части проекта:
$ cd front
- Установите зависимости:
$ yarn
- Запустите сервер:
$ yarn start
- Перейдите в папку front-end части проекта:
После запуска сервера откроется браузер по адресу:
http://localhost:3000
- Создайте в консоли управления
Yandex Cloud
сервисный аккаунт и укажите рольstorage.editor
- Создайте в консоли управления
Yandex Cloud
в разделеObject Store
новыйбакет
- Включите режим
Веб-сайт
в настройкахбакета
- Создайте три секрета в настройках репозитория на
GitHub
ACCESS_KEY_ID
- идентификатор ключа сервисного аккаунтаSECRET_ACCESS_KEY
- секретный ключ сервисного аккаунтаBUCKET
- названиебакета
- Отправьте изменения в ветку
main
Ход сборки приложения можно увидеть в репозитории на вкладке Actions
.
После сборки приложение будет доступно по адресу указанному в настройках Веб-сайта
бакета
.
Изменить поведение сборки можно в файле .github/workflows/yandex-bucket.yml