1.53M
Category: programmingprogramming

DevOps

1.

DEVOPS

2.

Что такое DevOps
• Термин DevOps — это комбинация слов
«разработка» (dev elopment) и «эксплуатация» (op
eration s), которая отражает процесс интеграции
этих дисциплин в единый непрерывный процесс.
Разработчики и тестировщики отвечают за
Development, а администраторы — за Operations.

3.

Зачем нужен DevOps?
• Раньше между разработчиками и поддержкой (т. н. operations)
существовал барьер. Звучит парадоксально, но у них были разные
цели и KPI, хотя они и делали общее дело. Целью разработки было как
можно быстрее реализовать бизнес-требования и добавить их в
работающий продукт. Поддержка отвечала за то, чтобы приложение
стабильно работало – а любые изменения ставят стабильность под
угрозу. Налицо конфликт интересов – DevOps появился, чтобы его
решить.

4.

5.

Какие DevOps-практики реализованы
нами:
DevOps-практики покрывают все этапы жизненного цикла
ПО.
1.
Инфраструктура как код.
2.
CI/CD
3.
Logs
4.
Мониторинг

6.

Инфраструктура как код
• Так называют подход, при котором инфраструктура проекта создается и
управляется при помощи кода, а не через прямое взаимодействие с
серверами. Это про микросервесную архитектуру Docker and kubernetes.
• Микросервисная архитектура — это подход к созданию приложения,
подразумевающий отказ от единой, монолитной структуры. То есть вместо
того чтобы исполнять все ограниченные контексты приложения на сервере с
помощью внутрипроцессных взаимодействий, мы используем несколько
небольших приложений, каждое из которых соответствует какому-то
ограниченному контексту.
• Повышается отказоустойчивость, облегчается процесс доработки кода.

7.

Где, как и для чего, мы используем
микросервесную архитектуру?
• У нас так реализован весь наш мониторинг. Все авто-тесты, Grafana её БД
PostgreSQL, БД мониторинга Influx и репозиторий docker Nexus. Все это в
docker и оркеструется k8s.
Представьте, что все тесты(105 шт.) запущены на одном мощном Windows
server. И допустим в одном тесте была допущена ошибка, которая повлекла
утечку ОП и сервер завис. Таким образом мы теряем весь мониторинг из за
одного авто теста, что неприемлемо, так как мониторинг должен работать
24х7.
Сейчас у нас каждый авто тест находиться в Docker(маленький
виртуальный сервер) Теперь если один авто тест сломается это не
приведет к сбою всей системы. Даже если Docker упадет из
неправильной работы скрипта, то k8s его сам перезапустит.

8.

Где, как и для чего, мы используем
микросервесную архитектуру?
• Мы начали переезд сервисов написанных нашими разработчиками в УКС.
Список сервисов:
сервис дегустации: прод и тест.
https://degus.dixy.ru/
https://degus-test.dixy.ru/
• Cервис Прайс мониторинг: прод(фронт и бэк) и тест (фронт и бэк)
https://price-monitoring.dixy.ru и https://price-monitoring-test.dixy.ru
https://price-monitoring-back.dixy.ru и https://price-monitoring-back-test.dixy.ru
• Сервис Каталог менеджер, перенесли пока только прод и тест (фронт).
https://catalog-manager.dixy.ru и https://catalog-manager-test.dixy.ru
Повысили отказоустойчивость, облегчили поддержку и
администрирование данных сервисов.

9.

CI/CD – что это?
• CI — Continuous Integration, CD — Continuous Delivery, непрерывная
интеграция и непрерывная поставка.
• Фактически под этим подразумевают цепочку действий, которая позволяет
разработчикам увеличить скорость внедрения изменений, сохраняя или
даже повышая качество кода, а с ним сервиса или приложения.

10.

Как зарабатывает на этом процессе
бизнес?
• Идея, Фича(бизнес-требования) от бизнеса попадает в продакшен вовремя
(раскрыть тему …)
• Данный процесс экономит время разработчика, тестировщика и админа, а
это деньги.
• Так как данный процесс повышает качество кода, то сервис работает лучше,
что делает пользователей более лояльными и отсюда прирост прибыли.
• При необходимости более легкий откат. Если возникает проблема,
требующая возврата платформы в предыдущую версию, от вас потребуется
меньше усилий для выполнения отката.

11.

Мы в развернули и внедрили
корпоративный GitLab
• GitLab, используется с Git, что позволяет разработчикам сохранять
написанный код в онлайн-формате и работать с другими разработчиками над
разными проектами. GitLab позволяет взаимодействовать с репозиториями,
управлять правами доступа и пользователями, отслеживать ошибки,
автоматизировать процессы и выполнять многие другие операции.
• Зайти в GitLab вы можете по ссылки: https://git.dixy.local/ вход доменный.
По умолчанию вы можете создать только один репозиторий, регламент по
работе с GitLab в разработке.
• Есть инструкция с картинками по работе с SSH ключами для авторизации
своего рабочего ПК с Gitlab.

12.

Где мы уже внедрили CI/CD ?
• Главный сайт Дикси - https://dixy.ru/
• Мобильное приложение Dixy.Staff (сделано на 50%)
• Сервис Bitrix - https://portal.dixy.ru/
• Сервси Дегустация - https://degus.dixy.ru/ и и https://degus-test.dixy.ru/
• Cервис Прайс мониторинг - https://price-monitoring.dixy.ru и
https://price-monitoring-back.dixy.ru
• Для системы amis(Мониторинг) сделано для четырех авто тестов:
Axxapta-av, Bitrix-av, Dostavka-synth и Dostavka-synth-total
• Показать по факту как это работает на примере amis.

13.

Улучшение процесса работы с логами
• Экономия места на СХД во много раз
• Удобство работы с логами
• Централизованная система по работе с логами.

14.

Преимущества LOki
• - loki это opensource-продукт;
• - компоненты Loki потребляют ощутимо меньше ресурсов при тех же
нагрузках;
• - все компоненты могут быть запущены в кластере Kubernetes
• - данные занимают в несколько раз меньше места, так как хранятся в сжатом
виде;
• - построение запросов очень схоже с языком PromQL;
• - описание алертов аналогично алертам в Prometheus;
• -система отлично интегрирована с Grafana для визуализации сообщений и
построения графиков.

15.

16.

Планы на развитие на 2023 год
• Сделать CI/CD для всех сервисов УКС
• Переехать всеми нужными сервисами УКС на Микросервисную архитектура
• Прикрутить систему логирования для всех сервисов УКС.
English     Русский Rules