SlideShare una empresa de Scribd logo
1 de 43
Тестирование высоконагруженных
облачных веб-сервисов в Amazon -
подводные камни и надводные скалы
Александр Сербул
руководитель направления
контроля качества интеграции и внедрений
«1С-Битрикс»
Глубокий вдох…
Elastic Load Balancing
Web 1
Elastic Load Balancing
Dynamic
HTTPS
*.com/*.de
Web N
…
CloudWatch
+
AutoScaling
Web 1 Web 2 Web N
…
CloudWatch
+
AutoScaling
Архитектура Битрикс24
S3
management,
monitoring,
backup
Static
HTTPS
*.com/*.de
CDN (Amazon CloudFront)
js, css
Dynamic
HTTPS
*.ru
Static
HTTPS
*.ru
CDN (CDNvideo)
js, css
images(clients)
images(clients)
local
cache
(APC)
local
cache
(APC)
local
cache
(APC)
local
cache
(APC)
local
cache
(APC)
control cache: memcached
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
master-master replication
master-master replication
master-master replication
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
control cache: memcached
control cache: memcached
control cache: memcached
control cache: memcached
control cache: memcached
Web 2
local
cache
(APC)
Битрикс24…
450 000+ компаний зарегистрировано
70 000+ активных компаний
60+ активных пользователей в компании
99,99% доступность сервиса за 2015 г.
47,5 миллионов сообщений в ленте
4 миллиона звонков совершено
42 тысячи звонков в среднем в день
«Скорость сайта» (54485+ сайтов, 1000+ запр./сек)
Бэкап в облако (25000+ сайтов, 42 ТБ)
Мониторинг сайтов из двух датацентров
CDN и оптимизация ресурсов (27000+ сайтов, 5 ТБ в день)
«Обратный» CDN – для динамики
Bigdata, рекомендации (220+ млн. активных пользователей)
Push-уведомления
Мгновенные сообщения (NodeJS, redis)
WebRTC - звонки
и другие
Облачные сервисы
Прототип на доске
Инфраструктура в Амазоне
Отказоустойчивость, автоматизация
MySQL мастер-мастер репликация
Композитный кэш
«Параноидальный» мониторинг
PHP на высоких нагрузках
Bigdata, математика, машинное обучение,
java, Spark, Hadoop, Mahout
Технологические «вкусности»…
Глубокий выдох…
Системы изнутри - анализ
Левое и правое полушарие мозга
Формализация эмоций
Коммуникации с клиентом
Страх и отвага, организация команды разработки
Эксперты в предметной области
Роль аналитика
Интуиция, туман и ответственность
Системы изнутри -
проектирование
Опыт, инструменты, люди
Клиент, квалификация и согласование
Предвидение вектора развития системы
Детализация
Оценка рисков, прототипы
Системы изнутри –
управление проектом
Сроки, риски, теория вероятностей
«Сделай то, никто не знает что, уже вчера»
Управление - Пирамида
Управление - Круг
Управление - Пирамида с кругами 
Суровость, справедливость, профессионализм
Системы изнутри –
разработчики
Опыт и квалификация
Опыт и квалификация
Опыт и квалификация
«Поиграться/поучиться и …свалить»
Ответственность, храбрость, прозрачность
Коммуникации
Системы изнутри –
тестировщики
А что покликать? Тест-кейсы?
Покликать много
Покликать роботом
Автоматизация тестирования
Как найти настоящего тестировщика?
Идеальный процесс
тестирования
ФТ!
ТЗ!!
Модульные тесты
Тестирование модульных тестов
Тестирование тестов модульных тестов
Функциональное тестирование, тест-кейсы
Приемочное тестирование …
Идеальный процесс
тестирования
Интеграционное тестирование
Тестирование верстки
Тестирование контента
Нагрузочное тестирование
Тестирование настройки сред выполнения
Тестирование собственной адекватности 
А теперь давайте тут подправим логику и все
сначала.
Вавилонская башня
Краб, НЛО и подводная лодка…
Требования, блин, меняются
Идеальный процесс – не панацея
Ресурсы – ограничены!
Много кода – проблема!
Много людей – проблема!
Сложность системы – проблема!
Собственный мозг – проблема! 
Жизнь устроена иначе…
Баги – наше всё!
Предпочитаем сосредотачиваться на
позитивном
Здравый смысл
Глубокий анализ и управление сложностью
Математика, анализ, модели
«Усложнение и размножение сущностей – первый враг
качества».
Философия качества
Баги – наше всё!
Баги – наше всё!
Баги – наше всё!
Багтрекеры, мантисы, …
Юнит-тесты, *-тесты …
Альфа, бета, гамма … «омега»-тестирование
Метрики
Ура, нашли последний баг
Agile и … другие заблуждения человечества
Мы это с вами хорошо
знаем
«Хорошо тестируемый» код, mocks
Инварианты, предикаты, исключения,
asserts? ООП его за ногу
Тестирование unit-тестов unit-тестов
Поддержка unit-тестов
Тестов больше чем кода
Дорого!!!
Это мы тоже знаем: unit-
tests
Среда разработки
«Идеальная» схема
Среда тестирования
Эксплуатация
Amazon SQS
PHP-воркеры
Шлюз к APNS, Google Cloud Messaging
Собственный протокол
Как протестировать, что сообщение дошло до клиента?
Push-уведомления
Long polling
Web sockets
Сторонний модуль для nginx
Отладка сторонних модулей для nginx ;-)
Свое решение на NodeJS/Redis
Как протестировать работу WebSockets на 10 открытых
вкладках за глючным файерволом?
Мгновенные сообщения
WebRTC – технология
STUN
TURN
Сигналинг
Видео-кластер Битрикс
Групповые звонки и конференции
Как протестировать работу протокола между
«стационарным» браузером и клиентом
мобильной сети?
WebRTC звонки
Почему «многие» кодят на бою и молчат об
этом?
Почему «многие» тестируют на клиентах и
молчат об этом?
Страшная тайна – открыта.
Архитектура и
статистический анализ
Глубокий анализ сложности
Теория вероятностей
Логирование и мониторинг
Простые, работающие решения
Модульная разработка
Инкрементальный дизайн
Чистый, вкусный, читаемый, разумный код
Компетенция
«Здоровый пофигизм»
управления качеством
Блокировки, тормоза в БД
Сетевые задержки, недоступности
Диск переполнился
Процесс – убит
Транзакции – не спасут!
Гибкие техники программирования
Логировать, измерять, повышать прозрачность
и понимание
Как не сойти с ума?
Munin, Zabbix
Pinba – температура по больнице
XHProf – граф вызовов
Логи в ElasticSearch
Percona MySQL
Базовая простая математика и предикаты.
Инструменты
статистического анализа
ORM и реальность
ORM и компетенция
Тестирование «ацких» SQL-запросов
Percona Innodb патчи
Гистограммы запросов
Объектно-реляционный
импеданс
Разработчик и код
Код и ООП
Код и операционная система
Диски
Сетевые протоколы
Компетенция и отвага
Как протестировать 20-этажный join?
Программистско-
сисадминский импеданс
Логи, awk
strace
sysstat
top, ps, apachetop
tcpdump
Сетевые протоколы
Unix – как инструмент
тестировщика
Процессы приложения (число)
Память приложения (реальная,
виртуальная)
Лог ошибок – чист
Лог работы – обновляется
Нагрузка на процессор: user/system mode
Виртуализация
Минимальный набор
Основные сценарии
Все сценарии
Покрытие
curl, bash
Smoke-тестирование
nagios
Функциональные тесты
Диски – по сети
Связность между машинами
Raid-10 и молния
Отказы балансировщика ELB
CloudWatch – польза и не очень
Amazon Web Services – как
точка отказа
Как тестировать верстку, selenium
Браузеры
Мобильные устройства
Посидеть, покликать
Быстрые изменения и тестирование
Верстка и роботы
Круг vs пирамида, командная игра
Ситуационное лидерство
Проблемы – наверх!
Меньше артефактов - утоните
Визуализация, метафора, коммуникации
Модульность
Общий понятный код
Работающие техники
Тотальная регистрация ошибок
Информационные каналы
Поиск корня проблем
Прозрачность
Роль внутренней культуры компании
Уважение клиентов
Тестирование
Управление качеством
начинается с обсуждения
первой фичи…
От 85 до 150
виртуальных
серверов + доп.
сервисы: S3, SQS,
CloudFront, Route
53, DynamoDB,
Kinesis.
Три человека – у
которых админство
не является
единственной
деятельностью.
Спасибо за внимание!
Вопросы?
Александр Сербул
serbul@1c-bitrix.ru
@AlexSerbul
http://www.1c-bitrix.ru

Más contenido relacionado

Similar a Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные камни и надводные скалы

ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
SPB SQA Group
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
Andrew Mayorov
 
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и..."Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
it-people
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
sportgid
 
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
Clouds NN
 
From ERP to SCADA and back
From ERP to SCADA and backFrom ERP to SCADA and back
From ERP to SCADA and back
qqlan
 
Ломаем (и строим) вместе
Ломаем (и строим) вместеЛомаем (и строим) вместе
Ломаем (и строим) вместе
Dmitry Evteev
 

Similar a Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные камни и надводные скалы (20)

Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...
 
Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутриАлександр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
 
Выявление неполадок в Java приложениях
Выявление неполадок в Java приложенияхВыявление неполадок в Java приложениях
Выявление неполадок в Java приложениях
 
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
 
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и..."Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
 
Bachelors Diploma Slides Short Version
Bachelors Diploma Slides Short VersionBachelors Diploma Slides Short Version
Bachelors Diploma Slides Short Version
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
 
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
 
Борьба с вредоносным кодом: от базовых мер к целостной стратегии
Борьба с вредоносным кодом: от базовых мер к целостной стратегииБорьба с вредоносным кодом: от базовых мер к целостной стратегии
Борьба с вредоносным кодом: от базовых мер к целостной стратегии
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 
From ERP to SCADA and back
From ERP to SCADA and backFrom ERP to SCADA and back
From ERP to SCADA and back
 
Рейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаРейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчика
 
Рейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаРейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчика
 
Security Testing - Polazhenko Sergey
Security Testing - Polazhenko SergeySecurity Testing - Polazhenko Sergey
Security Testing - Polazhenko Sergey
 
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summary
 
Тестирование на проникновение в сетях Microsoft (v.2)
Тестирование на проникновение в сетях Microsoft (v.2)Тестирование на проникновение в сетях Microsoft (v.2)
Тестирование на проникновение в сетях Microsoft (v.2)
 
Семантическое ядро рунета
Семантическое ядро рунетаСемантическое ядро рунета
Семантическое ядро рунета
 
Ломаем (и строим) вместе
Ломаем (и строим) вместеЛомаем (и строим) вместе
Ломаем (и строим) вместе
 
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
 

Más de SQALab

Más de SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные камни и надводные скалы

  • 1. Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные камни и надводные скалы Александр Сербул руководитель направления контроля качества интеграции и внедрений «1С-Битрикс»
  • 3. Elastic Load Balancing Web 1 Elastic Load Balancing Dynamic HTTPS *.com/*.de Web N … CloudWatch + AutoScaling Web 1 Web 2 Web N … CloudWatch + AutoScaling Архитектура Битрикс24 S3 management, monitoring, backup Static HTTPS *.com/*.de CDN (Amazon CloudFront) js, css Dynamic HTTPS *.ru Static HTTPS *.ru CDN (CDNvideo) js, css images(clients) images(clients) local cache (APC) local cache (APC) local cache (APC) local cache (APC) local cache (APC) control cache: memcached mysqld mysqld mysqld mysqld mysqld mysqld master-master replication master-master replication master-master replication mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld control cache: memcached control cache: memcached control cache: memcached control cache: memcached control cache: memcached Web 2 local cache (APC)
  • 4. Битрикс24… 450 000+ компаний зарегистрировано 70 000+ активных компаний 60+ активных пользователей в компании 99,99% доступность сервиса за 2015 г. 47,5 миллионов сообщений в ленте 4 миллиона звонков совершено 42 тысячи звонков в среднем в день
  • 5. «Скорость сайта» (54485+ сайтов, 1000+ запр./сек) Бэкап в облако (25000+ сайтов, 42 ТБ) Мониторинг сайтов из двух датацентров CDN и оптимизация ресурсов (27000+ сайтов, 5 ТБ в день) «Обратный» CDN – для динамики Bigdata, рекомендации (220+ млн. активных пользователей) Push-уведомления Мгновенные сообщения (NodeJS, redis) WebRTC - звонки и другие Облачные сервисы
  • 7. Инфраструктура в Амазоне Отказоустойчивость, автоматизация MySQL мастер-мастер репликация Композитный кэш «Параноидальный» мониторинг PHP на высоких нагрузках Bigdata, математика, машинное обучение, java, Spark, Hadoop, Mahout Технологические «вкусности»…
  • 9. Системы изнутри - анализ Левое и правое полушарие мозга Формализация эмоций Коммуникации с клиентом Страх и отвага, организация команды разработки Эксперты в предметной области Роль аналитика Интуиция, туман и ответственность
  • 10. Системы изнутри - проектирование Опыт, инструменты, люди Клиент, квалификация и согласование Предвидение вектора развития системы Детализация Оценка рисков, прототипы
  • 11. Системы изнутри – управление проектом Сроки, риски, теория вероятностей «Сделай то, никто не знает что, уже вчера» Управление - Пирамида Управление - Круг Управление - Пирамида с кругами  Суровость, справедливость, профессионализм
  • 12. Системы изнутри – разработчики Опыт и квалификация Опыт и квалификация Опыт и квалификация «Поиграться/поучиться и …свалить» Ответственность, храбрость, прозрачность Коммуникации
  • 13. Системы изнутри – тестировщики А что покликать? Тест-кейсы? Покликать много Покликать роботом Автоматизация тестирования Как найти настоящего тестировщика?
  • 14. Идеальный процесс тестирования ФТ! ТЗ!! Модульные тесты Тестирование модульных тестов Тестирование тестов модульных тестов Функциональное тестирование, тест-кейсы Приемочное тестирование …
  • 15. Идеальный процесс тестирования Интеграционное тестирование Тестирование верстки Тестирование контента Нагрузочное тестирование Тестирование настройки сред выполнения Тестирование собственной адекватности  А теперь давайте тут подправим логику и все сначала.
  • 17. Краб, НЛО и подводная лодка…
  • 18. Требования, блин, меняются Идеальный процесс – не панацея Ресурсы – ограничены! Много кода – проблема! Много людей – проблема! Сложность системы – проблема! Собственный мозг – проблема!  Жизнь устроена иначе…
  • 19. Баги – наше всё! Предпочитаем сосредотачиваться на позитивном Здравый смысл Глубокий анализ и управление сложностью Математика, анализ, модели «Усложнение и размножение сущностей – первый враг качества». Философия качества
  • 20. Баги – наше всё! Баги – наше всё! Баги – наше всё!
  • 21. Багтрекеры, мантисы, … Юнит-тесты, *-тесты … Альфа, бета, гамма … «омега»-тестирование Метрики Ура, нашли последний баг Agile и … другие заблуждения человечества Мы это с вами хорошо знаем
  • 22. «Хорошо тестируемый» код, mocks Инварианты, предикаты, исключения, asserts? ООП его за ногу Тестирование unit-тестов unit-тестов Поддержка unit-тестов Тестов больше чем кода Дорого!!! Это мы тоже знаем: unit- tests
  • 23. Среда разработки «Идеальная» схема Среда тестирования Эксплуатация
  • 24. Amazon SQS PHP-воркеры Шлюз к APNS, Google Cloud Messaging Собственный протокол Как протестировать, что сообщение дошло до клиента? Push-уведомления
  • 25. Long polling Web sockets Сторонний модуль для nginx Отладка сторонних модулей для nginx ;-) Свое решение на NodeJS/Redis Как протестировать работу WebSockets на 10 открытых вкладках за глючным файерволом? Мгновенные сообщения
  • 26. WebRTC – технология STUN TURN Сигналинг Видео-кластер Битрикс Групповые звонки и конференции Как протестировать работу протокола между «стационарным» браузером и клиентом мобильной сети? WebRTC звонки
  • 27. Почему «многие» кодят на бою и молчат об этом? Почему «многие» тестируют на клиентах и молчат об этом? Страшная тайна – открыта. Архитектура и статистический анализ
  • 28. Глубокий анализ сложности Теория вероятностей Логирование и мониторинг Простые, работающие решения Модульная разработка Инкрементальный дизайн Чистый, вкусный, читаемый, разумный код Компетенция «Здоровый пофигизм» управления качеством
  • 29. Блокировки, тормоза в БД Сетевые задержки, недоступности Диск переполнился Процесс – убит Транзакции – не спасут! Гибкие техники программирования Логировать, измерять, повышать прозрачность и понимание Как не сойти с ума?
  • 30. Munin, Zabbix Pinba – температура по больнице XHProf – граф вызовов Логи в ElasticSearch Percona MySQL Базовая простая математика и предикаты. Инструменты статистического анализа
  • 31. ORM и реальность ORM и компетенция Тестирование «ацких» SQL-запросов Percona Innodb патчи Гистограммы запросов Объектно-реляционный импеданс
  • 32. Разработчик и код Код и ООП Код и операционная система Диски Сетевые протоколы Компетенция и отвага Как протестировать 20-этажный join? Программистско- сисадминский импеданс
  • 33. Логи, awk strace sysstat top, ps, apachetop tcpdump Сетевые протоколы Unix – как инструмент тестировщика
  • 34. Процессы приложения (число) Память приложения (реальная, виртуальная) Лог ошибок – чист Лог работы – обновляется Нагрузка на процессор: user/system mode Виртуализация Минимальный набор
  • 35. Основные сценарии Все сценарии Покрытие curl, bash Smoke-тестирование nagios Функциональные тесты
  • 36. Диски – по сети Связность между машинами Raid-10 и молния Отказы балансировщика ELB CloudWatch – польза и не очень Amazon Web Services – как точка отказа
  • 37. Как тестировать верстку, selenium Браузеры Мобильные устройства Посидеть, покликать Быстрые изменения и тестирование Верстка и роботы
  • 38. Круг vs пирамида, командная игра Ситуационное лидерство Проблемы – наверх! Меньше артефактов - утоните Визуализация, метафора, коммуникации Модульность Общий понятный код Работающие техники
  • 39. Тотальная регистрация ошибок Информационные каналы Поиск корня проблем Прозрачность Роль внутренней культуры компании Уважение клиентов Тестирование
  • 40. Управление качеством начинается с обсуждения первой фичи…
  • 41. От 85 до 150 виртуальных серверов + доп. сервисы: S3, SQS, CloudFront, Route 53, DynamoDB, Kinesis. Три человека – у которых админство не является единственной деятельностью.
  • 42.
  • 43. Спасибо за внимание! Вопросы? Александр Сербул serbul@1c-bitrix.ru @AlexSerbul http://www.1c-bitrix.ru