"Темная" сторона луны

или процесс поставки софта клиентам

 

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

Рассмотрим вопросы:

  • управления материальными ресурсами проекта
  • разработка проекта через 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