Фабрика
разработки

История GitOps

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

C появлением Agile и DevOps ситуация значительно улучшилась:

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

Одним из самым ключевых открытий стало появление IaC (Infrastructure as Code).
IaC поощряет и продвигает декларативные инструменты системного администрирования вместо пользовательских императивных решений. Это привело к появлению таких технологий, как контейнеры Docker, Ansible, Terraform и Kubernetes, которые используют статические декларативные конфигурационные файлы. Удобочитаемые для человека конфигурации, на основе которые стало возможно приводить систему в необходимое состояние, стали основными достижениями DevOps. Конфигурационные файлы стали хранить в Git для их дальнейшего сопровождения и развития. Но это был еще не GitOps. Оставалась нерешенной задача переноса конфигурации из репозитория Git на работающую систему: приходилось руками «накатывать» скрипты с конфигурацией.
И именно с приходом GitOps удалось решить данную проблему.

Как работает GitOps

В основе GitOps чаще всего используется Kubernetes или альтернативные решения с использованием Terraform.
Для GitOps требуется конвейерная платформа (Pipelines):
- Jenkins;
- Bitbucket Pipelines или CircleCi;
Pipelines автоматизируют и сокращают разрыв между Git и системой оркестрации.
В GitOps появляется новый механизм - GitOps operator - который является посредником между Pipelines и системой оркестрации.
Когда в Git происходят изменения, запускается Pipeline. Завершение Pipeline является спусковым крючком для GitOps operator, который синхронизирует новое, полученное от Pipeline состояние с текущим состоянием системы, и приводит систему к новому состоянию.

Как работает GitOps

Главной задачей компании является предоставление качественных услуг в области автоматизации и новейших информационных технологий.
Одним из направлений решения этой задачи явилось внедрение в 2015 г. системы менеджмента качества (СМК).
Для обеспечения качества производственных процессов на всех этапах жизненного цикла разработки программных продуктов, мы используем следующие технологии:

На этапе
проектирования:
Confluence для ведения документации, включая ведение BPMN процессов и UML диаграмм.
На этапе
разработки:
Agile (SCRUM) для организации процесса разработки продуктов;
JIRA для управления задачами в проектах;
Git для контроля исходного кода;
Bitbucket для командного управления кодом;
Bamboo/Jenkins для автоматизации процесса сборки ПО
Bamboo/Jenkins для автоматизации процесса выпуска и поддержки версий продукта (Continuous Delivery).
На этапе
тестирования:
JIRA для управления функциональным и автоматизированным тестированием;
Sonar для автоматической проверки кода;
Mocito для написания автоматизированных тестов.
На этапе внедрения и сопровождения:
Terraform и Docker для автоматизации конфигурационного управления;
Bamboo/Jenkins для автоматизации процесса развертывания продукта на тестовых и промышленных стендах (Continuous Deployment).

В 2015 г. компанией получен Сертификат соответствия СМК требованиям ГОСТ ISO 9001-2011. Компания успешно прошла необходимые процедуры ежегодного инспекционного контроля и получила Решение о подтверждении действия сертификата.

В 2018 г. СМК была модифицирована в соответствии с новым ГОСТ ISO 9001-2015, получен новый Сертификат соответствия.

Импортозамещение

Системы управления БД
PostgreSQL
Ред База Данных
Линтер
Результат
Миграция схемы хранения данных
Миграция данных
Миграция хранимых процедур
Доработка ПО с учетом особенностей СУБД
Разработка пусковых решений, ПО настройки и обслуживания
Тестирование ПО во взаимодействии с новой СУБД
Операционные системы
Astra Linux Special Edition
ОС МСВСфера
ОС РОСА
ОС RedOS-7
ГосЛинукс
Альт Линукс СПТ 6.0
Альт Линукс 7.0 Кентавр
ОС Эльбрус
Результат
Определение средств разработки
Макетирование среды разработки и дистрибуции ПО
Портирование исходного кода ПО
Тестирование ПО в новой среде функционирования
Методология внедрения, ввода в действие, эксплуатации, обслуживания и сопровождения ПО
Наверх