VM Frontend design - draft k zadání #1

Open
opened 2018-11-12 00:50:32 +01:00 by Podhorecky · 33 comments
Podhorecky commented 2018-11-12 00:50:32 +01:00 (Migrated from git.spotter.cz)

shrnutí potřeb a návrhů pro realizaci frontendu (CptO. incl.). Přednostně tedy pro frontend designera, ale určitě je možné probrat, upravit. návrhy nemusí být zcela dokonalé, rád přijmu vhodnější.

Cíl:

  • Rozhraní pro rychlý a srozumitelný přístup k nastavení všech dostupných vlastností
  • Mobile device a dotyková obrazovka ready, atd.
  • co nejvíc omezit počet kliků a přesunů k dosažení konkrétního cíle (2-3 max) snížit počet načítání samostatných stran na minimum.
  • funkčně rozlišené rozhraní admin / klienti

Návrhy k řešení (řazeno bez priorit)

  • spolehlivý framework Bootstrap, nebo Zurb Foundation. (jinde např. Sahana je s ZF, ale může používat i BS) teoreticky aby se nemnožila zbytečně diverzita použitých FW
  • možno se inspirovat u spolehlivých, nebo hotových řešení, viz např. https://sandstorm.io
  • nevytvářet komplikovanou orig. grafiku, stačí výbava frameworků příp. templaty
  • není nutný vyhrazený CMS pro VMMgr, pokud by rozvoj a změny v designu byly možné dělat dostatečně flexibilně vývojářem
  • zcela jistě počítat s lokalizací více jazyků (přinejmenším CJ, AJ)
  • rozhraní a úpravu podřídit i k ovládání ve ztížených podmínkách. ("hezký" design není priorita, prioritou je kompaktní praktický a jednoznačný design, vysoký kontrast, čitelný text, naprosto neomylně ovladatelné prvky)
  • může být detekce device a lehké modifikace obsahu+formy pro platformy atd.
  • žádné, nebo minimum líbivých efektů bez funkčnosti (tj. nějaký motion design není potřeba)
  • může být navržena a připravena kontextová nápověda
  • umožnit lehké uživatelské přizpůsobení. (pravděpodobně vlastní header, název)
  • zpracovat chybové stavy (s co nejmenším klikáním navíc)
  • nést info o původu, licenci, kontakt.
  • nést info o autoritách, kódu, buildu, technologiích, dokumentaci.
  • dávat pozor aby nevznikly zbytečné bezpečnostní hrozby
  • přiměřeně nízké nároky na provoz v browseru (paměť, CPU)
  • ostatní běžné zásady frontend designu nejmenovány, ale rozumně předpokládány

koexistence s aplikacemi

  • toto zadání neřeší redesign cizích aplikací. Lze pokusit se přiblížit k vizuální úpravě některých apps, ideálně aby zapadlo. Tj. bývá nějaké menu, lehká struktura, možná piktogramy. Nic co bychom už neznali.
  • počítat že VMMgr by spíš běžel paralelně při spuštěných apps.
  • počítat s prostorem pro desítky aplikací v různém stádiu existence (nestažena, stažena, nespuštěna, spuštěna, smazána...) různé názvy, ikony...
  • dbát na kompaktnost a užitnost prostoru, snížit scrollování na optimum.

postup vzniku

  • diskuse nad návrhem, doladění zadání
  • průběh a testování přes GitLab, nebo podle dohody,
  • uživatelská zkouška nezávislou osobou
  • výsledný design bez dodatečných licenčních nákladů za šíření atd.
  • adekvátně minimální dokumentace, kompletní otevřený kód.

pokud by mělo později vzniknout samostatné GUI distribučního serveru nebo jiné GUI, bude řešeno jinde.

(prosím nesmát se, mam za sebou extrémně špatnou zkušenost k podobnému zadání, kde se všichni tvářili jak je profíkům vše jasné a u termínu "responzivní design" na jehož shodné pochopení jsem se výslovně ptal, se řešitel tvářil, že se zbytečně ptám co je to "kolo", ale jeho výsledek byl odstrašující karikatura responzivního designu.)

shrnutí potřeb a návrhů pro realizaci frontendu (CptO. incl.). Přednostně tedy pro frontend designera, ale určitě je možné probrat, upravit. návrhy nemusí být zcela dokonalé, rád přijmu vhodnější. **Cíl:** * Rozhraní pro rychlý a srozumitelný přístup k nastavení všech dostupných vlastností * Mobile device a dotyková obrazovka ready, atd. * co nejvíc omezit počet kliků a přesunů k dosažení konkrétního cíle (2-3 max) snížit počet načítání samostatných stran na minimum. * funkčně rozlišené rozhraní admin / klienti **Návrhy k řešení (řazeno bez priorit)** * spolehlivý framework Bootstrap, nebo Zurb Foundation. (jinde např. Sahana je s ZF, ale může používat i BS) teoreticky aby se nemnožila zbytečně diverzita použitých FW * možno se inspirovat u spolehlivých, nebo hotových řešení, viz např. https://sandstorm.io * nevytvářet komplikovanou orig. grafiku, stačí výbava frameworků příp. templaty * není nutný vyhrazený CMS pro VMMgr, pokud by rozvoj a změny v designu byly možné dělat dostatečně flexibilně vývojářem * zcela jistě počítat s lokalizací více jazyků (přinejmenším CJ, AJ) * rozhraní a úpravu podřídit i k ovládání ve ztížených podmínkách. ("hezký" design není priorita, prioritou je kompaktní praktický a jednoznačný design, vysoký kontrast, čitelný text, naprosto neomylně ovladatelné prvky) * může být detekce device a lehké modifikace obsahu+formy pro platformy atd. * žádné, nebo minimum líbivých efektů bez funkčnosti (tj. nějaký motion design není potřeba) * může být navržena a připravena kontextová nápověda * umožnit lehké uživatelské přizpůsobení. (pravděpodobně vlastní header, název) * zpracovat chybové stavy (s co nejmenším klikáním navíc) * nést info o původu, licenci, kontakt. * nést info o autoritách, kódu, buildu, technologiích, dokumentaci. * dávat pozor aby nevznikly zbytečné bezpečnostní hrozby * přiměřeně nízké nároky na provoz v browseru (paměť, CPU) * ostatní běžné zásady frontend designu nejmenovány, ale rozumně předpokládány **koexistence s aplikacemi** * toto zadání neřeší redesign cizích aplikací. Lze pokusit se přiblížit k vizuální úpravě některých apps, ideálně aby zapadlo. Tj. bývá nějaké menu, lehká struktura, možná piktogramy. Nic co bychom už neznali. * počítat že VMMgr by spíš běžel paralelně při spuštěných apps. * počítat s prostorem pro desítky aplikací v různém stádiu existence (nestažena, stažena, nespuštěna, spuštěna, smazána...) různé názvy, ikony... * dbát na kompaktnost a užitnost prostoru, snížit scrollování na optimum. **postup vzniku** * diskuse nad návrhem, doladění zadání * průběh a testování přes GitLab, nebo podle dohody, * uživatelská zkouška nezávislou osobou * výsledný design bez dodatečných licenčních nákladů za šíření atd. * adekvátně minimální dokumentace, kompletní otevřený kód. pokud by mělo později vzniknout samostatné GUI distribučního serveru nebo jiné GUI, bude řešeno jinde. (prosím nesmát se, mam za sebou extrémně špatnou zkušenost k podobnému zadání, kde se všichni tvářili jak je profíkům vše jasné a u termínu "responzivní design" na jehož shodné pochopení jsem se výslovně ptal, se řešitel tvářil, že se zbytečně ptám co je to "kolo", ale jeho výsledek byl odstrašující karikatura responzivního designu.)
Podhorecky commented 2018-11-13 15:11:06 +01:00 (Migrated from git.spotter.cz)

na testy mám momentálně výkřik techniky:

  • 15´´ ntb W7 SP1 4GB
  • 13´´ ntb W8.1 2GB s dotykovou obrazovkou
  • 13´´ ntb Lubuntu LXDE 2GB s dotykovou obrazovkou
  • 9,6´´ tablet Android 5.1.1
  • iPhone 6 SE iOS 12.1
  • browsery co stáhnu
  • teoreticky jiný OS ve VBoxu
na testy mám momentálně výkřik techniky: * 15´´ ntb W7 SP1 4GB * 13´´ ntb W8.1 2GB s dotykovou obrazovkou * 13´´ ntb Lubuntu LXDE 2GB s dotykovou obrazovkou * 9,6´´ tablet Android 5.1.1 * iPhone 6 SE iOS 12.1 * browsery co stáhnu * teoreticky jiný OS ve VBoxu
Disassembler commented 2018-11-17 21:58:49 +01:00 (Migrated from git.spotter.cz)

Body

  • spolehlivý framework Bootstrap, nebo Zurb Foundation. (jinde např. Sahana je s ZF, ale může používat i BS) teoreticky aby se nemnožila zbytečně diverzita použitých FW
  • přiměřeně nízké nároky na provoz v browseru (paměť, CPU)

se ve většině případů vylučují, alespoň dle mé definice přiměřeně nízkých nároků. Moderní webové frontendy se dělají tak, že se vezmou dvě supersportovní auta a z jednoho se použije levé přední kolo a z druhého klika u dveří. K tomu, aby to celé fungovalo ale musí být všechny součásti pořád pohromadě a spotřeba i nároky na údržbu jsou stejné, jako by byly při jejich zamýšleném užití. Dělá se to tak proto, že pak může programovat každý, kdo se trefí do klávesnice a workload se přenese na stranu uživatele, protože z cizího krev neteče.

Například minifikovaná verze Bootstrapu (který považuju za jeden z těch příčetnějších) má 138 kB CSS a 50 kB JS. Takže máte 188 kB kódu, který už musí prohlížeč zpracovat, a ještě nemáte jedinou řádku toho, jak má webová aplikace vypadat nebo co má dělat. Aplikace našeho manažeru VM má 103 kB kódu. Neminifikovaného. Včetně serverové části v pythonu. No a k tomu, aby aplikace vůbec mohla něco dělat moderní frontenďák použije další frameworky. Já skončil u jQuery a dál to nesleduju, ale myslím, že pořád ještě letí React a Angular. Tam se velikosti nebo náročnosti nedají vyčíslit, protože závisí na tom, co a jak se napíše, ale vím, že se není problém dostat třeba na 4 MB JavaScriptu, takže uživatel na pomalém připojení s pomalým počítačem pak pět minut civí do prázdna a čeká až se stránka zjeví. Tenhle systém používá třeba Mifos X, který na Vašem internetu přes poštovní holuby občas nebyl schopen načíst řetězce prostě proto, že to už nestihl.

Tím chci říct, že bych za každou cenu nelpěl na použití frameworku, pokud se bude jednat o rozhraní o pěti stránkách, kdy se stejně nejvíc práce bude odehrávat na straně serveru. I responzivní weby se dají dělat bez frameworků, když se chce. Viz třeba můj https://www.dasm.cz . Když se nechce, tak pak je to samozřejmě jednodušší a přenositelnější i s frameworkem, ale tím víc bude trpět uživatel a jeho browser.

Dále

  • funkčně rozlišené rozhraní admin / klienti

Co bude obsahovat rozhraní pro klienty? V současnosti máme "anonymizované" rozhraní bez ikonek a názvů, ale to předpokládám nebude setrvalý stav, protože název aplikace si každý může přečíst hned po prvním kliknutí. Pokud bude obsahovat totéž co strana portálu, která je viditelná adminovi, akorát bez jmen a hesel, pak se z hlediska aplikace jedná o tutéž stránku s pár podmínkami v kódu.

Se zbytkem bodů v zásadě problém nemám. Připadá mi, že hledíte hodně do budoucna, takže bych preferoval, abychom se tam dostali iterativním způsobem a přidávali a upravovali funkce dle skutečné potřeby a ne dle nějakých projektovaných cílů (YAGNI princip). Jak už jsem zmiňoval, nejsem frontenďák a drbání se s HTML a CSS nenávidím, protože jsem přesně na tomhle začínal a vím, že je to strašně nevděčná práce. Všechny ty zlepšováky a zjednodušováky přišly až když jsem se profesně posunul dál, takže teď už jen koukám ze strany správce serveru a chytám se za hlavu, když vidím, co mi to tam ti mladí instalujou za žrouty systémových prostředků. Takže budu určitě rád, když se nějaký nebožák bude trápit místo mě a na to co vyplodí jen hodím dva řádky svého pythonu a budu mít vystaráno.

Body - spolehlivý framework Bootstrap, nebo Zurb Foundation. (jinde např. Sahana je s ZF, ale může používat i BS) teoreticky aby se nemnožila zbytečně diverzita použitých FW - přiměřeně nízké nároky na provoz v browseru (paměť, CPU) se ve většině případů vylučují, alespoň dle mé definice přiměřeně nízkých nároků. Moderní webové frontendy se dělají tak, že se vezmou dvě supersportovní auta a z jednoho se použije levé přední kolo a z druhého klika u dveří. K tomu, aby to celé fungovalo ale musí být všechny součásti pořád pohromadě a spotřeba i nároky na údržbu jsou stejné, jako by byly při jejich zamýšleném užití. Dělá se to tak proto, že pak může programovat každý, kdo se trefí do klávesnice a workload se přenese na stranu uživatele, protože z cizího krev neteče. Například minifikovaná verze Bootstrapu (který považuju za jeden z těch příčetnějších) má 138 kB CSS a 50 kB JS. Takže máte 188 kB kódu, který už musí prohlížeč zpracovat, a ještě nemáte jedinou řádku toho, jak má webová aplikace vypadat nebo co má dělat. Aplikace našeho manažeru VM má 103 kB kódu. Neminifikovaného. Včetně serverové části v pythonu. No a k tomu, aby aplikace vůbec mohla něco dělat moderní frontenďák použije další frameworky. Já skončil u jQuery a dál to nesleduju, ale myslím, že pořád ještě letí React a Angular. Tam se velikosti nebo náročnosti nedají vyčíslit, protože závisí na tom, co a jak se napíše, ale vím, že se není problém dostat třeba na 4 MB JavaScriptu, takže uživatel na pomalém připojení s pomalým počítačem pak pět minut civí do prázdna a čeká až se stránka zjeví. Tenhle systém používá třeba Mifos X, který na Vašem internetu přes poštovní holuby občas nebyl schopen načíst řetězce prostě proto, že to už nestihl. Tím chci říct, že bych za každou cenu nelpěl na použití frameworku, pokud se bude jednat o rozhraní o pěti stránkách, kdy se stejně nejvíc práce bude odehrávat na straně serveru. I responzivní weby se dají dělat bez frameworků, když se chce. Viz třeba můj https://www.dasm.cz . Když se nechce, tak pak je to samozřejmě jednodušší a přenositelnější i s frameworkem, ale tím víc bude trpět uživatel a jeho browser. Dále - funkčně rozlišené rozhraní admin / klienti Co bude obsahovat rozhraní pro klienty? V současnosti máme "anonymizované" rozhraní bez ikonek a názvů, ale to předpokládám nebude setrvalý stav, protože název aplikace si každý může přečíst hned po prvním kliknutí. Pokud bude obsahovat totéž co strana portálu, která je viditelná adminovi, akorát bez jmen a hesel, pak se z hlediska aplikace jedná o tutéž stránku s pár podmínkami v kódu. Se zbytkem bodů v zásadě problém nemám. Připadá mi, že hledíte hodně do budoucna, takže bych preferoval, abychom se tam dostali iterativním způsobem a přidávali a upravovali funkce dle skutečné potřeby a ne dle nějakých projektovaných cílů ([YAGNI](https://en.wikipedia.org/wiki/You_aren't_gonna_need_it) princip). Jak už jsem zmiňoval, nejsem frontenďák a drbání se s HTML a CSS nenávidím, protože jsem přesně na tomhle začínal a vím, že je to strašně nevděčná práce. Všechny ty zlepšováky a zjednodušováky přišly až když jsem se profesně posunul dál, takže teď už jen koukám ze strany správce serveru a chytám se za hlavu, když vidím, co mi to tam ti mladí instalujou za žrouty systémových prostředků. Takže budu určitě rád, když se nějaký nebožák bude trápit místo mě a na to co vyplodí jen hodím dva řádky svého pythonu a budu mít vystaráno.
Podhorecky commented 2018-11-19 03:06:32 +01:00 (Migrated from git.spotter.cz)

Ok, s tim frameworkem jsem to možná nasadil příliš vysoko. Já tedy nemám znalost výroby současného frontendu, takže moje info končí u toho, že na vývoj designu je kdejaký nerd-tool nebo fw a 95% jsou strašné bizáry, které si někdo oblíbil a pak to zákazník musí trpět. Nikdo už design ručně nepíše.

Omlouvám se, ale moje zkušenost zadavatele je tak strašlivá, že to je asi znát. To si představte, jak máte v býv. zaměstnání za úkol zadat a dohlížet výrobu jednoduchého webshopu na 25 SW/HW produktů. Po pár iteracích zcela zbytečných výběrových řízení dojdete až k partičce nerdů, kteří šéfovi naslibují že jsou nejlepší, nejlevnější a prostě maj cool webik. Šéf je totiž drobný škudlil.

Když po celoročních projektových a vývojových nesmyslech začnou předvádět výsledky, tak se mi chce taky rozkousat klávesnice a nebo se teatrálně zabít. U téměř finální prezentace šéfovi ten webshop neumí kliknutím na tlačítko "koupit" udělat nákup! Nerd to před zraky ladí a zbytek svádí na laravel a jiné čerty. O designu nemluvě. Jako charakterově klidná povaha jsem duševně trpěl, protože hlasitě křičet na cizí lidi neumim. Jiný případ s podobnou katastrofou mě stál asi 40 tisíc jen za pokus o microsite. A pak jsem to odmítl abych nemusel kodera zabít, peníze zpět nedostal.

Ok ... zadání by asi mělo být bez přesných keywordů a jiných frameworků, ale strašně se mi svírá zadek.
Zadání dál můžu upravit

Ok, s tim frameworkem jsem to možná nasadil příliš vysoko. Já tedy nemám znalost výroby současného frontendu, takže moje info končí u toho, že na vývoj designu je kdejaký nerd-tool nebo fw a 95% jsou strašné bizáry, které si někdo oblíbil a pak to zákazník musí trpět. Nikdo už design ručně nepíše. Omlouvám se, ale moje zkušenost zadavatele je tak strašlivá, že to je asi znát. To si představte, jak máte v býv. zaměstnání za úkol zadat a dohlížet výrobu jednoduchého webshopu na 25 SW/HW produktů. Po pár iteracích zcela zbytečných výběrových řízení dojdete až k partičce nerdů, kteří šéfovi naslibují že jsou nejlepší, nejlevnější a prostě maj cool webik. Šéf je totiž drobný škudlil. Když po celoročních projektových a vývojových nesmyslech začnou předvádět výsledky, tak se mi chce taky rozkousat klávesnice a nebo se teatrálně zabít. U téměř finální prezentace šéfovi ten webshop neumí kliknutím na tlačítko "koupit" udělat nákup! Nerd to před zraky ladí a zbytek svádí na laravel a jiné čerty. O designu nemluvě. Jako charakterově klidná povaha jsem duševně trpěl, protože hlasitě křičet na cizí lidi neumim. Jiný případ s podobnou katastrofou mě stál asi 40 tisíc jen za pokus o microsite. A pak jsem to odmítl abych nemusel kodera zabít, peníze zpět nedostal. Ok ... zadání by asi mělo být bez přesných keywordů a jiných frameworků, ale strašně se mi svírá zadek. Zadání dál můžu upravit
Podhorecky commented 2018-12-13 20:25:20 +01:00 (Migrated from git.spotter.cz)

něco, co se mi na první pohled líbí jako frontend je třeba https://www.anaconda.com/distribution/
Anaconda Navigator. Ještě jsem nezkoumal co všechno to v rámci projektu Anaconda umí, ale obecně to je cesta někudy tudy.

anaconda_navigator

Github mají https://github.com/ContinuumIO

něco, co se mi na první pohled líbí jako frontend je třeba https://www.anaconda.com/distribution/ Anaconda Navigator. Ještě jsem nezkoumal co všechno to v rámci projektu Anaconda umí, ale obecně to je cesta někudy tudy. ![anaconda_navigator](/uploads/0c4d97653404bb16c483e0f3df20d357/anaconda_navigator.png) Github mají https://github.com/ContinuumIO
Podhorecky commented 2018-12-14 12:01:28 +01:00 (Migrated from git.spotter.cz)

Po chvíli zkoumání musim říct, že tohleto Anaconda je cosi velmi vymakaného pro to, co tím chtějí dosáhnout. Rozběhla se mi fantazie o naší VM, ale zase vím, že nejsem Ročild.

Až budete mít chvíli, můžete se prosím na to podívat odbornějším a střízlivějším okem, posoudit a říct jestli se z tohohle konceptu dá něco odkoukat, něco naučit a něco podobně realizovat? Samozřejmě že v našem případě jde o celé aplikace, nejen o jednotlivé knihovny.

Po chvíli zkoumání musim říct, že tohleto **Anaconda** je cosi velmi vymakaného pro to, co tím chtějí dosáhnout. Rozběhla se mi fantazie o naší VM, ale zase vím, že nejsem Ročild. Až budete mít chvíli, můžete se prosím na to podívat odbornějším a střízlivějším okem, posoudit a říct jestli se z tohohle konceptu dá něco odkoukat, něco naučit a něco podobně realizovat? Samozřejmě že v našem případě jde o celé aplikace, nejen o jednotlivé knihovny.
Podhorecky commented 2018-12-14 12:01:35 +01:00 (Migrated from git.spotter.cz)

assigned to @Disassembler

assigned to @Disassembler
Disassembler commented 2018-12-14 17:04:56 +01:00 (Migrated from git.spotter.cz)

posoudit a říct jestli se z tohohle konceptu dá něco odkoukat, něco naučit a něco podobně realizovat

Tak určitě. Dá se z toho třeba naučit, že bude lepší se na to vykašlat a začít místo toho třeba sázet stromky nebo včelařit. Technologicky to zaštiťuje 17 lidí, vyvíjí to minimálně 6 let, cílí to na dvě konkrétní platfomy (Python a R) místo našich pěti a mají krásných 10392 issues pro rozhraní jako celek a dalších 5932 pro balíčkovací systém samotný, z čehož je drtivá většina otevřená kvůli nekompatibilitě komponent. Jestli mi tohle nemá způsobit depresi, tak pak už nevím co.

Co se týče pouze frontendu, tak ten je vcelku příjemný. U nás IMHO nedává moc smysl mít volitelné jednotlivé komponenty, protože aplikace je buď vyžaduje a pak nainstalovány prostě být musí anebo je nevyžaduje a pak nejsou pro uživatele ničím užitečné, nicméně mohlo by být vidět, že tam třeba jsou, už jen proto, že bude jasnější, co se kde instaluje a aktualizuje. Dále bych viděl zásadní rozdíl v tom, že Anaconda launcher a všechno co řídí a dělá, jsou desktopové aplikace, kdežto my řešíme server. Anacondu tak nezajímá jestli nějaká aplikace běží nebo neběží - prostě tady tím čudlíkem se spustí, otevře se nové okno a to si uživatel pak sám zase zavře. V lepším případě to skutečně zavře celou aplikaci, v horším pak zůstane běžet nějaká serverová část bez možnosti ji zastavit.

Ty karty aplikací ale mají něco do sebe. Nejsem asi úplně nadšen z toho, že se mi míchají nainstalované a nenainstlované aplikace, ale to u nás zatím máme taky a to se dá vyřešit nějakým filtrovacím zašktrávátkem nebo dropdownem. Anacondí karta pak má jedno velké tlusté tlačítko s očekávanou akcí (u nás by to byl install / start / stop) a vše ostatní je schováno pod ozubeným kolečkem. U nás bych si dovedl představit vedle kolečka ještě nějaký otazníček, kde by bylo vidět číslo verze, licence a třeba jaké datové formáty to žere nebo tak něco, jako jsme probírali u metadat v Spotter-Cluster/Spotter-Cluster#305.

Naopak jako nedostatek, který narozdíl od Anacondy máme vyřešený, vidím to, že nevidím co se děje, kolik se toho ještě bude dít a jak daleko v dění to je. Dole se mi sice píše, že se něco instaluje, ale nevím, jestli budu moci aplikaci použít za deset vteřin anebo až pozítří. Pak jsem šel do kolen, když mi v dokumentaci bylo oznámeno, že jako absolutní minimum pro instalaci pouze samotného balíčkovacího systému potřebuji pouhých 400 MB. Tolik to přece nemůže mít ani kdyby to neurálními sítěmi predikovalo, co budete chtít spustit nebo nainstalovat.

tl;dr: Balíčkovací systém samotný pro naše účely nepoužitelný, ale funkcemi a vzhledem frontendu se dá inspirovat.

> posoudit a říct jestli se z tohohle konceptu dá něco odkoukat, něco naučit a něco podobně realizovat Tak určitě. Dá se z toho třeba naučit, že bude lepší se na to vykašlat a začít místo toho třeba sázet stromky nebo včelařit. Technologicky to zaštiťuje 17 lidí, vyvíjí to minimálně 6 let, cílí to na dvě konkrétní platfomy (Python a R) místo našich pěti a mají krásných 10392 issues pro rozhraní jako celek a dalších 5932 pro balíčkovací systém samotný, z čehož je drtivá většina otevřená kvůli nekompatibilitě komponent. Jestli mi tohle nemá způsobit depresi, tak pak už nevím co. Co se týče pouze frontendu, tak ten je vcelku příjemný. U nás IMHO nedává moc smysl mít volitelné jednotlivé komponenty, protože aplikace je buď vyžaduje a pak nainstalovány prostě být musí anebo je nevyžaduje a pak nejsou pro uživatele ničím užitečné, nicméně mohlo by být vidět, že tam třeba jsou, už jen proto, že bude jasnější, co se kde instaluje a aktualizuje. Dále bych viděl zásadní rozdíl v tom, že Anaconda launcher a všechno co řídí a dělá, jsou desktopové aplikace, kdežto my řešíme server. Anacondu tak nezajímá jestli nějaká aplikace běží nebo neběží - prostě tady tím čudlíkem se spustí, otevře se nové okno a to si uživatel pak sám zase zavře. V lepším případě to skutečně zavře celou aplikaci, v horším pak zůstane běžet nějaká serverová část bez možnosti ji zastavit. Ty karty aplikací ale mají něco do sebe. Nejsem asi úplně nadšen z toho, že se mi míchají nainstalované a nenainstlované aplikace, ale to u nás zatím máme taky a to se dá vyřešit nějakým filtrovacím zašktrávátkem nebo dropdownem. Anacondí karta pak má jedno velké tlusté tlačítko s očekávanou akcí (u nás by to byl install / start / stop) a vše ostatní je schováno pod ozubeným kolečkem. U nás bych si dovedl představit vedle kolečka ještě nějaký otazníček, kde by bylo vidět číslo verze, licence a třeba jaké datové formáty to žere nebo tak něco, jako jsme probírali u metadat v https://git.spotter.cz/Spotter-Cluster/Spotter-Cluster/issues/305. Naopak jako nedostatek, který narozdíl od Anacondy máme vyřešený, vidím to, že nevidím co se děje, kolik se toho ještě bude dít a jak daleko v dění to je. Dole se mi sice píše, že se něco instaluje, ale nevím, jestli budu moci aplikaci použít za deset vteřin anebo až pozítří. Pak jsem šel do kolen, když mi v [dokumentaci](https://conda.io/docs/user-guide/install/index.html) bylo oznámeno, že jako absolutní minimum pro instalaci pouze samotného balíčkovacího systému potřebuji pouhých 400 MB. Tolik to přece nemůže mít ani kdyby to neurálními sítěmi predikovalo, co budete chtít spustit nebo nainstalovat. **tl;dr:** Balíčkovací systém samotný pro naše účely nepoužitelný, ale funkcemi a vzhledem frontendu se dá inspirovat.
Podhorecky commented 2018-12-14 23:48:54 +01:00 (Migrated from git.spotter.cz)

Děkuji... jojo, vidím že mají velký tým. Nelze srovnávat.

S tím interface souhlasím.
Jedno ale nevím a možná odpověď přijde později. Pokud bych chtěl usnadnit vznik našeho frontendu a zároveň trochu myslet i na budoucnost, která cesta je vhodnější? Použít a adaptovat něco hotového jako toto, nebo raději od nuly vyrobit vlastní frontend?
Mam sice "luxus" rozhodnutí, ale nakonec jsou mým limitujícím faktorem čas a lidi... takže zatím nevím.

Děkuji... jojo, vidím že mají velký tým. Nelze srovnávat. S tím interface souhlasím. Jedno ale nevím a možná odpověď přijde později. Pokud bych chtěl usnadnit vznik našeho frontendu a zároveň trochu myslet i na budoucnost, která cesta je vhodnější? Použít a adaptovat něco hotového jako toto, nebo raději od nuly vyrobit vlastní frontend? Mam sice "luxus" rozhodnutí, ale nakonec jsou mým limitujícím faktorem čas a lidi... takže zatím nevím.
Disassembler commented 2018-12-15 02:54:45 +01:00 (Migrated from git.spotter.cz)

Tak ještě jednou a pomalu. Je to desktopová aplikace. Takže buďto musíme zahodit všechen náš kód a začít od nuly s nějakým linuxem použitelným na desktopu (asi Ubuntu) a pak můžeme použít jejich frontend... anebo budeme chtít zůstat u toho, že je to minimalistický server a pak musíme pracovat s tím, co již máme nebo s úplně jiným řešením které má webové rozhraní. Adaptace toho jejich nepřichází v úvahu z velmi prostého důvodu - Licence: Proprietární, Zdrojové kódy: neexistující. Ona je totiž pod BSD licencí vydávána jen ta distribuce Anaconda, která má v EULA kouzelnou větičku

Any binary packages of these third party tools you obtain via Anaconda Distribution are subject to their individual licenses as well as the Anaconda license.

Historicky tam býval i jiný frontend - Anaconda Launcher, ale k tomu se mi také nepodařilo najít kódy. To je také důvod proč se issue reportují v repu anaconda-issues, které neobsahuje žádný kód. Open source my ass.

Jinak se Vám samozřejmě nesnažím bránit ve výběru technologií, ale počítejte s tím, že má mentální kapacita je omezená, takže čím víc pro mne neznámých věcí vyberete, tím méně Vám s nimi budu schopen pomoci. Chápu, že 6 milionů židů uživatelů je úctyhodné číslo, takže platforma to bude nejspíše prověřená, ale k úplně jiným účelům a za úplně jiných podmínek.

Tak ještě jednou a pomalu. Je to **desktopová** aplikace. Takže buďto musíme zahodit všechen *náš* kód a začít od nuly s nějakým linuxem použitelným na desktopu (asi Ubuntu) a pak můžeme použít *jejich* frontend... anebo budeme chtít zůstat u toho, že je to minimalistický server a pak musíme pracovat s tím, co již máme nebo s úplně jiným řešením které má webové rozhraní. Adaptace toho jejich nepřichází v úvahu z velmi prostého důvodu - [Licence: Proprietární, Zdrojové kódy: neexistující](https://anaconda.org/anaconda/anaconda-navigator). Ona je totiž pod BSD licencí vydávána jen ta *distribuce* Anaconda, která má v [EULA](https://docs.anaconda.com/anaconda/eula/) kouzelnou větičku > Any binary packages of these third party tools you obtain via Anaconda Distribution are subject to their individual licenses as well as the Anaconda license. Historicky tam býval i jiný frontend - [Anaconda Launcher](https://docs.anaconda.com/anaconda-launcher/), ale k tomu se mi také nepodařilo najít kódy. To je také důvod proč se issue reportují v repu [anaconda-issues](https://github.com/ContinuumIO/anaconda-issues), které neobsahuje žádný kód. Open source my ass. Jinak se Vám samozřejmě nesnažím bránit ve výběru technologií, ale počítejte s tím, že má mentální kapacita je omezená, takže čím víc pro mne neznámých věcí vyberete, tím méně Vám s nimi budu schopen pomoci. Chápu, že 6 milionů ~~židů~~ uživatelů je úctyhodné číslo, takže platforma to bude nejspíše prověřená, ale k úplně jiným účelům a za úplně jiných podmínek.
Podhorecky commented 2018-12-15 11:14:41 +01:00 (Migrated from git.spotter.cz)

aha, pardon... Samozřejmě, že teď už rozdíl vidím i napsaný. Pro mne je zpočátku vždycky špatně rozeznatelné co prezentují. A tak dotaz byl i obecnější. Nechci měnit zadání.

Když se snažím něco najít, tak nehledám podle "největší známosti těch aplikací" ale hledám z druhého konce, tj. podle hotových případových studií, častokrát na nějakých univerzitních projektech, kde jsou zmíněny zdroje. A tak jsem se dočetl z úplně u jiné stránky, že "projekt byl kompletně postaven na nejlepším vědeckém FOSS evr Anaconda blablabla... Hm. Tyhlety cool názvy jako Python, Anaconda ...hledat fulltextově bez kontextu, to bych taky mohl strávit mládí v zoo pavilonu plazů. Inu, angličtina.

Pak jsem vlez na web https://opensource.com/article/18/4/getting-started-anaconda-python
kde mě zas přesvědčovali o tom, že

Výstřižek
(no jasně... trestuhodné zjednodušení)

a tak po zkoumání webu Anaconda jsem pojal podezření, že mají nějako formu modelu free sw + vlastní sw a služby za peníze, což je někdy strašně složité rozeznat, protože pochopitelně tvůrci vždy nejvíc promují tu placenou variantu. A to že je skutečně něco s otevřenými zdroji pak jen tak prohodí mikropísmem v poslední kapitole dokumentace. Zde zjevně ne.

Také jsem ještě hledal free alternativy k balíčkovacím vehementům, hlavně kvůli GUI. Abych viděl, jestli je nějaký už časem / vlastnostmi prověřený. Abych znovu nevynalézal vynalezené... ale tam jsem brzy skončil s nabídkou, google samože vrací vždy ty provařené komerční sw které si zaplatili pozici ve vyhledávači. Stránky jako Quora nebo jiné žebříčky pak nažvaní kdeco, ale to by u toho člověk zestárl, protože většina z nich směřuje k jiným cílům než hledám.

Takže se ptám na ufo věci, ale já předem nevím, že to jsou ufo věci. Když se na to nezeptám, nikdy se nedozvím, že jsem se zeptal blbě. Vy často nabídnete jiný sw, o kterém jsem v životě nezaslechl, protože nemám zkušenost a proto jsem s ním taky v koncích. A to nepopírám, já ho jen neznám o nic víc, než moje ufo. :(
Proto máte nakonec důležité slovo ve výběru a já jen nadhazuju pitomé dotazy. Omlouvám se.

aha, pardon... Samozřejmě, že teď už rozdíl vidím i napsaný. Pro mne je zpočátku vždycky špatně rozeznatelné co prezentují. A tak dotaz byl i obecnější. Nechci měnit zadání. Když se snažím něco najít, tak nehledám podle "největší známosti těch aplikací" ale hledám z druhého konce, tj. podle hotových případových studií, častokrát na nějakých univerzitních projektech, kde jsou zmíněny zdroje. A tak jsem se dočetl z úplně u jiné stránky, že "projekt byl kompletně postaven na nejlepším vědeckém FOSS evr Anaconda blablabla... Hm. Tyhlety cool názvy jako Python, Anaconda ...hledat fulltextově bez kontextu, to bych taky mohl strávit mládí v zoo pavilonu plazů. Inu, angličtina. <br> Pak jsem vlez na web https://opensource.com/article/18/4/getting-started-anaconda-python kde mě zas přesvědčovali o tom, že ![Výstřižek](/uploads/96c8d3d8b3dda1805a1e88d2690617ac/Výstřižek.PNG) (no jasně... trestuhodné zjednodušení) a tak po zkoumání webu Anaconda jsem pojal podezření, že mají nějako formu modelu free sw + vlastní sw a služby za peníze, což je někdy strašně složité rozeznat, protože pochopitelně tvůrci vždy nejvíc promují tu placenou variantu. A to že je skutečně něco s otevřenými zdroji pak jen tak prohodí mikropísmem v poslední kapitole dokumentace. Zde zjevně ne. Také jsem ještě hledal free alternativy k balíčkovacím vehementům, hlavně kvůli GUI. Abych viděl, jestli je nějaký už časem / vlastnostmi prověřený. Abych znovu nevynalézal vynalezené... ale tam jsem brzy skončil s nabídkou, google samože vrací vždy ty provařené komerční sw které si zaplatili pozici ve vyhledávači. Stránky jako Quora nebo jiné žebříčky pak nažvaní kdeco, ale to by u toho člověk zestárl, protože většina z nich směřuje k jiným cílům než hledám. Takže se ptám na ufo věci, ale já předem nevím, že to jsou ufo věci. Když se na to nezeptám, nikdy se nedozvím, že jsem se zeptal blbě. Vy často nabídnete jiný sw, o kterém jsem v životě nezaslechl, protože nemám zkušenost a proto jsem s ním taky v koncích. A to nepopírám, já ho jen neznám o nic víc, než moje ufo. :( Proto máte nakonec důležité slovo ve výběru a já jen nadhazuju pitomé dotazy. Omlouvám se.
Disassembler commented 2018-12-17 10:09:12 +01:00 (Migrated from git.spotter.cz)

Asi by v téhle diskusi stálo ještě za to vypíchnout, že balíčkovací manažer a jeho frontend spolu nemusí mít vůbec nic společného a zpravidla ani nemají. V případě Anacody je použit manažer conda, ten má nějaké API a na něj se dá vyrobit jakékoliv GUI (jakým je třeba Anaconda Navigator), které pak volá funkce manažeru a tahá z něj data.

Abychom se míň nadřeli, můžeme použít jakýkoliv balíčkovací manažer, který zrovna poběží okolo. Na Alpine máme systémový APK. Problém ale je, že ne všechny manažery podporují featury, které bychom potřebovali. Důvody, proč nepoužíváme třeba zrovna APK jsou:

  • Nepodporuje vlasntní metadata. Museli bychom řešit nějakým custom souborem.
  • Instaluje způsobem rozbalit -> spustit post-install skript -> opravit oprávnění rozbalených souborů. To znamená, že v post-install skriptu nemůžeme se soubory manipulovat, což často potřebujeme.
  • Drží si databázi hashů a oprávnění souborů nainstalovaných balíků. V případě, kdy je balíkem celý kontejner, je těch souborů obrovská hromada a použití balíkovacího systému se stává pomalým.
  • Používá ke kompresi gzip. Ten je sice rychlejší než námi používaný xz, ale má horší kompresní poměr. V některých případech jsou balíky o desítky procent větší.
  • Nepodporuje autentizaci. Nemůžeme tedy mít repozitář chráněný uživatelským jménem a heslem.
  • Stahuje balíky přeš HTTP místo HTTPS (tohle bohužel stále dělá i hromada jiných systémů).

Samozřejmě použití existujícího balíkovacího systému má i svá pozitiva - nemusíme ručně implementovat spoustu věcí jako třeba řešení závislostí, stahování a jejich následné ověřování atd. Způsoby jak využít existující balíčkovací manažery se najít dají, ale pochybuji o tom, že se dá najít nějaký, který naším potřebám vyhoví rovnou. Naše balíčky navíc nejsou úplně typické jako ty, které řeší APK nebo conda, takže některé featury jsou pro nás naopak na škodu. My prostě potřebujeme dostat hromadu souborů do VM a pak akorát nějakým způsobem vědět, jestli tam jsou nebo ne a jen pro nedostatek výrazů tomu říkáme balíčkovací manažer.

Tohle issue je o frontendu. Co se frontendu týče, dovedu si představit, že jeden frontend bude použitelný na více různých backendů jen s minimálními modifikacemi. Jde jen o to, navázat na data, která manažer poskytuje. Pokud tedy náš baličkovací manažer a jeho API důkladně zdokumentuji, frontendař bude moci vyrobit jakékoliv GUI, aniž by musel detailně vědět, jak manažer vlastně funguje. Prostě tenhle čudlik bude volat funkci install se jménem balíku jako parametrem a jestli to bude instalovat APK, rpm, conda, dkpg nebo někdo úplně jiný už není jeho starost. Takový hotový projekt ale nenajdete, protože i přesto, že webových xichtů pro balíčkovací manažery existuje hromada v různých NASech, routerech, IoT a jiných zařízench, každé je implementováno tak, aby vyhovělo danému ekosystému. Takže nám nezbývá než udělat to samé, protože hotové řešení bychom museli upravit do takové míry, že by to vyšlo na stejno.

Asi by v téhle diskusi stálo ještě za to vypíchnout, že balíčkovací manažer a jeho frontend spolu nemusí mít vůbec nic společného a zpravidla ani nemají. V případě Anacody je použit manažer *conda*, ten má nějaké API a na něj se dá vyrobit jakékoliv GUI (jakým je třeba Anaconda Navigator), které pak volá funkce manažeru a tahá z něj data. Abychom se míň nadřeli, můžeme použít jakýkoliv balíčkovací manažer, který zrovna poběží okolo. Na Alpine máme systémový APK. Problém ale je, že ne všechny manažery podporují featury, které bychom potřebovali. Důvody, proč nepoužíváme třeba zrovna APK jsou: - Nepodporuje vlasntní metadata. Museli bychom řešit nějakým custom souborem. - Instaluje způsobem rozbalit -> spustit post-install skript -> opravit oprávnění rozbalených souborů. To znamená, že v post-install skriptu nemůžeme se soubory manipulovat, což často potřebujeme. - Drží si databázi hashů a oprávnění souborů nainstalovaných balíků. V případě, kdy je balíkem celý kontejner, je těch souborů obrovská hromada a použití balíkovacího systému se stává pomalým. - Používá ke kompresi gzip. Ten je sice rychlejší než námi používaný xz, ale má horší kompresní poměr. V některých případech jsou balíky o desítky procent větší. - Nepodporuje autentizaci. Nemůžeme tedy mít repozitář chráněný uživatelským jménem a heslem. - Stahuje balíky přeš HTTP místo HTTPS (tohle bohužel stále dělá i hromada jiných systémů). Samozřejmě použití existujícího balíkovacího systému má i svá pozitiva - nemusíme ručně implementovat spoustu věcí jako třeba řešení závislostí, stahování a jejich následné ověřování atd. Způsoby jak využít existující balíčkovací manažery se najít dají, ale pochybuji o tom, že se dá najít nějaký, který naším potřebám vyhoví rovnou. Naše balíčky navíc nejsou úplně typické jako ty, které řeší APK nebo conda, takže některé featury jsou pro nás naopak na škodu. My prostě potřebujeme dostat hromadu souborů do VM a pak akorát nějakým způsobem vědět, jestli tam jsou nebo ne a jen pro nedostatek výrazů tomu říkáme *balíčkovací manažer*. Tohle issue je o frontendu. Co se frontendu týče, dovedu si představit, že jeden frontend bude použitelný na více různých backendů jen s minimálními modifikacemi. Jde jen o to, navázat na data, která manažer poskytuje. Pokud tedy náš baličkovací manažer a jeho API důkladně zdokumentuji, frontendař bude moci vyrobit jakékoliv GUI, aniž by musel detailně vědět, jak manažer vlastně funguje. Prostě tenhle čudlik bude volat funkci *install* se jménem balíku jako parametrem a jestli to bude instalovat APK, rpm, conda, dkpg nebo někdo úplně jiný už není jeho starost. Takový hotový projekt ale nenajdete, protože i přesto, že webových xichtů pro balíčkovací manažery existuje hromada v různých NASech, routerech, IoT a jiných zařízench, každé je implementováno tak, aby vyhovělo danému ekosystému. Takže nám nezbývá než udělat to samé, protože hotové řešení bychom museli upravit do takové míry, že by to vyšlo na stejno.
Podhorecky commented 2018-12-18 01:21:16 +01:00 (Migrated from git.spotter.cz)

Ok... co se týče vlastností, nemůžu rozporovat. Co se týče diskuse k frontendu, vyhovuje tedy, že tvorba rozhraní bude opravdu od začátku. A bude to tedy pokud možno dobře popsaná evoluce.
Náhodný objev nějakého cozího řešení nanejvýš pomůže v diskusi, která ještě nemusí být změnou zadání.

Ok... co se týče vlastností, nemůžu rozporovat. Co se týče diskuse k frontendu, vyhovuje tedy, že tvorba rozhraní bude opravdu od začátku. A bude to tedy pokud možno dobře popsaná evoluce. Náhodný objev nějakého cozího řešení nanejvýš pomůže v diskusi, která ještě nemusí být změnou zadání.
Disassembler commented 2018-12-19 13:35:48 +01:00 (Migrated from git.spotter.cz)

Ježišmarjááá. To si tak hraju s proxy serverem, že bych zkusil nějak tu podporu pro autentizaci u APK repozitářů odrbat. A nějak mi to funguje divně, tak koukám do zdrojových kódů... a vona tam podpora pro autentizaci i pro HTTPS normálně je. Akorát se to nikde nikdo neobtěžoval zdokumentovat nebo zmínit. Pláču.

Tím pádem tedy zkusím odrbat ještě i ty zbývající nedostatky. Mám k tomu nějaké nápady. Nebude to sice tak flexibilní jako vlastní řešení, které máme teď, ale rozhodně Vám dávám za pravdu v tom, že čím více ověřeného kódu a komponent pod správou někoho jiného máme, tím spíš se nám z toho podaří poskládat něco smysluplného bez znovuvynalézání kola.

Ježišmarjááá. To si tak hraju s proxy serverem, že bych zkusil nějak tu podporu pro autentizaci u APK repozitářů odrbat. A nějak mi to funguje divně, tak koukám do zdrojových kódů... a vona tam podpora pro autentizaci i pro HTTPS normálně je. Akorát se to nikde nikdo neobtěžoval zdokumentovat nebo zmínit. Pláču. Tím pádem tedy zkusím odrbat ještě i ty zbývající nedostatky. Mám k tomu nějaké nápady. Nebude to sice tak flexibilní jako vlastní řešení, které máme teď, ale rozhodně Vám dávám za pravdu v tom, že čím více ověřeného kódu a komponent pod správou někoho jiného máme, tím spíš se nám z toho podaří poskládat něco smysluplného bez znovuvynalézání kola.
Podhorecky commented 2018-12-26 00:06:10 +01:00 (Migrated from git.spotter.cz)

pro zajímavost hodím ještě odkaz na projekt senaite https://www.senaite.com který se také rozhodl jít cestou samostatné VM. v PDF dokumentaci mají ukázaný nějaký http://supervisord.org a další administrační tooly, nevím přesně, jestli neobsahuje nějakou zajímavou vlastnost pro náš případ.
Tento příspěvek není novým zadáním k čemukoliv. Jen sdílím pro případ, že by vás to zajímalo.

pro zajímavost hodím ještě odkaz na projekt senaite https://www.senaite.com který se také rozhodl jít cestou samostatné VM. v PDF dokumentaci mají ukázaný nějaký http://supervisord.org a další administrační tooly, nevím přesně, jestli neobsahuje nějakou zajímavou vlastnost pro náš případ. Tento příspěvek není novým zadáním k čemukoliv. Jen sdílím pro případ, že by vás to zajímalo.
Podhorecky commented 2018-12-26 17:57:58 +01:00 (Migrated from git.spotter.cz)

v souvislosti s tím jsem se chtěl zeptat, jak moc bude pod kontrolou logování z běhu jednotlivých aplikací, nebo dalších komponent VM. Rád bych, aby nedošlo k tomu, že mi pak někdo upozorní, že na jejich VM se množí gigabajty logů a jiných temp souborů, které se tam nějak cyklicky vytvořily a jenom jsme prostě nepočítali s tím, že se tak může stát.
Otázka tedy: Bylo by vhodné mít pro admina nějaký snadnější přístup k logům, případně jejich mazání?

Výstřižek

Týká se i pro nějaké těžko předvídatelné situace, když by něco zacyklilo nějaký proces a logy by to pořád dokola zapisovaly...

v souvislosti s tím jsem se chtěl zeptat, jak moc bude pod kontrolou logování z běhu jednotlivých aplikací, nebo dalších komponent VM. Rád bych, aby nedošlo k tomu, že mi pak někdo upozorní, že na jejich VM se množí gigabajty logů a jiných temp souborů, které se tam nějak cyklicky vytvořily a jenom jsme prostě nepočítali s tím, že se tak může stát. Otázka tedy: Bylo by vhodné mít pro admina nějaký snadnější přístup k logům, případně jejich mazání? ![Výstřižek](/uploads/cf9a47d038d3c9ca9ece13d9e9b83343/Výstřižek.PNG) Týká se i pro nějaké těžko předvídatelné situace, když by něco zacyklilo nějaký proces a logy by to pořád dokola zapisovaly...
Disassembler commented 2018-12-26 19:11:54 +01:00 (Migrated from git.spotter.cz)

jak moc bude pod kontrolou logování z běhu jednotlivých aplikací

Logování stejně jako hromadu dalších věcí, které budou důležité až v daleké budoucnosti při ostrém běhu jsem zatím příliš neřešil, nicméně jsem je trochu nakousl, abychom je nemuseli horkou jehlo došívat na poslední chvíli. V současnosti jsou

  • LXC kontejnery jsou omezeny velikostí logu 2 MB na kontejner.
  • nginx je omezen na měsíc logů, přičemž rotuje po týdnu a staré logy komprimuje.
  • Syslog je omezen na 2x 200 kB.
  • Interní logy uvnitř kontejnerů jsem nezjišťoval. Pokud vůbec nějaké jsou, bude jich naprosté minimum a jsou mazány při každém restartu kontejneru. Ty ale ještě později pozjišťuju.

Otázka je spíš jak hluboce chceme administrátora pouštět k systémovým záležitostem. Přístup k logům virtualhostů nginxu a kontejnerů je jednoduše řešitelný, protože jednotlivé aplikace mají logy oddělené (skryl bych třeba pod ozubené kolečko ve frontendu). U ostatních logů záleží na očekávaných problémech. Syslog jsem snad použil jen jednou k nahlédnutí na chyby při odesílání mailů, takže bych se nebál jej před světem zamlčet.

pro zajímavost hodím ještě odkaz na projekt senaite

Takových projektů existuje hromada. Nejznámějším je pravděpodobně Webmin, ale jsou v drtivé většině určeny pro úplnou správu OS a služeb, což je přesně to, co my nechceme. My potřebujeme zajistit, aby na úrovni OS existovala co nejmenší nutnost zásahu (to se nám daří jednoduše tím, že náš OS vlastně vůbec nic neumí, takže tam není co by se rozbilo :) ) a chceme odstínit administrátora od zaklínadel nutných pro správu linuxu. Převedu-li to do řeči cloudu, naše VM by měla poskytovat Software as a Service s tím, že zveřejněné zdrojové kódy mohou umožňovat i sestavení pro Platform as a Service. Nástroje jako WebMin nebo Senaite jsou ale všechny určeny pro tu nejnižší úroveň Infrastructure as a Service, kdy si klikáte záležitosti přímo na úrovni OS, storage a sítě. Samozřejmě se ale některými funkcemi můžeme inspirovat.

> jak moc bude pod kontrolou logování z běhu jednotlivých aplikací Logování stejně jako hromadu dalších věcí, které budou důležité až v daleké budoucnosti při ostrém běhu jsem zatím příliš neřešil, nicméně jsem je trochu nakousl, abychom je nemuseli horkou jehlo došívat na poslední chvíli. V současnosti jsou - LXC kontejnery jsou omezeny velikostí logu 2 MB na kontejner. - nginx je omezen na měsíc logů, přičemž rotuje po týdnu a staré logy komprimuje. - Syslog je omezen na 2x 200 kB. - Interní logy uvnitř kontejnerů jsem nezjišťoval. Pokud vůbec nějaké jsou, bude jich naprosté minimum a jsou mazány při každém restartu kontejneru. Ty ale ještě později pozjišťuju. Otázka je spíš jak hluboce chceme administrátora pouštět k systémovým záležitostem. Přístup k logům virtualhostů nginxu a kontejnerů je jednoduše řešitelný, protože jednotlivé aplikace mají logy oddělené (skryl bych třeba pod ozubené kolečko ve frontendu). U ostatních logů záleží na očekávaných problémech. Syslog jsem snad použil jen jednou k nahlédnutí na chyby při odesílání mailů, takže bych se nebál jej před světem zamlčet. > pro zajímavost hodím ještě odkaz na projekt senaite Takových projektů existuje hromada. Nejznámějším je pravděpodobně [Webmin](http://www.webmin.com/), ale jsou v drtivé většině určeny pro úplnou správu OS a služeb, což je přesně to, co my nechceme. My potřebujeme zajistit, aby na úrovni OS existovala co nejmenší nutnost zásahu (to se nám daří jednoduše tím, že náš OS vlastně vůbec nic neumí, takže tam není co by se rozbilo :) ) a chceme odstínit administrátora od zaklínadel nutných pro správu linuxu. Převedu-li to do řeči cloudu, naše VM by měla poskytovat *Software as a Service* s tím, že zveřejněné zdrojové kódy mohou umožňovat i sestavení pro *Platform as a Service*. Nástroje jako WebMin nebo Senaite jsou ale všechny určeny pro tu nejnižší úroveň *Infrastructure as a Service*, kdy si klikáte záležitosti přímo na úrovni OS, storage a sítě. Samozřejmě se ale některými funkcemi můžeme inspirovat.
Podhorecky commented 2018-12-26 19:54:50 +01:00 (Migrated from git.spotter.cz)

ok, odpověď zatím takto vyhovuje, díky. Řešme to hlavně tak, aby to bylo pro nás dostatečně blbovzdorné, tj. pokud možno bezúdržbové. V budoucnosti se to případně dá vylepšit pro cílové uživatele, ale jak říkáte... čím jednodušší to bude, tím lepší. (na webmin jsem nedávno koukal, zde chápu že to nepotřebujeme)

ok, odpověď zatím takto vyhovuje, díky. Řešme to hlavně tak, aby to bylo pro nás dostatečně blbovzdorné, tj. pokud možno bezúdržbové. V budoucnosti se to případně dá vylepšit pro cílové uživatele, ale jak říkáte... čím jednodušší to bude, tím lepší. (na webmin jsem nedávno koukal, zde chápu že to nepotřebujeme)
Disassembler commented 2018-12-29 18:36:02 +01:00 (Migrated from git.spotter.cz)

mentioned in issue Spotter-Cluster#311

mentioned in issue Spotter-Cluster#311
Podhorecky commented 2019-03-14 23:55:47 +01:00 (Migrated from git.spotter.cz)

Další "příbuzné" řešení pro management softwaru je BIBBOX http://bibbox.bbmri-eric.eu/ v této úpravě

screen-01

soustřeďuje se na bioinformatics software.

na screenu vlevo jsou vidět tagy, které popisují typy softwaru. Může být zajímavé při větším počtu SW. Dokumentace: https://bibbox.readthedocs.io/en/latest/

do rodiny epidemiologických SW patří např. i skupina SW OBiBa https://www.obiba.org/

Další "příbuzné" řešení pro management softwaru je BIBBOX http://bibbox.bbmri-eric.eu/ v této úpravě ![screen-01](/uploads/6047fafac9179d40304aa7ca39727a31/screen-01.png) soustřeďuje se na bioinformatics software. na screenu vlevo jsou vidět tagy, které popisují typy softwaru. Může být zajímavé při větším počtu SW. Dokumentace: https://bibbox.readthedocs.io/en/latest/ do rodiny epidemiologických SW patří např. i skupina SW OBiBa https://www.obiba.org/
Disassembler commented 2019-03-15 07:40:37 +01:00 (Migrated from git.spotter.cz)

Mám při procházení té jejich dokumentace silný pocit Déjà vu. Některé designové prvky jsou naprosto identické s našimi (přísahám, že jsem o existenci BIBBOXu dosud netušil), například na této stránce

  • Metadata aplikace jsou v JSONU s názvem appinfo.json. Naše metadata jsou v JSONu s názvem meta a prakticky totožnou strukturou, s drobně odlišnými názvy klíčů.
  • Všechny názvy balíčků aplikací začínají řetězcem app-. Všechny naše balíčky začínají řetězcem vm-, protože app- jsem si původně vyhradil pro nativní aplikace instalované přímo na hostiteli.
  • Aplikace jsou kontejnerované v Dockeru. Naše používaly taky Docker, než jsme ořezáváním tlustého došli k LXC kontejnerům.
  • A to GUI vypadá přesně tak, jak jej nosím v hlavě. Obzvlášť ty karty s ovládacími prvky tady.

Jediný zásadní rozdíl vidím v tom, že BIBBOX je z uživatelského hlediska méně blbuzvdorný, ale u toho samozřejmě záleží na zkušenostech deployera. A taky rozhodně ani v nejmenším není minimalistický. Staví na plném (a zastaralém) Ubuntu 14.04 a celá ta paráda běží nad Javou (Liferay portal), skládá si statické assety pomocí Node.js a vůbec je to moloch. Pokud byste o BIBBOXu věděl dříve a narazil na nějakého normálního sysadmina místo toho minimalismem posedlého idiota, co máte teď, velmi pravděpodobně by Vaše VM na BIBBOXu jela. I tak ale tuším, že se nám stane silnou inspirací.

Mám při procházení té jejich dokumentace silný pocit Déjà vu. Některé designové prvky jsou naprosto identické s našimi (přísahám, že jsem o existenci BIBBOXu dosud netušil), například na [této stránce](https://bibbox.readthedocs.io/en/latest/app-creators-manual/) - Metadata aplikace jsou v JSONU s názvem `appinfo.json`. Naše metadata jsou v JSONu s názvem `meta` a prakticky totožnou strukturou, s drobně odlišnými názvy klíčů. - Všechny názvy balíčků aplikací začínají řetězcem `app-`. Všechny naše balíčky začínají řetězcem `vm-`, protože `app-` jsem si původně vyhradil pro nativní aplikace instalované přímo na hostiteli. - Aplikace jsou kontejnerované v Dockeru. Naše používaly taky Docker, než jsme *ořezáváním tlustého* došli k LXC kontejnerům. - A to GUI vypadá přesně tak, jak jej nosím v hlavě. Obzvlášť ty karty s ovládacími prvky [tady](https://bibbox.readthedocs.io/en/latest/images/install-app/screen-05.png). Jediný zásadní rozdíl vidím v tom, že BIBBOX je z uživatelského hlediska méně blbuzvdorný, ale u toho samozřejmě záleží na zkušenostech deployera. A taky rozhodně ani v nejmenším není minimalistický. Staví na plném (a zastaralém) Ubuntu 14.04 a celá ta paráda běží nad Javou (Liferay portal), skládá si statické assety pomocí Node.js a vůbec je to moloch. Pokud byste o BIBBOXu věděl dříve a narazil na nějakého normálního sysadmina místo toho minimalismem posedlého idiota, co máte teď, velmi pravděpodobně by Vaše VM na BIBBOXu jela. I tak ale tuším, že se nám stane silnou inspirací.
Podhorecky commented 2019-03-15 09:30:21 +01:00 (Migrated from git.spotter.cz)

ano, jsem taky rád, že naše řešení je lepší :) Díky! Jdeme dobrou cestou.

ano, jsem taky rád, že naše řešení je lepší :) Díky! Jdeme dobrou cestou.
Podhorecky commented 2019-03-19 02:12:54 +01:00 (Migrated from git.spotter.cz)

zkusil jsem si frontend na živém demu a je to téměř přesně, kam se chci dobrat. Drobnosti velkoryse přehlížím.

mají tam jednoduchou správu uživatelů, pro mne příjemné. Všechno mobile friendly + vyhledávání. přístupnost v GUI intuitivní, apps tříděné do skupin jako jsem to začal třídit ve wiki.

u těch app-balíčků vidím, že je jsou nasyslené na githubu (i jinde) a to by ve finále asi taky mohlo tak být. Kvuli místu, nebo dostupnosti...

Teď jen jak zařídit nejlepší cestu k cíli... Máme teď zajímavý vzor, který by mohl usnadnit práci. Jen nevím jak moc.

zkusil jsem si frontend na živém demu a je to téměř přesně, kam se chci dobrat. Drobnosti velkoryse přehlížím. mají tam jednoduchou správu uživatelů, pro mne příjemné. Všechno mobile friendly + vyhledávání. přístupnost v GUI intuitivní, apps tříděné do skupin jako jsem to začal třídit ve wiki. u těch app-balíčků vidím, že je jsou nasyslené na githubu (i jinde) a to by ve finále asi taky mohlo tak být. Kvuli místu, nebo dostupnosti... Teď jen jak zařídit nejlepší cestu k cíli... Máme teď zajímavý vzor, který by mohl usnadnit práci. Jen nevím jak moc.
Podhorecky commented 2019-03-19 14:49:39 +01:00 (Migrated from git.spotter.cz)

mentioned in issue Spotter-Cluster#337

mentioned in issue Spotter-Cluster#337
Podhorecky commented 2019-03-22 09:09:55 +01:00 (Migrated from git.spotter.cz)

Jen pro info: Senaite už jsem zmiňoval v komentáři výše, ...teď jsem k tomu našel nějaké praktické implementace na https://www.bikalims.org/ kde jsou i další varianty https://www.bikalims.org/demos a popis jak to funguje.

Je to postavené na CMS Plone a Baobab LIMS https://baobablims.org a dalších open-source SW.

Pro mne zde není co využít, ale naučil jsem se alespoň, že se tomu říká LIMS (laboratory information management system).
ještě žebříček konkurence https://medevel.com/top-10-foss-lims/

další terminus-technikus je Froid. Free Open Instrument Middleware

DuckDuckovat něco, co konečně vím jak se jmenuje - k nezaplacení!

Jen pro info: Senaite už jsem zmiňoval v komentáři výše, ...teď jsem k tomu našel nějaké praktické implementace na https://www.bikalims.org/ kde jsou i další varianty https://www.bikalims.org/demos a popis jak to funguje. Je to postavené na CMS Plone a Baobab LIMS https://baobablims.org a dalších open-source SW. Pro mne zde není co využít, ale naučil jsem se alespoň, že se tomu říká LIMS (laboratory information management system). ještě žebříček konkurence https://medevel.com/top-10-foss-lims/ další terminus-technikus je Froid. Free Open Instrument Middleware DuckDuckovat něco, co konečně vím jak se jmenuje - k nezaplacení!
Podhorecky commented 2019-09-28 02:42:36 +02:00 (Migrated from git.spotter.cz)

Jen pro info:

projekt https://www.freedombox.org/ má HW a SW vybavení pro autonomní provoz.
Po zalogování do demoverze https://www.freedombox.org/demo/ jsem viděl různé systemové služby co to umí. (uživatelských aplikací si nevšímám)
Netuším, zda by z toho mohlo být něco budoucí inspirací, nebo usnadněním. Vše se snaží být uživatelsky co nejjednodušší.

Určitě to není nijaké zadání k nové aktivitě. žádná změna projektu, žádná výzva k činnosti,... Jen cedím internety a odkládám na kdykoliv pozdější zájem.

Jen pro info: projekt https://www.freedombox.org/ má HW a SW vybavení pro autonomní provoz. Po zalogování do demoverze https://www.freedombox.org/demo/ jsem viděl různé **systemové služby** co to umí. (uživatelských aplikací si nevšímám) Netuším, zda by z toho mohlo být něco budoucí inspirací, nebo usnadněním. Vše se snaží být uživatelsky co nejjednodušší. **Určitě to není nijaké zadání k nové aktivitě. žádná změna projektu, žádná výzva k činnosti,... Jen cedím internety a odkládám na kdykoliv pozdější zájem.**
Podhorecky commented 2020-05-07 23:28:23 +02:00 (Migrated from git.spotter.cz)

pro info... projekt BBMRI-ERIC® Biobanks directory, který měl na svém webu Bibbox, tak už ho tam nemá. Dokumentaci https://bibbox.readthedocs.io/en/latest/ zatím ještě mají.

pro info... projekt BBMRI-ERIC® Biobanks directory, který měl na svém webu **Bibbox**, tak už ho tam nemá. Dokumentaci https://bibbox.readthedocs.io/en/latest/ zatím ještě mají.
Disassembler commented 2021-01-19 19:12:58 +01:00 (Migrated from git.spotter.cz)

Já si sem s dovolením pro úplnost ještě prásknu screenshot z DIALu (Spotter-Cluster#109), protože ten vypadá úplně nejblíž celé té mé představě o tom, jak by ten frontend mohl vypadat a fungovat.

image

Já si sem s dovolením pro úplnost ještě prásknu screenshot z DIALu (Spotter-Cluster#109), protože ten vypadá úplně nejblíž celé té mé představě o tom, jak by ten frontend mohl vypadat a fungovat. ![image](/uploads/379a22292c81c723040459df494dc582/image.png)
Podhorecky commented 2021-01-19 19:16:27 +01:00 (Migrated from git.spotter.cz)

jojo.. mají tam i takové opičárny jako https://registry.dial.community/productmap které jsem sice ani nechtěl, možná jen v nějakých divokých snech uvažoval. To jen tak na okraj.

jojo.. mají tam i takové opičárny jako https://registry.dial.community/productmap které jsem sice ani nechtěl, možná jen v nějakých divokých snech uvažoval. To jen tak na okraj.
Podhorecky commented 2021-01-19 21:30:04 +01:00 (Migrated from git.spotter.cz)

ostatně mají to GUI tady https://gitlab.com/dial/osc/eng/t4d-online-catalog/product-registry a dá se to i počeštit.

ostatně mají to GUI tady https://gitlab.com/dial/osc/eng/t4d-online-catalog/product-registry a dá se to i počeštit.
Disassembler commented 2021-01-20 08:35:32 +01:00 (Migrated from git.spotter.cz)

mentioned in issue Spotter-VM#498

mentioned in issue Spotter-VM#498
Podhorecky commented 2021-01-20 12:37:23 +01:00 (Migrated from git.spotter.cz)

uvažuji nahlas tuto "variantu": Při zadání výroby VMMgr zadat frontendistovi forknout projekt DIAL a přizpůsobit ho pro náš účel rozhraní. Co si od toho slibovat?

  • nevymýšlet zbytečně již vymyšlenou úpravu a funkčnost

  • doplnit funkčnost která je u nás navíc

  • doplnit vícejazyčné rozhraní. Oni ta mají podporu více jazyků, ale ještě nevim jak to je udělané, protože to viditelné není. Možná na tom zatím pracují. Tak ať to klidně dopracují.

  • ve vlastnostech toho rozhraní je nějaký proces "návrhu aplikace zalogovaným uživatelem a schvalování někým kdo je admin" Tohle ještě nevim jestli by bylo k něčemu dobré, ale možná že jo?

  • do DIAL site se mohou registrovat lidé, kteří patří pod již zaznamenanou aplikaci, kterou tam navrhl někdo jiný. Po nějakém schválení adminem pak může ten člověk popis aplikace upravit Tohle taky nevim jestli se mi to k něčemu hodí, ale chápu že na DIAL web se to hodí

  • admin zřejmě schvaluje uživatelům nějaké role, nebo vyšší kompetence. Asi k zapisování poznámek, nebo k úpravám v boxíku. Nevim, to jako uživatel nepoznám.

  • Další věc je nějaká "spekulace" že by podobnost rozhraní mohla přiblížit projekt DIAL a Spotter VM a z našich boxíků by šlo odkazovat na jejich site něbo takněco. Ten projekt jim možná pár let vydrží, přinejmenším do 2030. Jako mít něco společného s větším projektem nemusí být na škodu...?

Třeba bych s tímto cirkusem zaujal Gatese, ten by nabídl tučný balík bankovek a do konce žvota už bych nepracoval (asi jako teď) HAHAHA, no nic...

Má nápad nějaké skryté problémy? Pro frontendistu asi vyšívání z cizího kódu...

uvažuji nahlas tuto "variantu": Při zadání výroby VMMgr zadat frontendistovi forknout projekt DIAL a přizpůsobit ho pro náš účel rozhraní. Co si od toho slibovat? - nevymýšlet zbytečně již vymyšlenou úpravu a funkčnost - doplnit funkčnost která je u nás navíc - doplnit vícejazyčné rozhraní. Oni ta mají podporu více jazyků, ale ještě nevim jak to je udělané, protože to viditelné není. Možná na tom zatím pracují. Tak ať to klidně dopracují. - ve vlastnostech toho rozhraní je nějaký proces "návrhu aplikace zalogovaným uživatelem a schvalování někým kdo je admin" Tohle ještě nevim jestli by bylo k něčemu dobré, ale možná že jo? - do DIAL site se mohou registrovat lidé, kteří patří pod již zaznamenanou aplikaci, kterou tam navrhl někdo jiný. Po nějakém schválení adminem pak může ten člověk popis aplikace upravit Tohle taky nevim jestli se mi to k něčemu hodí, ale chápu že na DIAL web se to hodí - admin zřejmě schvaluje uživatelům nějaké role, nebo vyšší kompetence. Asi k zapisování poznámek, nebo k úpravám v boxíku. Nevim, to jako uživatel nepoznám. - Další věc je nějaká "spekulace" že by podobnost rozhraní mohla přiblížit projekt DIAL a Spotter VM a z našich boxíků by šlo odkazovat na jejich site něbo takněco. Ten projekt jim možná pár let vydrží, přinejmenším do 2030. Jako mít něco společného s větším projektem nemusí být na škodu...? _Třeba bych s tímto cirkusem zaujal Gatese, ten by nabídl tučný balík bankovek a do konce žvota už bych nepracoval (asi jako teď) HAHAHA, no nic..._ Má nápad nějaké skryté problémy? Pro frontendistu asi vyšívání z cizího kódu...
Disassembler commented 2021-01-20 13:42:27 +01:00 (Migrated from git.spotter.cz)

forknout projekt DIAL a přizpůsobit ho pro náš účel rozhraní

To nedává moc smysl. To rozhraní tvoří asi tak 2 % z celého toho repa, je psané v úplně jiném jazyce a komunikuje s backendem úplně jiným způsobem. Jediné, co se z toho dá ukrást je ten vlastní vygenerovaný HTML kód, na což frontendista potřebuje akorát funkční klávesy Ctrl, C a V.

Šlo mi hlavně o ten UI/UX návrh, protože tohle je přesně to, co nosím v hlavě - mřížka karet, každá karta s logem aplikace a pár nejdůležitějšími metadaty (popis aplikace, pro admina i verze a stav instalace třeba) a při najetí myší se zobrazí nějaké konextové ikony, kde se dají vyčíst dodatečné informace o aplikaci, licence, odkaz na manuál a pro admina i ikony, přes které se dá ta aplikace spouštět a zastavovat nebo otevřít její nastavení.

Drtivá většina věcí se u nás odehrává v backendu, protože my tu máme aplikační kontejnery, které fakt dělají i nějakou práci a ne jen databázovou tabulku plnou odkazů na nějaké cizí appky. Ten frontend u nás bude fakt jen jednoduchá fasáda, která z nějakých JSON dat vytažených přes API backendu udělá umělecké dílo a každé kliknutí zase pošle přes to samé API zpátky, aby se na pozadí mohla rozjet soukolí automatizované systémové administrace.

návrhu aplikace zalogovaným uživatelem a schvalování někým kdo je admin

A jak by se to mělo dít? DIAL je katalog. Uživatel zadá do formuláře informace o aplikaci, ta se uloží v databázi, admin je schválí, informace se zobrazí. Jak by měl vypadat workflow v našem případě, kdy nepracujeme s formulářem a informacemi o aplikaci, ale s celými aplikačními kontejnery? Nebo Vám jde jen o ta metadata k aplikacím?

> forknout projekt DIAL a přizpůsobit ho pro náš účel rozhraní To nedává moc smysl. To rozhraní tvoří asi tak 2 % z celého toho repa, je psané v úplně jiném jazyce a komunikuje s backendem úplně jiným způsobem. Jediné, co se z toho dá ukrást je ten vlastní vygenerovaný HTML kód, na což frontendista potřebuje akorát funkční klávesy Ctrl, C a V. Šlo mi hlavně o ten UI/UX návrh, protože tohle je přesně to, co nosím v hlavě - mřížka karet, každá karta s logem aplikace a pár nejdůležitějšími metadaty (popis aplikace, pro admina i verze a stav instalace třeba) a při najetí myší se zobrazí nějaké konextové ikony, kde se dají vyčíst dodatečné informace o aplikaci, licence, odkaz na manuál a pro admina i ikony, přes které se dá ta aplikace spouštět a zastavovat nebo otevřít její nastavení. Drtivá většina věcí se u nás odehrává v backendu, protože my tu máme aplikační kontejnery, které fakt dělají i nějakou práci a ne jen databázovou tabulku plnou odkazů na nějaké cizí appky. Ten frontend u nás bude fakt jen jednoduchá fasáda, která z nějakých JSON dat vytažených přes API backendu udělá umělecké dílo a každé kliknutí zase pošle přes to samé API zpátky, aby se na pozadí mohla rozjet soukolí automatizované systémové administrace. > návrhu aplikace zalogovaným uživatelem a schvalování někým kdo je admin A jak by se to mělo dít? DIAL je katalog. Uživatel zadá do formuláře informace o aplikaci, ta se uloží v databázi, admin je schválí, informace se zobrazí. Jak by měl vypadat workflow v našem případě, kdy nepracujeme s formulářem a informacemi o aplikaci, ale s celými aplikačními kontejnery? Nebo Vám jde jen o ta metadata k aplikacím?
Podhorecky commented 2021-01-20 19:50:24 +01:00 (Migrated from git.spotter.cz)

ok, ... zapomeňte na to. Podíval jsem se na ten web ještě trochu víc a myslim že tam je méně použitelných nápadů, než se to původně jevilo. Takže beru zpět ty spekulace, které se vydaly zbytečně daleko. Projekt DIAL je poměrně neobjevný a nedopracovaný.

ok, ... zapomeňte na to. Podíval jsem se na ten web ještě trochu víc a myslim že tam je méně použitelných nápadů, než se to původně jevilo. Takže beru zpět ty spekulace, které se vydaly zbytečně daleko. Projekt DIAL je poměrně neobjevný a nedopracovaný.
Sign in to join this conversation.
No description provided.