Upgrade 3.17: различия между версиями

Материал из WiKi - UserSide
Нет описания правки
Нет описания правки
 
(не показаны 4 промежуточные версии этого же участника)
Строка 11: Строка 11:
* We have done a lot. Especially we have tried to emphasise the improvement of all sorts of little things that make life and work easier. Please read the [[3.17_EN| list of changes]] thoughtfully.
* We have done a lot. Especially we have tried to emphasise the improvement of all sorts of little things that make life and work easier. Please read the [[3.17_EN| list of changes]] thoughtfully.


* We decided to give names to our own versions and builds of the product. The 3.17 builds will be named after constellations of the solar system. The first 3.17 build "[https://en.wikipedia.org/wiki/Scutum_(constellation) Scútum]" is named after the constellation ‘Shield’
* We decided to give names to our own versions and builds of the product. The 3.17 builds will be named after constellations of the solar system. The first 3.17 build "[https://en.wikipedia.org/wiki/Scutum_(constellation) Scútum]" is named after the constellation "Shield"


* Opened a channel in [https://www.youtube.com/channel/UCwocKxniJDc8cx0aWglpaFA YouTube], where we will occasionally post videos on the product.
* Opened a channel in [https://www.youtube.com/channel/UCwocKxniJDc8cx0aWglpaFA YouTube], where we will occasionally post videos on the product.
Строка 36: Строка 36:


* Configure the [[Installation#websocket|WebSTOMP]] module
* Configure the [[Installation#websocket|WebSTOMP]] module
* USERSIDE 3.17 ''requires Python3 of any currently supported version. The status of versions can be viewed here:"[https://devguide.python.org/versions/ Status of Python versions]". It is recommended to use a version with "security" or "bugfix" status. Versions marked as "end-of-life" are not supported. Versions marked as "feature" are not recommended. If you have an unsupported version ("end-of-life") installed on your host, you should be sure to [[Python-update_EN|install additionally]] a more recent version of Python.''


* Install supervisor if not already installed. It is needed to control the execution of background processes.
* Install supervisor if not already installed. It is needed to control the execution of background processes.
Строка 49: Строка 51:
* Additional fields of legal entity subscribers and potential subscribers are merged with additional fields of "regular" subscribers and therefore the identifiers of such additional fields may change. In this regard, if you import values of additional fields of subscribers from billing, you should double-check the values of these parameters in the configuration file of the module of interaction with billing ''(enter actual IDs of additional fields)''.
* Additional fields of legal entity subscribers and potential subscribers are merged with additional fields of "regular" subscribers and therefore the identifiers of such additional fields may change. In this regard, if you import values of additional fields of subscribers from billing, you should double-check the values of these parameters in the configuration file of the module of interaction with billing ''(enter actual IDs of additional fields)''.


* Multiple changes to the API. Check out the changes on the [[Versions 3.17]] page. ''(Section 3.17dev1)''
* Multiple changes to the API. Check out the changes on the [[Versions 3.17 EN|Versions 3.17]] page. ''(Section 3.17dev1)''


* After the upgrade, under ''Configuration - Basic - WebSocket'', configure the necessary parameters from those you specified when configuring WebSTOMP
* After the upgrade, under "Settings - Main - WebSocket'", configure the necessary parameters from those you specified when configuring WebSTOMP


* Add a reverse proxy for WebSTOMP (RabbitMQ) to the nginx server configuration:
* Add a reverse proxy for WebSTOMP (RabbitMQ) to the nginx server configuration:

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

en | ru

Version: 3.17

Version required: 3.10 and above

A few words from the author - version features

  • It wasn't supposed to be like this... Version 3.17 was supposed to be released at the beginning of March 2022, but the war turned everything upside down. However, our work did not stop and it continues now. Releasing a new version in March was clearly inappropriate, but we need to move forward.
  • We have done a lot. Especially we have tried to emphasise the improvement of all sorts of little things that make life and work easier. Please read the list of changes thoughtfully.
  • We decided to give names to our own versions and builds of the product. The 3.17 builds will be named after constellations of the solar system. The first 3.17 build "Scútum" is named after the constellation "Shield"
  • Opened a channel in YouTube, where we will occasionally post videos on the product.
  • Upgrade. Recommended to have two instances of the system. A separate live one and a separate test one. On the test one you can periodically update the database from the current system and perform updates to make sure everything is working, familiarise yourself with innovations or identify things that have stopped working for you.

Features of the upgrade

  • If you are upgrading from version 3.10 - check out the page: Upgrade 3.11
  • If you are upgrading from version 3.11 and earlier - check out the page: Upgrade 3.12
  • If you are upgrading from version 3.12 and earlier - check out the page: Upgrade 3.13
  • If you are upgrading from version 3.13 and earlier - check out the page: Upgrade 3.14
  • If you are upgrading from version 3.14 and earlier - check out the page: Upgrade 3.15
  • If you are upgrading from version 3.15 and earlier - check out the page: Upgrade 3.16
  • USERSIDE 3.17 requires Python3 of any currently supported version. The status of versions can be viewed here:"Status of Python versions". It is recommended to use a version with "security" or "bugfix" status. Versions marked as "end-of-life" are not supported. Versions marked as "feature" are not recommended. If you have an unsupported version ("end-of-life") installed on your host, you should be sure to install additionally a more recent version of Python.
  • Install supervisor if not already installed. It is needed to control the execution of background processes.
sudo apt install -y supervisor
  • Use the automatic installer to perform an upgrade. In case of an error during the update process or if the installer did not complete correctly, run the installer in recovery mode:
sudo -u www-data php userside_install.phar repair
  • When upgrading to version 3.17, some data will be migrated to a different storage format. Therefore, upgrade may take a long time. Please keep this in mind.
  • Additional fields of legal entity subscribers and potential subscribers are merged with additional fields of "regular" subscribers and therefore the identifiers of such additional fields may change. In this regard, if you import values of additional fields of subscribers from billing, you should double-check the values of these parameters in the configuration file of the module of interaction with billing (enter actual IDs of additional fields).
  • Multiple changes to the API. Check out the changes on the Versions 3.17 page. (Section 3.17dev1)
  • After the upgrade, under "Settings - Main - WebSocket'", configure the necessary parameters from those you specified when configuring WebSTOMP
  • Add a reverse proxy for WebSTOMP (RabbitMQ) to the nginx server configuration:
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;
}

If you have RabbitMQ hosted on a different server, specify its IP address instead of 127.0.0.1. The protocol in proxy_pass must be http. Nothing else but the IP address needs to be changed.

After changing the nginx configuration, don't forget to re-read the configuration sudo nginx -s reload or restart nginx.

  • Add a supervisor configuration that will control the userside background services. To do this, copy the following block in its entirety:
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
  • Install the dependencies for the usm_poller system service that comes with 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
  • Copy the supervisor configuration file for usm_poller:
sudo cp etc/us-poller-microservice.conf-example /etc/supervisor/conf.d/usm-poller.conf
  • Activate and start (restart) the supervisor service:
sudo systemctl enable supervisor
sudo systemctl restart supervisor
  • After about 10 seconds, check the status of the monitored services. By default, you should see 10 instances each of us-core-worker and usm-poller. All of them should be in the RUNNING state:
sudo supervisorctl status
  • Don't forget to update all modules to their latest versions

List of Changes: view

Performing the upgrade: instruction