Obsah

Obecné pokyny

Bez ohledu na verzi aplikace z které a na kterou probíhá update nebo upgrade, platí následující pravidla a doporučení.

Základní pravidla

Upgrade versus update

Do verze 2.0.6 existoval pouze update, který vždy provedl aktualizaci aplikace na poslední vydanou verzi. Od verze 2.0.6 (včetně) byl proces rozdělen na dva odlišné kroky: update a upgrade.

Update

Update aplikace provede aktualizaci na poslední vydanou verzi v aktuální řadě. tj. například z 2.0.6 na 2.0.8, nebo z 2.1.1 na 2.1.5. Nikdy už neprovede přechod mezi řadami, tj. neprovede aktualizaci z 2.0.x na 2.1.x. (To platí zpětně i pro starší verze, tj. update ve verzi 2.0.1 aktualizuje na poslední 2.0.x a neskočí na řadu 2.1.x nebo dál.)

Upgrade

Upgrade aplikace provede aktualizaci na novou řadu, pokud je nějaká k dispozici. Tedy například upgrade provede přechod z aktuální verze 2.0.x na poslední verzi 2.1.x. Pokud nová řada k dispozici není, upgrade nic neprovede. Není tedy možné používat upgrade k aktualizaci v rámci stávající řady.

Jak kombinovat

Aplikaci běžně aktualizujeme pomocí update. Pokud dojde k vydání nové řady (např. 2.1.0), pak je pro aktualizaci na tuto novou řadu třeba provést upgrade. Následně opět používáme update pro aktualizace na další verze v této řadě.

Doporučený postup update nebo upgrade

Nutné kroky

Pro update aplikace SOFiE (na poslední verzi v aktuální řadě) je třeba spustit následující příkaz z příkazové řádky:

sofie update

Tento příkaz automaticky provede:

Pro upgrade aplikace SOFiE (na poslední verzi v nové řadě) je třeba spustit následující příkaz z příkazové řádky:

sofie upgrade

Tento příkaz provede přechod na novou řadu aplikace, pokud existuje a následně spustí update. Pokud nová řada neexistuje, neprovede se nic, ani update.

Dále je nutné provést specifické kroky pro všechny verze aplikace, kterými update nebo upgrade prošel a na které skončil. Viz podrobnosti k jednotlivým verzím níže.

Volitelné, ale doporučené, kroky

Před i po update nebo upgrade je doporučeno ověřit aktuální verzi a stav následujícími příkazy:

# vypíše stav služeb, měl by být u všech active (running)
sofie status

# vypíše aktuální verzi, vhodné pro zjištění z které a na kterou upgradujeme
sofie version

Kromě samotného update nebo upgrade aplikace SOFiE je rovněž doporučeno provést aktualizaci operačního systému, v systémech na bázi RHEL lze provést např. příkazem:

# RHEL 7 a obdobné
yum upgrade

# RHEL 8 a obdobné
dnf upgrade

Potom je doporučeno provést restart serveru, aby se ověřilo, že i po všech aktualizacích systém a aplikace v případě restartu znovu korektně nastartuje:

shutdown -r now

Nakonec ověříme, že aplikace korektně běží. Například aplikačním testem, kdy odešleme uživateli zkušební zásilku a ověříme, že dorazila a uživatel jí může stáhnout. Z pohledu administrátora zkontrolujeme, zda nad zásilkou byly provedeny všechny nastavené kontroly a že audit log neobsahuje žádné chyby.

Specifické pokyny k jednotlivým verzím

Zejména při upgrade na novou větší verzi aplikace (např. 1.3.x na 1.4.x) se často stává, že automatický proces aktualizace nemůže provést všechny potřebné kroky a některé je nutno udělat ručně (typicky úprava konfigurace nginx).

Dále je při zavedení nových funkcí či změn volen obvykle konzervativní postup, kdy pokud je to možné, tak nedochází po upgrade ke změně chování aplikace. To ale znamená, že nové funkce mohou po upgrade být vypnuté a pro jejich využití je třeba upravit konfiguraci aplikace.

Verze 2.3.0

Nutné manuální kroky při upgrade

Pokud chceme využívat nový modul “Content Disarm and Reconstruction (CDR)“, je třeba ho nejprve nainstalovat dle návodu zde: https://wikisonpo.atlassian.net/wiki/spaces/SP/pages/887423004/Instala+n+p+ru+ka#Instalace-CDR-modulu-(voliteln%C3%A9)

Doporučená úprava a kontrola konfigurace

Verze 2.3 obsahuje nové či upravené funkce. Administrátor aplikace by měl po provedení upgrade projít zejména následující části nastavení a zvážit, zda a jak chce tyto funkce využívat:

Verze 2.2.0

Nutné manuální kroky při upgrade

Nejsou nutné žádné manuální kroky.

Doporučená úprava a kontrola konfigurace

Verze 2.2 obsahuje nové či upravené funkce. Rovněž v této verzi došlo k podstatným úpravám struktury menu Nastavení → Konfigurace. Administrátor aplikace by měl po provedení upgrade projít zejména následující části nastavení a zvážit, zda a jak chce uvedené funkce využívat:

Verze 2.1.0

Nutné manuální kroky při upgrade

Od této verze došlo k podstatné úpravě struktury konfigurace nginx a zároveň ke zlepšení automatizace celého procesu aktualizace tak, aby ve většině případů již nebyly potřeba ruční zásahy. Aby tento automatický proces korektně fungoval, je třeba, aby instalace odpovídala instrukcím z instalačního manuálu, včetně:

Upgrade konkrétně přepíše soubory /etc/nginx/conf.d/default.conf a /etc/nginx/nginx.conf. Vytvoří však zálohy původních před jejich přepsáním, které vypadají např. takto:

/etc/nginx/conf.d/default.conf.18048.2022-09-05@09:16:45~
/etc/nginx/nginx.conf.17998.2022-09-05@09:16:43~

Doporučená úprava a kontrola konfigurace

Verze 2.1 obsahuje nové či upravené funkce. Administrátor aplikace by měl po provedení upgrade projít zejména následující části nastavení a zvážit, zda a jak chce nové funkce aktivovat a využívat:

Verze 2.0.3

Nutné manuální kroky při upgrade

Po této úpravě je třeba provést restart nebo reload nginx:

systemctl restart nginx

Verze 2.0.0

Nutné manuální kroky při upgrade

Zejména z důvodu změny chování aplikace, kdy stahované soubory již nevydává přímo nginx server, ale až aplikace SOFiE, je nutné upravit konfiguraci nginx jak je uvedeno níže.

Po těchto úpravách je třeba provést restart nebo reload nginx:

systemctl restart nginx

Doporučená úprava a kontrola konfigurace

Verze 2.0 obsahuje velké množství nových či upravených funkcí. Administrátor aplikace by měl po provedení upgrade projít zejména následující části nastavení a zvážit, zda a jak chce nové funkce aktivovat a využívat:

Verze 1.6 a starší

Tyto verze nemají veřejné upgrade notes, všechny aktualizace byly řešeny individuálně ve spolupráci se Sonpo či partnerem.