Логистический интегратор

Документация по техническим средствам хранения исходного текста и объектного кода программного обеспечения, а также средствам компиляции исходного текста в объектный код

Введение

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

1. Хранение исходного текста программного обеспечения

1.1 Система контроля версий: GitLab

Для хранения и управления исходным текстом программного обеспечения используется система контроля версий GitLab.

Основные функции и возможности GitLab:

  • Хранение и управление исходным кодом:
    • Ведется централизованное хранение исходного кода. Все изменения фиксируются и сохраняются в виде историй версий.
    • Возможность клонирования репозиториев для локальной разработки.
  • Ветвление и слияние:
    • Поддержка создания независимых веток для работы над новыми функциями или исправлениями ошибок.
    • Механизмы слияния (merge request) позволяют аккуратно интегрировать изменения из разных веток, минимизируя конфликты.
  • История изменений и ревизии:
    • Отслеживание всех изменений, выполненных разработчиками, с фиксацией автора и времени внесения изменений.
    • Возможность восстановления до предыдущих версий кода.
  • Безопасность и доступ:
    • Настройки доступа и пользовательские роли обеспечивают контроль над тем, кто может просматривать и изменять код.
    • Аутентификация и авторизация через сторонние сервисы (LDAP, OAuth и др.).
  • Интеграция с CI/CD:
    • Встроенные функции непрерывной интеграции и доставки (CI/CD) позволяют автоматизировать процесс компиляции и тестирования кода.

2. Хранение объектного кода программного обеспечения

2.1 Docker Registry: Yandex Registry

Для хранения и управления объектным кодом, включая сборку Docker-образов, используется Yandex Registry.

Основные функции и возможности Yandex Registry:

  • Безопасное хранение:
    • Надежное и защищенное хранение сборок и артефактов.
    • Шифрование данных на диске и при передаче.
  • Версионность:
    • Поддержка тегирования и версионности образов, что позволяет легко управлять различными версиями сборок.
    • Возможность отката к любой предыдущей версии образа.
  • Интеграция с GitLab:
    • Автоматическая отправка образов в Yandex Registry после успешного прохождения пайплайнов в CI/CD.
    • Вебхуки и уведомления о новых сборках.

3. Средства компиляции исходного текста

3.1 Система непрерывной интеграции и доставки (CI/CD): GitLab CI

Для автоматической компиляции исходного текста в объектный код используется GitLab CI.

Основные функции и возможности GitLab CI:

  • Пайплайны сборки и тестирования:
    • Настраиваемые пайплайны для автоматической компиляции кода, выполнения тестов и сборки Docker-образов.
    • Распараллеливание задач для ускорения выполнения пайплайнов.
  • Автоматизация:
    • Полная автоматизация процессов компиляции, тестирования и сборки, что минимизирует человеческие ошибки.
    • Использование конфигурационных файлов .gitlab-ci.yml для определения стадий и задач пайплайнов.
  • Интеграция с Docker и Yandex Registry:
    • Поддержка создания и загрузки Docker-образов напрямую из пайплайнов.
    • Возможность автоматической публикации сборок в Yandex Registry.
  • Масштабируемость и гибкость:
    • Возможность использования различных раннеров для выполнения пайплайнов на различных платформах и в различных окружениях.
    • Настройки условий выполнения задач в зависимости от веток, тегов и событий.

Пример цикла компиляции и разработки

  1. Управление исходным кодом в GitLab:
    • Разработчики создают и изменяют исходный код, фиксируя изменения в репозиториях GitLab.
    • Ветки создаются для новых функций и исправлений ошибок, а затем сливаются в основную ветку (main) через merge request.
  2. Инициация пайплайна в GitLab CI:
    • Каждый коммит в ветку main инициирует запуск пайплайна в GitLab CI для компиляции и тестирования.
    • Пайплайн состоит из различных стадий, включая сборку, тестирование и создание Docker-образа.
  3. Сборка и тестирование:
    • Код компилируется, запускаются автоматические юнит-тесты и интеграционные тесты.
    • В случае успешного прохождения всех тестов, создается Docker-образ.
  4. Загрузка в Yandex Registry:
    • Готовый Docker-образ автоматически загружается в Yandex Registry с соответствующими метками и версиями.
    • Система отправляет уведомления о новых сборках и метках через вебхуки.
Сообщение отправлено.
Наш менеджер свяжется с вами в самое ближайшее время.
Что-то пошло не так.