DS / VMMgr - notifikace o stavu SW pro uživatele - draft k zadání #373
Labels
No Label
app-basic
app-ckan
app-crisiscleanup
app-cts
app-decidim
app-dhis2
app-frontlinesms
app-gnuhealth
app-kanboard
app-mifosx
app-motech
app-odoo
app-opendatakit
app-pandora
app-sahana
app-seeddms
app-sigmah
app-taarifa
app-ushahidi
critical
CZ
documentation
Doing
enhancement
GMaps
info
Mapbox
needinfo
new-app
OSM
performance
QGIS
regression
suggestion
To Do
upstream
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Spotter-Cluster/Spotter-VM#373
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Toto je nárh zadání k vývoji funkčnosti notifikací.
Cíl: v minimální formě oznámit informaci o dostupnosti nového buildu VM pro stávající uživatele VM.
Rozšířený cíl: oznámit i jinou technickou informaci o stavu DS, nebo o SW a datech poskytovaných přes VM.
Diskuse:
Rozvoj a aktualizace běhového prostředí VM bude dlouhodobě na činnosti konkrétního vývojáře, tj. neděje se tak snadným a automatizovatelným způsobem. Po různých vědomých upgradech, bugfixech, testováních tedy vznikne nové sestavení VM, případně jiné změny ve službě DS. Tuto informaci by bylo vhodné oznámit dosavadním uživatelům VM.
Soudím, že to nemusí být tradičně přes e-mail konkrétnímu správci, ale spíše přímo do rozhraní VMMgr do admin sekce. Nelze vědět, kdo se stane konkrétním správcem u konkrétní VM, ale předpoklad je, že někdo jím bude. Jakmile si někdo zlikviduje vlastní VM, pochopitelně že přestane mít i notifikace.
Struktura informací:
Minimální, do budoucnosti počítat s variantou jazykové mutace. Pravděpodobně bude vycházet ze stavu verzí hlavních SW, ale nemusí být jen výhradně o verzích. Může to být i info jiného typu, jako trvalé odstranění konkrétního SW, aktualizace statických datových sad, které nejsou softwarem ale jejich dostupnost bude spravována přes DS / VMMgr jako např. mapové podklady konkrétního data, upozornění na expiraci časově závislých klíčů, certifikátů, (+cokoliv dalšího technického) Může být ve formě strukturovaného textu, tj. včetně hyperlinků, nebo zvýraznění textu.
Teoreticky může být s možností vložení URL obrázku, ale není to podstatnékomplikovalo by to frontend design.
Tento způsob oznamování by byl nepersonalizovaný, nebude obsahovat žádné citlivé údaje, ale nebude sdělován jinde než pouze přes VM.
Zadání k řešení:
Domyslet, navrhnout datovou strukturu, způsob zápisu zprávy, ukládání historie, případně nejbližší stručné roadmapy, způsob failoveru a případně potenciální standartizaci této push notifikace. V případě nedostupnosti DS by poslední info měla být čitelná v offline běžící VM.
Pokud by později došlo k přepracování a obohacení, tak aby šlo spíše o rozšíření stávající jednoduché funkčnosti, než zcela předělání této funkčnosti.
Další nápady, změny zadání, upřesnění: v komentáři zde.
Dokumentace: - popsat stručně v dokumentaci
Termín implementace: neurčen, jak vyplyne
changed milestone to %3
Tohle je veskrze frontendová záležitost. Backend poskyuje informace o současně nainstalované verzi a o verzi na distribučním serveru. Pokud je na DS novější, zobrazí se čudlik "aktualizovat". Současně se může stát cokoliv jiného - popup, změna barvy karty aplikace, zobrazení notifikační ikonky, atd. - ale to už je všechno frontend. Pokud by se mělo odesílat oznámení jiným způsobem, například mailem, vyžadovalo by to správně nakonfigurovaný mailový server, nějaký cronjob, který by to celé zajišťoval a další opičárny přidávájící na složitosti.
Pokud Vás mate to, že každé dva měsíce stahujete nějaký OVA image, tak to se bude dít jen do té doby, dokud ta platforma, kterou vyvíjíme, nebude rock-solid stabilní. Pak už bude stačit stáhnout image jednou a pojede až dokud nedojde k nějaké velmi zásadní změně, která nepůjde protlačit instalačními balíčky. Dosud totiž nemáme úplně implementovaný systém aktualizací, takže zatím aktualizujeme způsobem "Tady si to ručně stáhni a rozbal".
Ale bude dít :) Nastavení základních služeb VM (bootování, fonty v konzoli, iptables firewall, nginx HTTP server atd.) je persistentní. VMMgr je pak instalován jako APK balíček z vlastního repozitáře (repo.spotter.cz/alpine/...). Takže máme v zásadě dva aktualizační kanály, které musíme hlídat. Prvním jsou samotné kontejnery, které hlídá VMMgr a při každém zobrazení instalovaných a instalovatelných aplikací stahuje aktuální informace z DS. A druhým jsou pak balíky pro Alpine distribuci hostitele, ve kterých je zahrnuto jádro OS, základní služby a prostředí pro správu VM (VMMgr).
To už máme z většiny implementováno taky. Opět ale, vinou vývoje a častých změn, používáme natvrdo pouze češtinu, abychom se nemuseli zdržovat překládáním a testováním pro další jazyky. Jakmile bude platforma dostatečně stabilní, objeví se ve webovém rozhraní dropdown a můžete si přepnout třeba na Xhoštinu, pokud Vám to do ní někdo přeloží. Backend na to již připraven je.
V současnosti by to fungovalo tak, že pokud je software již nainstalovaný, v rozhraní by zůstal viditelný. Pokud nainstalovaný ještě není, prostě by zmizel z výpisu aplikací. Teoreticky bychom klidně mohli dělat aktualizace ve vlnách, třeba čtvrtletně, a ke každé publikovat changelog, zobrazitelný ve VMMgr. V tom by pak bylo vypsáno, které aktualizace byly aktualizovány na které verze, které byly přidány, které byly odstraněny, jestli se změnily nějaké závislosti atd.
Tohle bude asi trochu větší oříšek. Hlavně to bude závislé na konkrétních aplikacích a jejich zvládání duplicitních dat. Řešil bych individuálně dle aplikace a nejspíš mimo VMMgr, protože ten by měl být jen pro správu VM a kontejnerů, ale už ne konkrétních nastavení jednotlivých aplikací a aplikačních dat.
To je rozhodně dobrý nápad, ale opět veskrze frontedovitost. Backend jen musí poskytovat funkci, které se frontend dotáže, což v případě TLS certifikátu v současnosti již poskytuje.
V současnosti to funguje tak, že pokud není DS dostupný, zobrazí se zpráva o jeho nedostupnosti a zároveň zmizí informace o všech nenainstalovaných balících. Nevím nakolik je užitečné zobrazovat informaci o něčem, co není momentálně dostupné a při obnovení dostupnosti nemusí být nadále platné.
Např. mám VM už půl roku offline a svítí mi na ní, že můžu instalovat CTS. Kliknu na instalaci a ta mě samozřejmě pošle do řiti, protože nemám internety. Tak tedy vítězoslavně připojím kabel a čárymáryfuk, CTS zmizí, protože se stáhne aktuální seznam aplikací, ve kterém CTS už nefiguruje, protože ho Spotter před dvěma měsíci rozkázal vygumovat. V takovém případě mi přijde intuitivnější zobrazovat jen to, s čím můžu v daném okamžiku skutečně manipulovat a spolu s tím tam mít tlustou červenou hlášku, že ten zbytek nevidím, protože jsem offline.
ok, díky za komentář... k tomu poslednímu stavu a informování: Ok, rozumím námitce a pravděpodobně vyhoví status OFFLINE. Měl jsem jen takovou tu hrůzu ze situací, kdy si použivatel zvykne na online že to ani nevnímá. Při náhlém offline najednou zjišťuje, že nejen že klikání nepomáhá, ale že mu všechno co bylo online zmizelo a i primitivní informace, které byl líný si pamatovat jsou fuč, protože je offline.
Tenthle stav samože nemusí být vážný... přemýšlím jestli může být nějaká konkrétní kritická situace která by adminovi zkomplikovala život natolik, že by si přál mít tuto info nějak offlinovanou.
tady jsem asi přednostně myslel třeba ty částečně stažená OSM data a to bude možná vymyšlené již někým jiným. MapTiler to právě nějak řešil, poznamenal jsem si. Možná že to bude jediný příklad dat o které půjde při aktualizacích do vlastní VM.
Možná by se měl z tohoto procesu DS rovnou vyloučit, pokud by OSM data byla uživatelsky stažitelná rovnou ze zdrojů. (Např. při prvním setupu si admin zvolí jeden nebo více regionů downloadu, ten stáhne, tím se stanou mapy region(ů) lokální. Při potřebě aktualizovat mapy se vyšle dotaz rovnou na OSM, nebo jiný MapTiler, buhvíjak)
Všechna ostatní data by byla zprostředkována jen těmi konektory. Nemusí to být nutně přímo ve VMMgr, možná na to vznikne samostatný tool, nebo datamanager, zatim nevim.
jinak to ostatní chápu jako frontendovou záležitost, ledaže byste měl nějako zásadní námitku, kterou bychom museli vyřešit dříve, než frontend.
jinak ten naznačený způsob co největší systematizace updatů je zajímavý, nepřehlédl jsem ho, jsem zvědavý a nedokážu to prozatím komentovat :)
moved to Spotter-Cluster#60