Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Как мы поддерживаем стабильность приложения Lamoda

MOSDROID
November 10, 2018

Как мы поддерживаем стабильность приложения Lamoda

Виталий Бендик, Lamoda – MOSDROID #13 Aluminium

Мы поговорим о том, что мы понимаем под стабильностью. Какие факторы приводили к нарушению стабильности, как мы с ними боролись и что предприняли для их устранения

MOSDROID

November 10, 2018
Tweet

More Decks by MOSDROID

Other Decks in Programming

Transcript

  1. Что такое стабильное приложение? : не падает* : не виснет

    : не существует : работает предсказуемо
  2. Pre-release сборка Debug сборка* Release сборка Pre-release сборка ProGuard SSL

    Pinning * используют только разработчики
  3. Pre-release сборка Release сборка Pre-release сборка ProGuard SSL Pinning ⚠

    Аналитика Debug сборка* * используют только разработчики
  4. { "brands": [ { "id": "1", "title": "Lacoste" }, {

    "id": "2", "title": "Adidas" } ] } Specification first Массив { "brands": { "id": "1", "title": "Lacoste" } } Объект
  5. Real User Monitoring 1.Потребление памяти 2.Потребление CPU 3.Что грузилось из

    сети? 4.Что происходило на основном потоке? 5.Что происходило в других потоках?
  6. Мониторинг критических мест : Сетевые запросы (в том числе сторонние

    библиотеки) ◦ Ошибки ◦ Время ответа ◦ Нагрузка
  7. Мониторинг критических мест : Сетевые запросы (в том числе сторонние

    библиотеки) ◦ Ошибки ◦ Время ответа ◦ Нагрузка : Падения
  8. Мониторинг критических мест : Сетевые запросы (в том числе сторонние

    библиотеки) ◦ Ошибки ◦ Время ответа ◦ Нагрузка : Падения : Handled exceptions
  9. A/B Tool : Глубоко интегрирован в системы Lamoda : Позволяет

    раскатывать эксперименты / переменные на офис или даже на конкретного пользователя : Независим от сторонних систем
  10. : Автоматическая инструментация кода : Сетевые запросы (в том числе

    сторонние библиотеки) ◦ Ошибки ◦ Время ответа Поддерживаются: HttpURLConnection, OkHttp2, OkHttp3, AndroidHttpClient, Volley, Apache HTTP Client
  11. : Автоматическая инструментация кода : Также, сбор информации о ◦

    Потребление памяти ◦ Потребление CPU ◦ Операции связанные с JSON ◦ Операции связанные с SQLite
  12. : Автоматическая инструментация кода : Отчёты о падениях : Handled

    exceptions : Пользовательские интеракции : Real User Monitoring (RUM) ◦ Потребление памяти ◦ Потребление CPU ◦ Что грузилось из сети? ◦ Что происходило на основном потоке? ◦ Что происходило в других потоках?
  13. : Автоматическая инструментация кода : Отчёты о падениях : Пользовательские

    интеракции : Сетевые метрики и ошибки : Гибкий язык запросов NRQL : Кастомизируемые дашборды : Система алертинга и интеграция с мессенджерами (например, Slack) : и многое другое
  14. Так что со стабильностью? Warning Critical 0.3% ~ 0.5% >

    0.5% Crash rate Warning Critical 0.1% ~ 0.3% > 0.3% Было Стало
  15. Так что со стабильностью? Crash rate Было Стало Warning Critical

    0.3% ~ 0.5% > 0.5% Warning Critical 0.1% ~ 0.3% > 0.3% Average 0.1%
  16. Так что со стабильностью? Crash rate Было Стало Warning Critical

    0.3% ~ 0.5% > 0.5% Warning Critical 0.1% ~ 0.3% > 0.3% Average 0.1% Average 0.05%