"Темная" сторона луны
или процесс поставки софта клиентам

Давайте знакомиться!









Рассмотрим вопросы:
- управления материальными ресурсами проекта
- разработка проекта через DevOps


Что общего в проектах?
- SaaS
(англ. software as a service — программное обеспечение как услуга; также англ. software on demand — программное обеспечение по требованию) — одна из форм облачных вычислений, модель обслуживания, при которой подписчикам предоставляется готовое прикладное программное обеспечение, полностью обслуживаемое провайдером.
- SLA
договор между ИТ-подразделением и клиентом, определяющий существенные условия обслуживания клиента.
В чем различие проектов?
- Тип приложения
Windows application, Web service, Web application
- Release pipline
Цепочка действий по поставке приложения клиенту

Характеристики сервера:
- процессор
- оперативная память
- дисковая подсистема
- сеть
1. Производительность
2. Управляемость
3. Масштабируемость
- мониториг
- диагностика
- управление питанием
- пр.
От чего зависит насколько производительный сервер нам нужен?
Отказоустойчивость

Тестовый стенд

Продуктовый стенд





Дата центр 1
Дата центр 2

Масштабирование системы

Зачем нужен мониторинг?
В ходе мониторинга о наблюдаемом объекте собирают сведения, по которым можно своевременно узнать о возникновении проблемы и, соответственно, незамедлительно начать принимать меры по её устранению.

Виды мониторинга:
-
внутренний
-
внешний
Внутренний мониторинг


Мониторинг приложений

Бизнес метрики


Внешний мониторинг

Как наблюдать?
Переодичность
Место наблюдения
Протоколирование
Автоматизация




Alerting

Доставка кода на сервер



- Берем задачу из списка/Получаем от начальства
- Создаем новую ветку в git и открываем пул реквест
- Пишем код
- Лично или с помощью коллеги выполняем код-ревью (code review — обзор/проверку кода)
- Запускаем тесты
- Сливаем ветку в мастер
- Выполняем сборку проекта
- Публикуем новую сборку
Ручной режим


git — распределённая система управления версиями
Continuous integration (непрерывная интеграция)
Continuous Integration (CI) — это практика разработки программного обеспечения, в которой члены команды проводят интеграцию не реже чем раз в день. Результаты интеграции проверяются автоматически, используя автотесты и статический анализ кода.
Преимущества CI:
- сокращение числа багов в продакшн, благодаря их раннему выявлению автоматическими тестами;
- простота выпуска обновлений (по нажатию кнопки);
- повышение эффективности разработчиков, т.к. у них есть возможность исправлять ошибки до переключения на следующую задачу
- сокращение издержек на ручное тестирование
Continuous delivery (непрерывная доставка)
Continuous delivery (CD) — это серия практик, направленных на то, чтобы обновления программного обеспечения происходили практически постоянно. Данные методы гарантируют быстрое развёртывание на продакшене не меняя существующий функционал
Преимущества CD:
- снижение сложности развертывания ПО. Команда не тратит время на подготовку релиза;
- позволяет проводить частые релизы;
- позволяет получить быстрый отклик заказчика и внести необходимые изменения.
- Быстрое реагирование на потребности рынка;
Continuous deployment (непрерывное развёртываение)
Continuous deployment (CD) - отвечает за то, чтобы весь новый функционал после тестирования сразу же попал в основную программу без ручного вмешательства
Преимущества CD:
- CD позволяет:
- ускорить цикл обратной связи с вашими клиентами;
- отказаться от понятия Release Day;
- практически мгновенно увидеть изменения продукта
Release pipline
Deployment pipeline
DevOps
DevOps (акроним от англ. development и operations) — набор практик, нацеленных на активное взаимодействие специалистов по разработке со специалистами по информационно-технологическому обслуживанию и взаимную интеграцию их рабочих процессов друг в друга. Базируется на идее о тесной взаимозависимости разработки и эксплуатации программного обеспечения и нацелен на то, чтобы помогать организациям быстрее создавать и обновлять программные продукты и услуги.
Принципы DevOps от DASA
-
Деятельность должна быть ориентирована на заказчика («Customer-Centric Action»).
-
Ориентация на конечный результат («Create with the End in Mind»)
-
Ответственность от начала до конца («End-To-End Responsibility»)
-
Кросс-функциональные автономные команды («Cross-Functional Autonomous Teams)
-
Постоянное совершенствование («Continuous Improvement)
-
Автоматизируйте всё, что можете («Automate Everything You Can»)
https://realitsm.ru/2018/04/dasa-devops-principles/
DASA (DevOps Agile Skills Association) - сообщества по развитию компетенций DevOps и Agile
DevOps — это культура, направление, философия.
DevOps - это не человек.
Микросервисная архитектура — это подход к созданию приложения, подразумевающий отказ от единой, монолитной структуры.
Использование ресурсов микросервисами

Плюсы и минусы микросервисов
Положительные стороны
- Четкое деление по модулям.
- Высокая доступность.
- Разнообразные технологии.
- Относительная простота развертывания.
- Независимая масштабируемость
- Возможность повторного использования
Недостатки
- Сложность разработки.
- Сложность поддержки.
Спасибо за внимание!
Источники:
-
https://www.administrator-pro.ru/articles/servery.html
-
https://1cloud.ru/blog/zachem-nujen-monitoring
-
https://www.atlassian.com/continuous-delivery/ci-vs-ci-vs-cd
-
https://realitsm.ru/2018/04/dasa-devops-principles/
-
https://ru.atlassian.com/devops
-
https://habr.com/post/249183/
-
https://www.wikipedia.org/
-
и пр.
deck
By ovsienko
deck
- 241




