wiki:Analytics_2019/Restoration

Version 7 (modified by andy, 4 years ago) ( diff )

--

Минимальное восстановление Аналитикса

Поскольку полный план Analytics_2019 затянулся, необходимо избежать умирания новых реп

  • кода на vultr
  • репы nponeccop/btcanalytics-collector
  • репы bitcoin-analytics/btca-frontend

подобно тому как это получилось с последними 3 начинаниями:

  • агрегатором
  • фикс-коллектором
  • коллектором на процессах

Для этого надо остановить новые работы и заняться переносом продакшена на vultr.

Для этого надо выполнить 3 больших задачи:

  • Починить работу Google Oauth (по необходимости для этого починить everyauth, analytics и socketstream)
  • Зарегистрировать идентификаторы OAuth-клиента для 4 основных провайдеров (Twitter, LinkedIn, Facebook, Vkontakte)
  • Проверить работоспоспособность everyauth c ними и починить everyauth

и 5 малых:

  • Проверить работоспособность биллинга
  • Проверить работоспособность репликации
  • Подключить Gearman-коллектор в текущий коллектор аналитикса
  • Выложить в опенсорс авторизацию
  • Выложить в опенсорс биллинг
  • Синхронизировать опенсорс с vultr

Обновление от ноября 2019

Поскольку план тоже провалился, есть уменьшенная версия плана с 4 большими задачами (5 малых остаются как раньше):

  • запустить старую ноду на полностью обновлённом Арче
  • запустить старые node_modules на полностью обновлённом арче
  • Зарегистрировать идентификаторы OAuth-клиента для 4 основных провайдеров (Twitter, LinkedIn, Facebook, Vkontakte)
  • Проверить работоспоспособность старого everyauth c ними

То есть мы пытаемся избежать починки everyauth и socketstream, которая затянулась так как они оба погнили основательно.

Обновление от апреля 2020

В связи с COVID-19 нечего делать, так что я немного продвинулся:

  • Ноябрьский миниплан оказался труднее в реализации, так что вернулся к версии в начале страницы
  • Everyauth портирован на Express 4 и запушен в мой гитхаб
  • зарегистрированы идентификаторы OAuth-клиента для Google и Twitter, чтобы можно было отлаживать авторизацию. Google OAuth и Twitter рабочие в тестовом примере everyauth
  • запущен аналитикс на vultr. Он периодически ломается в связи с работами, но в целом работоспособен.
  • в аналитикс установлен новый everyauth из гитхаба
  • выяснилось, что эвриаус на продакшене непатченный
  • восстановлена работоспособность логина
    • восстановил старый код налепливания middleware "снаружи" сокетстрима
    • отключен механизм отключения куки-заголовков, который нужен был для улучшения кеширования

Осталось сделать:

  • проверить работоспособность биллинга
  • в сокетстриме 2 патча:
    • для рейс-кондишена при записи сессий
    • для отказа от ручного паршения куки

После чего у нас будет работоспособная future-proof версия продакшена. Её можно будет заморозить и переключить на неё продакшен с оушена.

Опциональные работы:

  • восстановить кеширование в варнише
    • рубить заголовки Cookie: и Set-Cookie:, как это было сделано раньше
    • проверить работоспособность вебсокет-транспорта
    • портировать синтаксис .vcl на Varnish 6
  • обновить список социальных логинов
  • снизить тарифы
  • Выложить в опенсорс авторизацию
  • Выложить в опенсорс биллинг
  • Синхронизировать опенсорс с vultr

Обновление от августа 2020

По сути были проделаны работы по восстановлению Аналитикса, не предусмотренные предыдущими планами по причине недосмотра:

Мейнтенанс коллектора:

  • в коллектор добавлено 15 бирж на "минимальном" фреймворке, новые биржи в collector/lib/exchange, старые не менялись
  • из вышеперечисленных 7 бирж сделаны за деньги Алексом на винде в Visual Studio на тайпскрипте в приватной репе github.com/bitcoin-analytics/btcanalytics-collector, синхронизация в ручном режиме - копирую *.js результат компиляции в нашу меркуриал-репу
  • в новых биржах не делались перевёрнутые тикеры, т.е. X/BTC делались, а BTC/X нет.

Починка багов, которые есть на текущем ("старом") продакшене:

  • yahooapis заменен на https://exchangeratesapi.io/, в результате частично заработал XArbitrage
  • осталось сделать поддержку левых валют - в старом XArbitrage были захардкожены SLL, LTC и XRP, cейчас же у нас 7 валют разной степени левизны: USDT, USDN, BUSD, СUSD, TUSD, GUSD, PAX и XRP.

Восстановление старого окружения:

  • vmgen создан на DigitalOcean в новом future proof режиме "ядро Арча внутри VPS"
  • На vmgen подняты самба и OpenVPN для обеспечения работы в старом ключе
  • Помимо этого vmgen проверяет работоспособность продакшена на оушене без необходимости покупки двухъядерной конфигурации
  • Поскольку фактически разработка на vmgen не ведётся, он выполняет роль стейджинга, т.е. бадгета.
Note: See TracWiki for help on using the wiki.