Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Ondřej Palkovský

Stran: [1]
1
Vývoj / Re:Zkušenosti s cloudem a Kubernetes
« kdy: 09. 06. 2020, 17:34:13 »
1. Tvl kazdej kdo delal s Cludem vi a vidi, ze je to jeste v plenkach a ze nektere vnitrni utroby jsou shit. A ty z toho delas jeste vetsi shit. Vyber si jeden Cloud (AWS) a ten tvl pouzivej a ty shity a nastrahy co tam jsou se nauc. Nebo nam napis kolik jsi usetri za DigitalOcean.
Managed kubernetes na AWS stojí $876 za rok. To je na hobby projekt docela hodně. Samozřejmě je otázka, jestli je K8 zrovna dobrá volba, ale ono je to takový dvousečný - můj dojem byl, že AWS je na velké množství malých serviců cenově pitomý, ta cloud-nezávislost, když to má člověk nakonfigurované na K8 je docela fajn. Integrace s gitlabem... no, na začátku jsem si myslel, že je moc fajn, teď po cca. půlroce zjišťuju, že to zas až tolik nepřináší.
Citace
2. Zapomen na databazi co ti pojede na produkci ve tvojem dockeru. Ses pos ral ne...
Na druhou stranu, tohle nejsou žádný služby, na kterých by závisel něčí život, nebo kde bychom přišli o nějaký peníze, když to chvilku nepojede (i když je to blbý). Tak proč ne?
Citace
3. Naco tam chces valit Kibanu - CloudWatch Insights ti nestaci? Si stezujes a delas si to akorat slozitejsi.
Protože tam rvu spoustu věcí - SQS DeadLetter queue pro případné dohledání, že mi něco nezpracovala lambda, filebeatem tam rvu logy z webserveru, kde jede toho provozu docela hodně, hážu tam i nějaké metriky a přes webhook mi tam teď něco loguje i to K8 a loguju tam komplet logy z aplikací z toho K8 včetně custom parsingu některých logů z aplikací, aby se dal rychle dohledat problém. S CloudWatch insights nemám moc zkušenosti...ale ta kibana je zrovna docela triviální na konfiguraci a instalaci, takže tam zrovna spokojenost.
Citace
6. Ja mam soukrome EC2 kde mi bezi web server, mam tam preventivne kazdy den cron na restart po pulnoci, protoze se to bylo schopne po par dnech sprajcnout. Proc, nevim. Ale kdybych mel ECS, asi bych nemel tento problem.
Mně předtím běžel právě ten provoz, který mám na K8, na t2.micro. BEZ RESTARTU. Pravidelné restarty jsou...no, to už od Tebe zaznělo několikrát... Ale udržovatelnost toho prostředí prostě není dobrá.

2
Vývoj / Re:Zkušenosti s cloudem a Kubernetes
« kdy: 03. 06. 2020, 12:48:02 »
Mno a kolik Vám tedy těch aplikačních podů dohromady běží?
Je to v podstatě jedna aplikace, takže tam trvale běží 5 deploymentů, tzn. 7 podů + nějaké 3 nepodstatné cronjoby. Celkový počet běžících podů je 43.... 

3
Vývoj / Re:Zkušenosti s cloudem a Kubernetes
« kdy: 03. 06. 2020, 10:11:47 »
- běhat si kontejnery v nějakých variantách dockeru ručně mi připadá podobné peklo; ingresy v K8 fungují moc pěkně (ano, před tím jsem si něco jako ingres implementoval sám. O kód, který nenapíšu, se nemusím starat)

Omlouvám se za možný offtopic, ale jak u nízkonákladových projektů hostovaných například na DigitalOcean řešíte zveřejnění služby (případně ingressu jako reverzního proxy), aby byla veřejně dostupná?

Používáte jejich load balancer (za 10 dolarů měsíčně), nebo to řešíte nějak jinak?
To není off-topic :) Ano, používám jejich loadbalancer, je to HA a s ingresy to funguje pěkně (akorát jsem tam myslím zapnul ten Proxy protokol). Btw, neumí to IPv6, takže pokud chcete IPv6, tak buď vlastní mašinku (neclusterovanou.....) nebo doufat, že do K8 časem IPv6 dorazí taky. AWS myslím taky IPv6 do K8 neumí (nejsem si úplně jistý). Applové chtějí někdy od června, aby jejich aplikace byly schopny fungovat IPv6 only, takže tohle začne být prohodně lidí nutnost.

Jinak jeden špek: poměrně dost adres z DigitalOcean není vidět z Ruska (řeším přesměrováním ruska Route53 regional DNS přes minimašinku v AWS) a teď jsem narazil na to, že některé (naštěstí jen některé...) adresy v DO pro změnu blokuje nějaká státní služba v USA...

4
Vývoj / Re:Zkušenosti s cloudem a Kubernetes
« kdy: 02. 06. 2020, 21:58:02 »
Já si pořád nejsem jistý, jestli je problém ve mně, že jsem zvolil K8.

AWS - tam mám firemní prostředí, jednoduchá web aplikace, RDS. Díky omezení AWS nelze vytvořit na těch menších mašinkách dostatek podů, takže tam je asi tak 3x tolik paměti, než by to v reálně potřebovalo. Množství režijních podů je v K8 docela vysoké...

DigitalOcean - to je spíš hobby projekt, kde tak nějak jde o to, aby to nežralo zbytečně moc peněz (na druhou stranu to používá pár desítek tisíc lidí...). Před tím to v podstatě mohlo běžet úplně bez problému na 1GB stroji, teď tam mám 2x4GB a vypadá, to, že to konečně poběží.

- proti variantě instalovat si vlastní servery to je opravdu příjemná změna. Upgrady těch normálních systémů jsou regulérní peklo. Věci typu ansible jsou taky peklo.
- běhat si kontejnery v nějakých variantách dockeru ručně mi připadá podobné peklo; ingresy v K8 fungují moc pěkně (ano, před tím jsem si něco jako ingres implementoval sám. O kód, který nenapíšu, se nemusím starat)
- věchny aplikace (s výjimkou jedné, která tam ještě neběží) jsou bezstavové a nepoužívají lokální data (u té jedné to je vědomé rozhodnutí, ne všechno musí být škálovatelné...a tady škálovatelnost znamená buď velké zesložitění kódu nebo velkou konstantu)
- idea mi připadá dobrá. Provedení....prostě mám pocit, že to nějak drhne. Jak tady někdo psal - post mortem analýza je prostě problém. Ono najít, že ty problémy, které mám, jsou způsobeny nedostatkem paměti, když se to jenom začalo chovat podivně a nikde nic o OOM nebylo...

Jinak taky psát tyhle clusterovací věci Go mi taky nepřipadá jako šťastná volba.

5
Vývoj / Re:Zkušenosti s cloudem a Kubernetes
« kdy: 02. 06. 2020, 14:15:11 »
Používam MicroK8s od Canonicallu, a neviem si to vynachváliť, aj na menšie projekty mi to prijde vyhovujúce.
Já jsem to on-site používal také, ale když jsem teď migroval věci do cloudu, tak jsem -logicky- šáhnul po managed kubernetes. Používáš to ve více-nodové konfiguraci?

6
Vývoj / Re:Zkušenosti s cloudem a Kubernetes
« kdy: 02. 06. 2020, 14:13:08 »
Mně se ten koncept docela líbí - teď jsem vyhodil prá nodů, nahradil je jinýma (s víc pamětí) a byla to skoro nulová práce. Super.

Databáze má data na PersistentVolume a na tom IMO overlayfs nebude, takže to mi připadá v zásadě v pohodě.

Jenže: před tím se mi to celý složilo, protože (asi) jedna aplikace vyžrala paměť. Kdyby byl swap - není problém. Ale takhle mi to v podstatě sundalo celý prostředí (ony ty Linuxy bez swapu se  nechovaj v případě nedostatku paměti zrovna hezky).  A nejhorší je, že to je zpětně skoro nedohledatelné.... posílání eventu do elasticu funguje tak, že to nějaký eventy neposílá (že bych si to nakonec musel napsat sám...?)

Mně to připadá fajn, ale nějak mi to zatím nepřipadá enterprise....

7
Vývoj / Re:Zkušenosti s cloudem a Kubernetes
« kdy: 01. 06. 2020, 16:56:17 »
No... mně připadá, že enterprise cluster by měl mít vyřešený např. ten fencing (aby to bylo na enterprise úrovni), měl by mít vyřešené posílání eventů a alertů (což možná nakonec dám nějak dohromady, akorát to nevypadá jako "běžné" řešení) a třeba ten swap by IMO měl být aspoň volitelně. Můžeme sice tvrdit, že enterprise = garance/limity, k OOM nemůže dojít, ale to je pak trochu problém, pokud nějaký typ provozu má v tomhle výkyvy.

A teď se dozvídám, že stabilita FS je na pováženou....

Lambda mi připadá z hlediska ladění problémů ještě horší než kontejnery.
ECS jsem nezkoušel, ale obecně vzato to levnějc rozhodně nevyjde. Mně tady trošku přijde blbý, že se jedná o pár aplikací, které nemají zas tak velký provoz... až na to, že to používá pár desítek tisíc lidí. A ve výsledku měla t2.micro mašinka lepší výsledky než teď ten K8 cluster.... a nejhorší na tom je, že nevidím, že bych to něco udělal vyloženě špatně.

8
Studium a uplatnění / Re:Základy programování
« kdy: 01. 06. 2020, 13:33:28 »

Nemám s Haskellem praktickou zkušenost, takže se nebudu vyloženě hádat, ale mám za to, že bez Monoid a Monad nenapíšeš v Haskellu nic (ledaže bys to obešel vlastní - míň abstraktní implementací, ale to by pak postrádalo smysl používat Haskell). Bez Applicative se asi obejít dá.
Prakticky: bez Monoidu se dá obejít úplně v pohodě. V tutorialech je Monoid asi z toho důvodu, že když se vykládají TypeClassy, tak zrovna Monoid je hezký reprezentativní příklad. Není to zas tak často používaná abstrakce.

Bez Monadu se dá taky psát docela v pohodě. Pro začátečníka bohatě stačí IO monad s "do" notací a nějaké vysvětlení, kdy se ten efekt spustí a kdy použít let a kdy <-. Sice jsem s tím na začátku taky chvíli bojoval, ale nepřipadá mi to nějak složitý.

9
Vývoj / Zkušenosti s cloudem a Kubernetes
« kdy: 01. 06. 2020, 10:33:26 »
Jaké jsou vaše zkušenosti s kubernetes? Přesunul jsem během posledního půl roku několik aplikací do různých cloudů (AWS EKS, DigitalOcean K8) a... mám z toho takové rozporuplné pocity.

Plusy:
  • Opravdu funkční CI/CD od začátku do konce, to je moc fajn
  • Odpadá problém s udržováním serverů, kompatibility knihoven/balíčků atd.
  • Snadné vytvoření testovacího prostředí
  • Ingress + letsencrypt.... moc příjemná kombinace

Ale...
  • (nesouvisí s K8) - o365 SMTP servery jsou nespolehlivé; takže musím implementovat vlastní frontu odesílání zpráv (původně jsem to dával MTA lokálně)... ale to je asi obecně vlastnost cloudu - develop for failure
  • Navzdory tomu, že se jedná o pár malých aplikací, tak musím nainstalovat všechny možné i nemožné nástroje pro monitoring, které najdu. Což znamená rozchodit si vedle elastic, kibanu, prometheus, filebeat na nodech, posílání kubernetes eventů (!!!!!! - jak je možné, že tohle K8 není schopno vůbec logovat standardně?) abych vůbec tušil, co se tam děje. V podstatě kvůli malému prostředí musím instalovat enterprise log management. Ne, že by to nebylo "dobré", ale normálně to bez toho jde. V K8 to bez toho vůbec nejde.
  • Neschopnost reportovat pád Cron úlohy. Existuje možnost to napsat do pravidel promethea (- který mám nainstalovaný integrací z gitlabu, takže to nejde customizovat..?), která je hodně přes ruku. Ale teď jsem rozchodil stahování eventů, možná to půjde vytáhnout z toho. V každém případě - tohle je šílené.
  • Vypnutý swap. V jednom případě mi několik let běžely 4 aplikace na jednom t2.micro (1GB paměti), HAProxy na t2.nano (512MB). Prakticky bez výpadku. Totéž mi teď běží na 3-nodovém K8 clusteru (3x2GB), a už jsem několikrát narazil na OOM, která pozabíjí půlku prostředí. Smutné je, že jsem to zatím nebyl schopen dohledat....
  • Žádný fencing ve standardní instalaci. Pro jednoduchost jsem si rozeběhl Postgres v K8. Bohužel nějak došlo k panicu cilia, což odřezalo node od sítě. Databáze (StatefulSet) běžela na tomto nodu - a konec. Všechno dole. Pokud by byl nakonfigurovaný Fencing, tak stačilo ten izolovaný node vypnout/rebootovat a bylo by to v pohodě. Fencing/STONITH je naprosto základní součástí jakéhokoliv clusterovacího řešení za posledních 20 let... to, že to součástí K8 není (někdo si dal práci a udělal na to projekt, ale myslím, že tam nemá Cloud služby) na mě vrhá dojem, že ta technologie je hlavně "cool"

Můj pocit: deployment aplikací - super. Spolehlivost, schopnost dohledat problém - strašné. Když něco nefunguje, tak je to na dlouho. Jaké jsou vaše zkušenosti?

10
Studium a uplatnění / Re:Základy programování
« kdy: 01. 06. 2020, 10:21:18 »
Jednou jsem si zkousel delat tutorial Haskellu a docela me zarazila vysoka uroven abstrakce. Nejake monoidy a monady. Prislo mi to dost slozite. Podle me to moc pro zacatecniky neni.
Možná bych zkusil přirovnání: hrát na housle je fakt těžký, pro začátečníky to moc není. Je potřeba umět noty, rytmus, intonaci, neskutečnou koordinaci v pravé ruce a přesnost v levé. Měli by zkusit kytaru.

11
Studium a uplatnění / Re:Základy programování
« kdy: 01. 06. 2020, 09:57:45 »
Ad haskell: asi bych taky rád viděl kontrolovaný experiment... těžko říct.

Včera jsem dostal dotaz od začínající programátorky ohledně počítání fibonacciho posloupnosti. V Pythonu. No... a nějak jsem skončil s tím, že jsem to vysvětloval jak v Haskellu, tak v Pythonu. A ve výsledku to prostě v Haskellu pořád vypadalo jako "popis řešení problému", zatímco v pythonu to zůstávala "posloupnost instrukcí", byť značně učesanější než na začátku a zkušený Python programátor v tom ten popis řešení je asi "schopen uvidět". FP řešení v pythonu nevypadá dobře už vůbec. Ale připadá mi, že přechod od "popisu řešení" k "posloupnosti instrukcí" je výrazně jednodušší, než postup opačným směrem. Ona pak spousta lidí programuje systémem "pokus-omyl" - což v haskellu tak trochu nejde. Zase, nevím nakolik je to špatně, když je člověk začátečník, tak to možná potřebuje....

Jinak ad výhoda Haskellu: vzhledem k tomu, že vyvíjím mimo jiné jednu aplikaci pro Android a google přišel s Kotlinem, tak v tom můžu prakticky okamžitě programovat a akorát řeším, "jak se tahle věc v Haskellu syntakticky zapíše v kotlinu". A podobně to pravděpodobně bude vypadat i s Rustem. Takže pokud jde o praktické využití, tak je mnohem větší, než to na první pohled vypadá.

Stran: [1]