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

325 views

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
325
On SlideShare
0
From Embeds
0
Number of Embeds
28
Actions
Shares
0
Downloads
10
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

×