Стабильность проекта в условиях непрерывной интеграции Организация работ на долгосрочных проектах Денис Митрофанов Генеральный директор QSOFT +7 (495)

Презентация:



Advertisements
Похожие презентации
Нагрузочное тестирование Применение при разработке высоконагруженных веб- проектов Михаил Токовинин, генеральный директор компании QSOFT +7 (495)
Advertisements

СОВРЕМЕННОЕ СОСТОЯНИЕ ЗАЩИТЫ ПРАВ ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ В СЕТИ «ИНТЕРНЕТ» Заместитель генерального директора ЗАО «ИВК» С. Бочков Заместитель генерального.
Copyright © 2006 Actis Systems ® Все права защищены Дополнительную информацию можно получить на сайте: 1 Построение системы в полном соответствии.
Корпоративный портал на основе коробочного решения На примере QSOFT: Корпоративный портал Михаил Токовинин, генеральный директор компании QSOFT +7 (495)
Защита баз данных. Повестка дня Реалии сегодняшнего дня … Источники атак Уязвимости СУБД Что делать ? Кто поможет ? DbProtect – новое предлагаемое решение.
О компанииУслугиМиссияНаши клиентыКонтакты К о м п а н и я « Т р и Л а н » комплексный интернет-маркетинг Отдел по работе с клиентамиЭлектронная почта:
Артем Рябинков Руководитель отдела развития бизнеса 1С-Битрикс, к.т.н. Обновленные решения для создания сайтов 1С-Франчайзи.
Работающий корпоративный портал От теории к практике Михаил Токовинин, генеральный директор компании QSOFT +7 (495)
Смена web-платформы «на лету» Евгения Фирсова. Постановка задачи.
РАСПРОСТРАНЕННЫЕ ОШИБКИ В ИДЕОЛОГИИ, ПЛАНИРОВАНИИ И ПРОВЕДЕНИИ ТЕСТИРОВАНИЯ 2.
Внедрение Когда разрабатываемая система обладает начальной функциональностью, проект переходит на фазу внедрения. Менеджер проекта полагает, что система.
Модель команды определение ролей продолжение Microsoft Solution Framework.
Стоимость владения Интернет-магазином тел.: +7 (812)
Как не наступить на любимые грабли. Короткий путь к успеху при разработке интернет-магазина Виталий Денисенков Студия Борового, директор
Александр Федоров software-testing.ru. Что нас ждет Особенности тест-дизайн при итерационной разработке Польза и спорная эффективность автоматизации тестирования.
Тестирование веб-проектов в Agile Асхат Уразбаев, ScrumTrek.
Волгоградский Государственный Технический Университет Менеджер проекта: Мамонтов Д.П. Архитектор :Сухарев К.А. Тестировщик: Гончарова И.В.
Аргус-М – Тесты с ответами для школ и ВУЗов Аргус-М - это быстрая и удобная подготовка к сессии, ЕГЭ, экзамену на сертификат, приему на работу. Преподавателям.
SQL 2012 И ГИБКИЕ МЕТОДЫ КОМАНДНОЙ РАЗРАБОТКИ C TFS Добро пожаловать в команду! Alexander Yakovlev
Программное обеспечение как услуга (SaaS) Подготовлено для сайта SaaSCatalog.ru.
Транксрипт:

Стабильность проекта в условиях непрерывной интеграции Организация работ на долгосрочных проектах Денис Митрофанов Генеральный директор QSOFT +7 (495)

Основные причины падений Сбой на уровне «железа» Сбой на уровне канала (хостинга) Сбой на уровне ПО (ОС, БД, web-сервер) Сбой на уровне Продукта Сбой от высокой неплановой нагрузки Сбой в результате обновления Продукта

Обновления – естественное состояние развивающегося проекта Мы знаем точно только состав одной версии Требования изменяются в результате опыта эксплуатации и изменений на рынке Нужно поддерживать работающую версию Нужно учитывать функционал и данные работающей версии при обновлениях

Почему нельзя сразу сделать все Нельзя спланировать и спроектировать на 5 лет вперед (3 года назад не было iPad) Изменения требований ко 2-й версии после запуска 1-й «Парадокс проектирования» (цена растет нелинейно от объема + точность)

Плохой код – тоже причина падений По мере развития проект превращается в «ласкутного монстра» Никто не знает как он работает и почему Доработка нового функционала требует нечеловеческих усилий Проект «ложиться» под нагрузками

Замкнутый круг Сайты чаще всего падают из-за обновлений Обновления неотъемлемая часть развития Развитие (изменения, переделки) порождает плохой код Чем хуже код, тем выше вероятность сбоя при обновлении

Как обеспечить стабильность растущего проекта? 1)Процессы отгрузок 2)Качество кода

Разделение на Минорные и Мажорные итерации (3-6 мес.) Рефакторинг Нагрузочное тестирование Доработка архитектуры, документирование Проблема «продажи» рефакторинга: нет видимого результата (важно чтобы у заказчика был технический специалист) + видимые метрики

Разделение производства и Поддержки. Культура отгрузок Разделение Производства и поддержки. Минорных и мажорных итераций Разные цели (KPI) и парадигмы Производства и Поддержки Отгрузки через отдел Поддержки

Не уверен – не отгружай! Независимый аудит кода перед отгрузкой Сфокусированная ответственность за отгрузку Регулярный выборочный контроль кода со стороны эксперта (тех директора) Автотесты План-тесты и таблицы связанного функционала (работа отдела качества)

Dev Local host 2 Local host 1 Local host N Stage Боевой

Тренируйтесь на кошках Частичная отгрузка на боевой – в идеале если пользуетесь сами или часть лояльных пользователей Отгрузка для части боевых пользователей (на выделенный сервер) Полная идентичность финального тестового стенда и боевого (включая окружение) Тестирование на реальных данных Отгрузка одной кнопкой

DNS Балансировщик Node 1 Node 2 Node N Типовая схема

DNS Балансировщик Node 1 Node 2 Node N Stage Отключаем одну ноду и обновляем со Stage

DNS Балансировщик Node 1 Node 2 Node N Тестовый трафик Включаем ноду в тестовом режиме

DNS Балансировщик Node 1 Node 2 Node N Раздаем изменения с обновленной ноды

Надежность и быстродействие Откуда проблема: нельзя иметь 30-ти кратный запас по «железу» - все свободные ресурсы «отъест» плохой код Ограничения по железу при разработке Запуск нового для части трафика на отдельной ноде

Стабилизация команды. Сохранение культуры Люди устают, один проект надоедает, деньги не мотивируют Своевременная передача знаний и культуры, а не удержание любой ценой 5-ти человек 5 лет Команда 5-10 человек, 2 архитектора Стабильный поток объемов

Вопросы? Митрофанов Денис Спасибо за внимание!