Обновление 3.17: различия между версиями

Материал из WiKi - UserSide
Нет описания правки
 
(не показано 15 промежуточных версий 3 участников)
Строка 1: Строка 1:
[[Upgrade_3.17|en]] | [[Обновление_3.17|ru]]
Версия: '''[[3.17]]'''
Версия: '''[[3.17]]'''


Строка 4: Строка 6:


== Несколько слов от автора ==
== Несколько слов от автора ==
* Все должно было быть не так... Версия 3.17 должна была выйти в начале марта 2022 года, но война всё перевернула. Однако наша работа не останавливалась и продолжается она и сейчас. Выход новой версии в марте был явно неуместен, но нужно двигаться вперёд.
*  Мы очень много сделали. Особенно старались сделать упор на доработку всяческих мелочей, что упрощают жизнь и работу. Прошу вдумчиво ознакомиться со [[3.17|списком изменений]].
*  Мы очень много сделали. Особенно старались сделать упор на доработку всяческих мелочей, что упрощают жизнь и работу. Прошу вдумчиво ознакомиться со [[3.17|списком изменений]].


* [[Обновление (инсталлятор)|Обновление]]. '''Рекомендую иметь два инстанса системы'''. Отдельно действующую и отдельно тестовую. На тестовой вы можете периодически обновлять базу данных с действующей системы и проводить обновление, убеждаясь, что всё работает, ознакомиться с нововведениями или выявлять моменты, которые у вас перестали работать.
* Принято решение давать имена собственные версиям и сборкам продукта. Сборки версии 3.17 будут именоваться созвездиями солнечной системы. Первая сборка 3.17 "[https://en.wikipedia.org/wiki/Scutum_(constellation) Scútum]" названа в честь созвездия "Щит"
 
* Открыт канал в [https://www.youtube.com/channel/UCwocKxniJDc8cx0aWglpaFA YouTube], где будем время от времени выкладывать видео по продукту
 
* [[Обновление]]. '''Рекомендую иметь два инстанса системы'''. Отдельно действующую и отдельно тестовую. На тестовой вы можете периодически обновлять базу данных с действующей системы и проводить обновление, убеждаясь, что всё работает, ознакомиться с нововведениями или выявлять моменты, которые у вас перестали работать.


* Наша группа в Telegram для взаимного общения клиентов между собой: https://t.me/usersideeu и канал для новостей: https://t.me/userside
* Наша группа в Telegram для взаимного общения клиентов между собой: https://t.me/usersideeu и канал для новостей: https://t.me/userside
<youtube>https://youtu.be/AesEMZN_l5I</youtube>


== Особенности в проведении обновления ==
== Особенности в проведении обновления ==
Строка 26: Строка 36:
* Выполните настройку модуля [[Установка#websocket|WebSTOMP]]
* Выполните настройку модуля [[Установка#websocket|WebSTOMP]]


* С помощью автоматического [[Инсталлятор|инсталлятора]] выполните [[Обновление (инсталлятор)|обновление]]. В случае ошибки в процессе обновления или если работа инсталлятора не была завершена корректно, запустите инсталлятор в режиме восстановления:
* USERSIDE 3.17 ''требует Python3 любой поддерживаемой на данный момент версии. Статус версий можно посмотреть здесь: "[https://devguide.python.org/versions/ Status of Python versions]". Рекомендуется использовать версию с состоянием "security" или "bugfix". Версии отмеченные как "end-of-life" не поддерживаются. Отмеченные как "feature" не рекомендуется использовать. Если у вас на хосте неподдерживаемая версия ("end-of-life"), то нужно обязательно [[Python-update|установить дополнительно]] более свежую версию Python.''
 
* Установите supervisor, если еще не установлен. Он необходим для контроля за выполнением фоновых процессов.
<pre>
sudo apt install -y supervisor
</pre>
 
* С помощью автоматического [[Инсталлятор|инсталлятора]] выполните [[Обновление|обновление]]. В случае ошибки в процессе обновления или если работа инсталлятора не была завершена корректно, запустите инсталлятор в режиме восстановления:
  sudo -u www-data php userside_install.phar repair
  sudo -u www-data php userside_install.phar repair


Строка 37: Строка 54:
* После обновления в разделе "Настройка - Основная - WebSocket" настройте необходимые параметры из тех, что указали при настройке WebSTOMP
* После обновления в разделе "Настройка - Основная - WebSocket" настройте необходимые параметры из тех, что указали при настройке WebSTOMP


* Добавьте в конфигурацию сервера nginx <code>location /ws ...</code>, как указано в [[Установка#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_5|инструкции по установке]], если не сделали этого ранее. Это реверсивный прокси для WebSTOMP (RabbitMQ).
* Добавьте в конфигурацию сервера nginx реверсивный прокси для WebSTOMP (RabbitMQ):
location /ws {
    proxy_pass http://127.0.0.1:15674/ws;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;
}
Если у вас RabbitMQ расположен на другом сервере, укажите его IP-адрес вместо 127.0.0.1. Протокол в proxy_pass должен быть http. Ничего больше, кроме IP-адреса, менять не нужно.
 
После изменения конфигурации nginx не забудьте перечитать конфигурацию <code>sudo nginx -s reload</code> либо перезагрузить nginx.
 
* Добавьте конфигурацию супервизора, которая будет контролировать фоновые службы userside. Для этого целиком скопируйте выполните следующий блок:
<pre>
sudo tee /etc/supervisor/conf.d/us-core-worker.conf << EOL
[program:us-core-worker]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php /var/www/userside/userside queue/listen
directory=/var/www/userside
autostart=true
autorestart=true
user=www-data
numprocs=10
redirect_stderr=true
stdout_logfile=/var/www/userside/var/log/core-worker.log
EOL
</pre>
 
* Установите зависимые компоненты для системной службы usm_poller, которая поставляется вместе с userside:
<pre>
cd /var/www/userside/microservice/poller
sudo python3 -m venv venv
sudo ./venv/bin/pip install --upgrade pip wheel
sudo ./venv/bin/pip install --upgrade -r requirements.txt
</pre>
 
* Скопируйте конфигурационный файл supervisor для usm_poller:
<pre>
sudo cp etc/us-poller-microservice.conf-example /etc/supervisor/conf.d/usm-poller.conf
</pre>
 
* Активируйте и запустите (перезапустите) службу supervisor:
<pre>
sudo systemctl enable supervisor
sudo systemctl restart supervisor
</pre>
 
* Спустя примерно 10 секунд проверьте состояние контролируемых служб. По умолчанию вы должны увидеть по 10 экземпляров us-core-worker и usm-poller. Все они должны быть в состоянии RUNNING:
<pre>
sudo supervisorctl status
</pre>
 
* Не забудьте обновить все модули на их свежие версии


'''Список изменений:''' [[3.17|просмотреть]]
'''Список изменений:''' [[3.17|просмотреть]]


'''Проведение обновления:''' [[Обновление (инсталлятор)|инструкция]]
'''Проведение обновления:''' [[Обновление|инструкция]]

Текущая версия от 13:00, 18 октября 2024

en | ru

Версия: 3.17

Требуется версия: 3.10 и выше

Несколько слов от автора

  • Все должно было быть не так... Версия 3.17 должна была выйти в начале марта 2022 года, но война всё перевернула. Однако наша работа не останавливалась и продолжается она и сейчас. Выход новой версии в марте был явно неуместен, но нужно двигаться вперёд.
  • Мы очень много сделали. Особенно старались сделать упор на доработку всяческих мелочей, что упрощают жизнь и работу. Прошу вдумчиво ознакомиться со списком изменений.
  • Принято решение давать имена собственные версиям и сборкам продукта. Сборки версии 3.17 будут именоваться созвездиями солнечной системы. Первая сборка 3.17 "Scútum" названа в честь созвездия "Щит"
  • Открыт канал в YouTube, где будем время от времени выкладывать видео по продукту
  • Обновление. Рекомендую иметь два инстанса системы. Отдельно действующую и отдельно тестовую. На тестовой вы можете периодически обновлять базу данных с действующей системы и проводить обновление, убеждаясь, что всё работает, ознакомиться с нововведениями или выявлять моменты, которые у вас перестали работать.

Особенности в проведении обновления

  • Если вы обновляетесь с версии 3.10 - ознакомьтесь со страницей: Обновление 3.11
  • Если вы обновляетесь с версии 3.11 и ранее - ознакомьтесь со страницей: Обновление 3.12
  • Если вы обновляетесь с версии 3.12 и ранее - ознакомьтесь со страницей: Обновление 3.13
  • Если вы обновляетесь с версии 3.13 и ранее - ознакомьтесь со страницей: Обновление 3.14
  • Если вы обновляетесь с версии 3.14 и ранее - ознакомьтесь со страницей: Обновление 3.15
  • Если вы обновляетесь с версии 3.15 и ранее - ознакомьтесь со страницей: Обновление 3.16
  • Выполните настройку модуля WebSTOMP
  • USERSIDE 3.17 требует Python3 любой поддерживаемой на данный момент версии. Статус версий можно посмотреть здесь: "Status of Python versions". Рекомендуется использовать версию с состоянием "security" или "bugfix". Версии отмеченные как "end-of-life" не поддерживаются. Отмеченные как "feature" не рекомендуется использовать. Если у вас на хосте неподдерживаемая версия ("end-of-life"), то нужно обязательно установить дополнительно более свежую версию Python.
  • Установите supervisor, если еще не установлен. Он необходим для контроля за выполнением фоновых процессов.
sudo apt install -y supervisor
  • С помощью автоматического инсталлятора выполните обновление. В случае ошибки в процессе обновления или если работа инсталлятора не была завершена корректно, запустите инсталлятор в режиме восстановления:
sudo -u www-data php userside_install.phar repair
  • При обновлении на версию 3.17 часть данных будет мигрирована в иной формат хранения. Поэтому обновление может занять долгое время. Следует иметь это в виду.
  • Дополнительные поля абонентов-юридических лиц и потенциальных абонентов объединены с дополнительными полями "обычных" абонентов и поэтому идентификаторы таких дополнительных полей могут измениться. В связи с этим, если у вас из биллинга импортируются значения дополнительных полей абонентов - то следует перепроверить значения этих параметров в файле-конфигурации модуля взаимодействия с биллингом (вписать актуальные ID дополнительных полей).
  • Множественные изменения в API. Ознакомьтесь с изменениями на странице Версии 3.17 (раздел 3.17dev1)
  • После обновления в разделе "Настройка - Основная - WebSocket" настройте необходимые параметры из тех, что указали при настройке WebSTOMP
  • Добавьте в конфигурацию сервера nginx реверсивный прокси для WebSTOMP (RabbitMQ):
location /ws {
    proxy_pass http://127.0.0.1:15674/ws;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;
}

Если у вас RabbitMQ расположен на другом сервере, укажите его IP-адрес вместо 127.0.0.1. Протокол в proxy_pass должен быть http. Ничего больше, кроме IP-адреса, менять не нужно.

После изменения конфигурации nginx не забудьте перечитать конфигурацию sudo nginx -s reload либо перезагрузить nginx.

  • Добавьте конфигурацию супервизора, которая будет контролировать фоновые службы userside. Для этого целиком скопируйте выполните следующий блок:
sudo tee /etc/supervisor/conf.d/us-core-worker.conf << EOL
[program:us-core-worker]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php /var/www/userside/userside queue/listen
directory=/var/www/userside
autostart=true
autorestart=true
user=www-data
numprocs=10
redirect_stderr=true
stdout_logfile=/var/www/userside/var/log/core-worker.log
EOL
  • Установите зависимые компоненты для системной службы usm_poller, которая поставляется вместе с userside:
cd /var/www/userside/microservice/poller
sudo python3 -m venv venv
sudo ./venv/bin/pip install --upgrade pip wheel
sudo ./venv/bin/pip install --upgrade -r requirements.txt
  • Скопируйте конфигурационный файл supervisor для usm_poller:
sudo cp etc/us-poller-microservice.conf-example /etc/supervisor/conf.d/usm-poller.conf
  • Активируйте и запустите (перезапустите) службу supervisor:
sudo systemctl enable supervisor
sudo systemctl restart supervisor
  • Спустя примерно 10 секунд проверьте состояние контролируемых служб. По умолчанию вы должны увидеть по 10 экземпляров us-core-worker и usm-poller. Все они должны быть в состоянии RUNNING:
sudo supervisorctl status
  • Не забудьте обновить все модули на их свежие версии

Список изменений: просмотреть

Проведение обновления: инструкция