Осознанный выбор. python 3 для реализации сервисного...

Post on 15-Apr-2017

510 Views

Category:

Engineering

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Осознанный выбор. Python 3

Python 3 для реализации сервисного шлюза клиента World of Tanks

06.02.2015

Левон АвакянCompetitive Gaming Reliability Team LeadL_avakyan@wargaming.net

О чем я буду говорить Карточка клана

– World Of Tanks и веб сервисы– Карточка клана– Сервисный шлюз для клиента World Of Tanks

Выбор решения– Схема тестирования– Методика тестирования– Erlang– Python 2.7.Twisted– Python 3.4. aiohttp– Системные параметры– Выбор

Python 3.4. Production– Особенности– Qaless releases– Graphite– Graphana

Карточка клана

World of Tanks и веб-сервисы Карточка клана Выбор решения Python 3.4. Production

Карточка клана Карточка клана Выбор решения Python 3.4. Production

Сервисный шлюз клиента World of Tanks Карточка клана Выбор решения Python 3.4. Production

Выбор решения

Схема тестирования Карточка клана Выбор решения Python 3.4. Production

Методика тестирования

Входные данные:• Эмуляторы отвечают с временем ожидания 200 мс• Есть «авторизация» в систему.• Сначала авторизуемся, потом в случайном порядке запрашиваем эмуляторы

Оценка результатов:• Количество обработанных запросов• Время ответа на запрос• Количество ошибок• Время за которое выполняется 95% запросов• Время за которое выполняется 99% запросов

Карточка клана Выбор решения Python 3.4. Production

Erlang

Используемый стек:- Erlang 17

Параметр Значение

Количество запросов 240000

Среднее время отклика 5527 мс

Процент ошибок 11,33%

Время за которое выполняется 95% запросов

15043 мс

Время за которое выполняется 99% запросов

15044 мс

Карточка клана Выбор решения Python 3.4. Production

Python 2.7. Twisted

Используемый стек:Python2.7Redistwistedtxredis

Параметр Значение

Количество запросов 240000

Среднее время отклика 3154 мс

Процент ошибок 1,04%

Время за которое выполняется 95% запросов

9024 мс

Время за которое выполняется 99% запросов

10247 мс

Карточка клана Выбор решения Python 3.4. Production

Python 3.4. aiohttp

Используемый стек:Python3.4Redisaiohttp==0.16.6aioredisaiohttp_session

Параметр Значение

Количество запросов 240000

Среднее время отклика 2817 мс

Процент ошибок 7,75%

Время за которое выполняется 95% запросов

8659 мс

Время за которое выполняется 99% запросов

15038 мс

Карточка клана Выбор решения Python 3.4. Production

Мониторинг

CPU

RAM

NET

Карточка клана Выбор решения Python 3.4. Production

Выбор

Erlang Python 2.7. Twisted Python 3.4. aiohttp

Производительность - + +

Production опыт + + -

Простота разработки - + +

Интересность + - +

Карточка клана Выбор решения Python 3.4. Production

Python 3. Production

Особенности

• Нет production-ready supervisord под Python 3.4• Нет production-ready uwsgi asyncio• Отсутствие поддержки Python 3.4 в Wargaming tools

Work around:• Воркеров в проекте нет. Пока supervisor не нужен, если понадобиться bash + crontab• Используем gunicorn• Часть инструментов адаптировали. Часть запускается из отдельного virtualenv

Карточка клана Выбор решения Python 3.4. Production

QAless Releases

• Авто тесты• Мониторинг

• Внешних потребителей• Протокола• Инфраструктуры

Карточка клана Выбор решения Python 3.4. Production

Graphite Карточка клана Выбор решения Python 3.4. Production

Graphana Карточка клана Выбор решения Python 3.4. Production

Спасибо

Левон АвакянCompetitive Gaming Reliability Team Lead

l_avakyan@wargaming.net

top related