Version 7 (modified by 6 years ago) ( diff ) | ,
---|
Аналитикс 2019
Эти работы предлагались и раньше, под соусом "закрытия", "консервации" или "предпродажной подготовки" Аналитикса.
План работ подразумевает отсутствие новых фич, приведение существующих фич в нестыдный вид и опенсорс бОльшей части аналитикса (за исключением рассчётов, коллектора и фреймов)
Решаемые проблемы:
- замедление разработки из-за
- глупых ошибок (необходимость ручного прогона и заглядывания в лог на предмет cannot find property 'foo' of bar)
- отсутствия тестов и инфраструктуры CI/CD
- ручного редактирования в "ноутпаде" вместо IDE
- морально устаревшей инфраструктуры (jQuery, Socketstream, Socket.io и т п)
- неподдерживаемой инфраструктуры (jQuery, everyauth, jQuery Templates, Socketstream)
- перфоманс
- медленные клиентские чарты
- хрупкость кода
- инкрементальные рассчёты
- коллектор падает целиком при отказах бирж
- поломки при обновлении системного ПО
- старый JS до yield и await
- наколенные постоянно ломающиеся самоделки
- персистенс
- канал между коллектором и бэкендом
- проблемы UI
- самодельная модель
- устаревшие и некрасивые виджеты jQuery UI
Предлагаемые технические решения
- новый кол на TypeScript и C# (глупые ошибки)
- Azure Pipelines (CI)
- VS2019+ (ручное редактирование)
- meteor, React, RxJS (устаревшая и неподдерживаемая)
- svg-charts (перфоманс)
- ES2019 с даунгрейдом через TypeScript по необходимости (старый JS)
- Akka.net, Sentry.io и circuit breaker pattern для коллектора
- Gearman и MQTT (вместо наколенных протоколов)
- RxJS вместо моделей
- React вместо ручного изменения DOM в jQuery (TSX поддерживается студией!)
- leveldb для персистенса фрейма и qdb
- react-компоненты вместо jQuery UI
- LTS-версии ноды для увеличения стабильности
- переход на CentOS 8 (когда он выйдет и появится поддержка в Студии) для увеличения стабильности
План работ
Ввиду провала предыдущих попыток необходим "метаплан" - общие принципы, которые позволят двигаться минимальными шагами с деплоем результатов на продакшен после каждого шага.
Метаплан
Восстановление старой инфраструктуры
Было утрачено:
- стейджинг-сервер на bugdetvm
- девелоперские мини-стейджинги vmng/vmnim. Они сначала перешли в стадию "редактирование/разработка прямо на стейджинге", а затем погнили вместе с продакшеном
- "неубиваемый" сервер zorro на рекспейсе (сейчас он временно на vultr а на рекспейсе мы платим за неиспользуемый сервер и за DNS)
- актуальные API бирж в коллекторе (сейчас часть отключена из-за тупых ошибок типа изменения формата данных, часть работает с ошибками)
- нотификации от трака через псевдоаккаунт zorro-daemons@…
- обратная связь с пользователями через форум bitcointalk и Discus
- аналитика поведения пользователей со статистикой использования фич через google analytics
- актуальные версии ОС и зависимостей
- обстановка непрерывного ежедневного хуячения :)
- вера в проект :)
Возведение новой инфраструктуры
- CI/CD
- более "живой" девелопмент в приватной репе гитхаба (PR/ревьювы/CI)
- миниколлектор на дотнете, акке и гирмане
- более устойчивый к ломающим обновлениям zorro на CentOS 7 x64
- перевод сорцов на TS
- изоляция линукс-специфики с целью разработки на винде локально в Студии
- построение проектов Студии
- вынесение частей текущего кода в опенсорс
- минимальный перевод коммуникаций и персистенса на gearman и leveldb
- использование нового JS в новом коде, минимальное причёсывание ада в старом
- мониторинг через sentry.io и реимплементацию RealtimeMonitor на гирмане
- оценка потребления памяти с целью перехода на 64-битный Арч (ввиду отсутствия 32-битного дотнета как такового, маргинальности archlinux32 и массовой депрекации 32-битного линукса, наряду с удешевлением памяти)
Note:
See TracWiki
for help on using the wiki.