Разработка
веб-сервисов

Беседа 9: Внедрение и эксплуатация продукта
План занятия
 Тестирование и инспекция кода
 Мониторинг рабочего проекта

 Сопровождение проекта
 Взаимодействие с отд...
Этапы создания продукта
Этапы:
1. Анализ предметной области и постановка задачи

2. Проектирование, уточнение ТЗ
3. Разраб...
Анализ продукта
Виды анализа

 Тестирование
 Инспекция кода

4
Анализ продукта
Цели тестирования

 Правильность реализации
 Правильность обработки внештатных ситуаций

 Минимизация п...
Анализ продукта
Цели тестирования

Правильность реализации
 Соответствие техническому заданию
 Корректность работы кода
...
Анализ продукта
Цели тестирования

Правильность обработки внештатных ситуаций
 Верить нельзя никому. Проверка входных дан...
Анализ продукта
Цели тестирования

Минимизация последствий
 Корректный откат изменений
 Быстрый откат изменений

8
Анализ продукта
Виды тестирования

 Тестирование модулей (юнит-тесты)
 Тестирование безопасности

 Функциональное тести...
Анализ продукта
Виды тестирования

 В тестовом окружении
 В боевом окружении на части аудитории

10
Анализ продукта
Тестовое окружение

 Данные: живые или синтетические?
 Ресурсы: общие серверы или виртуализация?

11
Анализ продукта
Тестовое окружение. Данные

 Когда нужны живые данные?
 Аналитика и отчетность
 Оптимизация работы

 К...
Анализ продукта
Тестовое окружение. Ресурсы

 Ограничения ресурсов
 Сколько вешать в граммах?

 Общие серверы
 Общая и...
Анализ продукта
Пре-релизное тестирование

 Синтетическая аудитория
 Отдельный сервер / домен / авторизация и настройки
...
Анализ продукта
Инструменты тестирования

 Тестирование модулей
 Тестирование безопасности

 Функциональное тестировани...
Анализ продукта
Инспекция кода. Цели

 Ошибки проектирования
 Следование стилю команды и архитектуре проекта

 Одна гол...
Анализ продукта
Инспекция кода. Недостатки

 Исправлять надо было раньше
 Инспекция + тестирование = перерасход времени
...
Анализ продукта
Отладка в бою

 Если нельзя, но очень хочется, то можно
 Помним
 Очень аккуратно — не допустить 50х оши...
Мониторинг продукта

Технический отдел
должен узнавать о проблемах

первым

19
Мониторинг продукта
Виды мониторинга

 По области применения
 Мониторинг ресурсов
 Мониторинг работы бизнес-логики

 П...
Мониторинг продукта
Организация мониторинга

 Несколько уровней оповещения
 Первая линия
 Экспертная линия

 Типы опов...
Мониторинг продукта
Организация мониторинга

22
Мониторинг продукта
Журналы событий

 Логи лишними не бывают
 Журналируем:
Тайминги
Входные данные (формы, SOAP, XML итп...
Мониторинг продукта
Журналы событий. В каком виде

 Время
 Общий формат данных

 Реестр кодов ошибок
 Местоположение (...
Мониторинг продукта
Журналы событий. Как изучаем

 grep
 Плюсы: это универсально, это мощно
 Минусы: ресурсоемко (повто...
Сопровождение проекта
Сопровождение и документация

Что?
 Документирование кода
 Документирование процессов
Где?
 Код. ...
Сопровождение проекта
Сопровождение и документация. Аспекты

По назначению





Для
Для
Для
Для

всей компании
всего п...
Сопровождение проекта
Объекты документирования

 Техническая часть – правила разработки
 Организационная часть – описани...
Сопровождение проекта
Правила разработки

 Правила кодирования (регламенты, стиль итп)
 Работа с системами контроля верс...
Сопровождение проекта
Описание процессов

 Правила работы в отделе
 How-To и FAQ

 Описание рабочего процесса
 Докумен...
Сопровождение проекта
Описание процессов

 Правила работы в отделе
 Рабочий график: расписание, общие совещания
 Отпуск...
Сопровождение проекта
Описание процессов

 Описание рабочего процесса
 Устройство итераций
 Расписание раскладки
 Опис...
Эксплуатация и поддержка
Взаимодействие с эксплуатацией и поддержкой

Задачи эксплуатации
 Конфигурация системы и монитор...
Эксплуатация и поддержка
Эксплуатация. Раскладка изменений

Принципы:
 Расписание раскладки
 Действия для проведения рас...
Эксплуатация и поддержка
Эксплуатация. Раскладка изменений

Цель автоматизации:
Освободить ресурсы для иных задач

35
Эксплуатация и поддержка
Эксплуатация. Этапы эволюции раскладки

 Пишем на живом
 Репозиторий на каждом сервере

 Репоз...
Эксплуатация и поддержка
Эксплуатация. Типы раскладки

 Инкрементальная раскладка
 Назначение: папки с существующим кодо...
Эксплуатация и поддержка
Внештатные ситуации

Инцидент

—

отклонение от режима
технологического процесса

38
Эксплуатация и поддержка
Внештатные ситуации

 Классификация инцидентов
 Регламент поведения и оповещения

39
Эксплуатация и поддержка
Внештатные ситуации. Инциденты

 Что затрагивает?
 Сервер
 Сервис или его часть (регистрации, ...
Эксплуатация и поддержка
Внештатные ситуации. Последствия инцидента

 Почему произошел инцидент
 Что было предпринято дл...
Эксплуатация и поддержка
Внештатные ситуации. Последствия инцидента

42
Эксплуатация и поддержка
Внештатные ситуации. Последствия инцидента

43
Эксплуатация и поддержка
Внештатные ситуации. Регламенты

 Оповещение и консультации
 Внутренние службы
 Внешние партне...
Резюме
 Проверяйте код. Теперь любые ошибки – очень
дорого

 Старайтесь узнать первыми о проблеме. Не от
пользователей и...
Вопросы?
Максим Бабич
tpark@maxbabich.ru
+7 916 9415275
Upcoming SlideShare
Loading in...5
×

Разработка веб-сервисов осень 2013 лекция 9

120

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
120
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Разработка веб-сервисов осень 2013 лекция 9

  1. 1. Разработка веб-сервисов Беседа 9: Внедрение и эксплуатация продукта
  2. 2. План занятия  Тестирование и инспекция кода  Мониторинг рабочего проекта  Сопровождение проекта  Взаимодействие с отделами эксплуатации и поддержки 2
  3. 3. Этапы создания продукта Этапы: 1. Анализ предметной области и постановка задачи 2. Проектирование, уточнение ТЗ 3. Разработка 4. Анализ разработанного продукта (ревью, тесты) 5. Ввод в эксплуатацию 3
  4. 4. Анализ продукта Виды анализа  Тестирование  Инспекция кода 4
  5. 5. Анализ продукта Цели тестирования  Правильность реализации  Правильность обработки внештатных ситуаций  Минимизация последствий 5
  6. 6. Анализ продукта Цели тестирования Правильность реализации  Соответствие техническому заданию  Корректность работы кода  Безопасность  Ресурсоемкость 6
  7. 7. Анализ продукта Цели тестирования Правильность обработки внештатных ситуаций  Верить нельзя никому. Проверка входных данных  Поведение в случае проблем 7
  8. 8. Анализ продукта Цели тестирования Минимизация последствий  Корректный откат изменений  Быстрый откат изменений 8
  9. 9. Анализ продукта Виды тестирования  Тестирование модулей (юнит-тесты)  Тестирование безопасности  Функциональное тестирование  Интеграционное тестирование  Нагрузочное тестирование 9
  10. 10. Анализ продукта Виды тестирования  В тестовом окружении  В боевом окружении на части аудитории 10
  11. 11. Анализ продукта Тестовое окружение  Данные: живые или синтетические?  Ресурсы: общие серверы или виртуализация? 11
  12. 12. Анализ продукта Тестовое окружение. Данные  Когда нужны живые данные?  Аналитика и отчетность  Оптимизация работы  Когда нужны синтетические данные?  Помощь в подготовки развертывания  Ограничения внешнего мира  Все остальные случаи 12
  13. 13. Анализ продукта Тестовое окружение. Ресурсы  Ограничения ресурсов  Сколько вешать в граммах?  Общие серверы  Общая инфраструктура, проще проверять интеграцию  Оптимизация работы эксплуатации  Виртуализация  Максимальное приближение к боевому окружению  Помним про общие ресурсы 13
  14. 14. Анализ продукта Пре-релизное тестирование  Синтетическая аудитория  Отдельный сервер / домен / авторизация и настройки  Реальная аудитория (часть)  Железная балансировка (nginx, upstream etc)  Программная балансировка 14
  15. 15. Анализ продукта Инструменты тестирования  Тестирование модулей  Тестирование безопасности  Функциональное тестирование  Интеграционное тестирование  Нагрузочное тестирование 15
  16. 16. Анализ продукта Инспекция кода. Цели  Ошибки проектирования  Следование стилю команды и архитектуре проекта  Одна голова хорошо, а две…  Дополнительное тестирование 16
  17. 17. Анализ продукта Инспекция кода. Недостатки  Исправлять надо было раньше  Инспекция + тестирование = перерасход времени Очень дорогого времени  Демотивация программистов  Срыв сроков запуска Вывод: тестировщики всё равно нужны 17
  18. 18. Анализ продукта Отладка в бою  Если нельзя, но очень хочется, то можно  Помним  Очень аккуратно — не допустить 50х ошибок  Болтун – находка. Отладочная информация – подарок  Упрощаем процесс  Тестовые скрипты  Не забываем убирать за собой 18
  19. 19. Мониторинг продукта Технический отдел должен узнавать о проблемах первым 19
  20. 20. Мониторинг продукта Виды мониторинга  По области применения  Мониторинг ресурсов  Мониторинг работы бизнес-логики  По типам реакции  Алерты  Статистика: отчеты и графики 20
  21. 21. Мониторинг продукта Организация мониторинга  Несколько уровней оповещения  Первая линия  Экспертная линия  Типы оповещений  Система мониторинга  Уведомления: смс, почта, экзотика (push, мессенджер, таски) 21
  22. 22. Мониторинг продукта Организация мониторинга 22
  23. 23. Мониторинг продукта Журналы событий  Логи лишними не бывают  Журналируем: Тайминги Входные данные (формы, SOAP, XML итп) Выходные данные (ключевые) Ошибки работы системных компонентов (шаблонизаторы, база данных)  Ошибки бизнес-логики     23
  24. 24. Мониторинг продукта Журналы событий. В каком виде  Время  Общий формат данных  Реестр кодов ошибок  Местоположение (какой сервер, какой класс)  Данные пользователя. Или окружения 24
  25. 25. Мониторинг продукта Журналы событий. Как изучаем  grep  Плюсы: это универсально, это мощно  Минусы: ресурсоемко (повторяемость, ожидание)  Инструменты  Пишем сами  Берем готовые 25
  26. 26. Сопровождение проекта Сопровождение и документация Что?  Документирование кода  Документирование процессов Где?  Код. Код. Код.  Базы знаний 26
  27. 27. Сопровождение проекта Сопровождение и документация. Аспекты По назначению     Для Для Для Для всей компании всего проекта менеджеров (продукт, суппорт, коммерция) технических специалистов По доступу  Встроенные средства  Вынос в отдельную базу знаний 27
  28. 28. Сопровождение проекта Объекты документирования  Техническая часть – правила разработки  Организационная часть – описание процессов 28
  29. 29. Сопровождение проекта Правила разработки  Правила кодирования (регламенты, стиль итп)  Работа с системами контроля версий  жизненный цикл (work-flow)  именования веток и коммитов  Списки поддерживаемых протоколов  Схемы (проект, архитектура, компоненты, сценарии)  Ключевые моменты 29
  30. 30. Сопровождение проекта Описание процессов  Правила работы в отделе  How-To и FAQ  Описание рабочего процесса  Документирование событий 30
  31. 31. Сопровождение проекта Описание процессов  Правила работы в отделе  Рабочий график: расписание, общие совещания  Отпуски, отгулы, больничные  How-To и FAQ  Куда бежать в случае проблем  Для разработчиков: внутренние инструменты, быстрые ссылки  Для менеджеров: как настроить, как поставить задачу 31
  32. 32. Сопровождение проекта Описание процессов  Описание рабочего процесса  Устройство итераций  Расписание раскладки  Описание всех процессов  Документирование событий  Документация для технического отдела: описание кода, принципов работы  Запущенные фичи 32
  33. 33. Эксплуатация и поддержка Взаимодействие с эксплуатацией и поддержкой Задачи эксплуатации  Конфигурация системы и мониторинг ресурсов  Раскладка изменений в боевую среду Задачи поддержки  Решение части вопросов по сопровождению  Помощь с последствиями изменений (и хороших, и плохих) 33
  34. 34. Эксплуатация и поддержка Эксплуатация. Раскладка изменений Принципы:  Расписание раскладки  Действия для проведения раскладки  Действия для отката изменений 34
  35. 35. Эксплуатация и поддержка Эксплуатация. Раскладка изменений Цель автоматизации: Освободить ресурсы для иных задач 35
  36. 36. Эксплуатация и поддержка Эксплуатация. Этапы эволюции раскладки  Пишем на живом  Репозиторий на каждом сервере  Репозиторий на сервере раскладки + синхронизация  Сборка пакетов  Менеджеры раскладки 36
  37. 37. Эксплуатация и поддержка Эксплуатация. Типы раскладки  Инкрементальная раскладка  Назначение: папки с существующим кодом  Полная раскладка  Назначение: отдельные папки + симлинк на рабочую ветку 37
  38. 38. Эксплуатация и поддержка Внештатные ситуации Инцидент — отклонение от режима технологического процесса 38
  39. 39. Эксплуатация и поддержка Внештатные ситуации  Классификация инцидентов  Регламент поведения и оповещения 39
  40. 40. Эксплуатация и поддержка Внештатные ситуации. Инциденты  Что затрагивает?  Сервер  Сервис или его часть (регистрации, канал платежа и.т.п)  Статус (открытый, закрытый)  Время на исправление ситуации  Что отвечать пользователям 40
  41. 41. Эксплуатация и поддержка Внештатные ситуации. Последствия инцидента  Почему произошел инцидент  Что было предпринято для решения  Хронология событий  Учет времени на решение 41
  42. 42. Эксплуатация и поддержка Внештатные ситуации. Последствия инцидента 42
  43. 43. Эксплуатация и поддержка Внештатные ситуации. Последствия инцидента 43
  44. 44. Эксплуатация и поддержка Внештатные ситуации. Регламенты  Оповещение и консультации  Внутренние службы  Внешние партнеры  Контакты оповещений  Для технического персонала  Для персонала службы поддержки 44
  45. 45. Резюме  Проверяйте код. Теперь любые ошибки – очень дорого  Старайтесь узнать первыми о проблеме. Не от пользователей и, тем более, не от менеджеров  Документация еще никому не мешала  Помогайте другим отделам, которые работают для вас и принимают на себя последствия 45
  46. 46. Вопросы? Максим Бабич tpark@maxbabich.ru +7 916 9415275
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×