Späť na blog
Vzdelávanie

Učím sa používať cloud a microservices (časť II.)

Skillmea tím
06.11.2022
4 minúty čítania
Učím sa používať cloud a microservices (časť II.)
V tomto texte nadviažem na predchádzajúci blog, v ktorom som vás oboznámil so základmi cloudu a microservices. Prešli sme si, čo všetko zahŕňa cloud a microservisy, kde sa vzdelávať a v akej postupnosti a takisto, aké boli moje prvé výsledky práce. Poďme pokračovať.

Kubernetes

Úvod do Kubernetes

Podľa všetkého by mi malo Kubernetes pomôcť k tomu, aby som prestal riešiť problémy s infraštruktúrou. Aplikáciu zoberiem, presuniem inam a všetko bude fungovať. 

Slovo Kubernetes (čítaj kubernetís) pochádza z gréčtiny a znamená kormidelník. To dáva zmysel – aj logo tomu odpovedá 🙃. Skratka názvu pre Kubernetes je K8s.
Logo Kubernetes
Kubernetes robí abstrakciu nad infraštruktúrou – našu aplikáciu nezaujíma, kde je nasadená a či má všetky potrebné zdroje – to zabezpečuje Kubernetes. Cloud native aplikácia je výraz pre modernú aplikáciu, ktorá zvláda moderné požiadavky – škálovanie, self heal, updates, migrácie do iných prostredí.  

Základné pojmy

Pri štúdiu som sa stretol so základnými pojmami, ktoré je potrebné vedieť. Postupne sa ich budem snažiť popísať, tak ako som ich pochopil ja. 

Kontajner

Ako správny kormidelník nekormidluje prázdnu loď ale berie so sebou náklad, ktorý naloží do kontajnerov, tak tomu nebude ani teraz 😊. 

Pri vytváraní aplikácií potrebujeme počítač s operačným systémom, potrebujeme databázu, nejaký server. Každá táto časť potrebuje určité závislosti, knižnice a tak podobne. Tu sa to komplikuje. Aby si to vedel všetko pospúšťať, tak sa o tieto všetky požiadavky musíš postarať. Aby to bolo jednoduchšie, tak všetky tieto veci, ako napríklad databáza, bude vo vlastnom kontajneri. Kontajner si sám bude zabezpečovať všetko, čo je potrebné pre chod napr. databázy MySQL a my potom tento kontajner budeme používať.

Orchestrácia

Aby všetko spolu dobre fungovalo – ladilo to s polu. Orchestrácia proste všetko možné riadi, aby naša aplikácia fungovala. Kubernetes je vlastne nástroj pre túto orchestráciu. 

Docker

Pojmu Docker som sa chcel venovať neskôr, ale pri štádiu Kubernetes som natrafil na rozdiely a tak to v jednoduchosti zaradím aj sem. Pochopíte rozdiel, je to dôležité, nakoľko tieto dve technológie sa často zamieňajú.

Obidve technológie nám pomáhajú spúšťať aplikácie v kontajneroch, ale údajne sa od seba začínajú vzďaľovať.

Docker je kontajnerová technológia, ktorá virtualizuje operačný systém a spúšťa našu aplikáciu. Vyššie v texte som písal, že v kontajeroch beží samostatne napríklad databázový server – a dáva zmysel, že ten server beží v operačnom systéme.      

Podľa mnou nazbieraných informácií sa už vo svete Kubernetes neodporúča používať Docker, lebo je vraj zastaralý. Uvidíme, kam to bude smerovať a aká nová technológia sa objaví.

Zaujímavé je to, že Kubernetes vieme spustiť tak, že beží vo vnútri v Dockeri 😊. Je to ešte zaujímavejšie a ešte viac ma to baví riešiť. 

Škálovanie

Škálovanie je vlastne pojem, ktorý rieši to, aby aplikácia využívala také zdroje, ktoré v danom momente potrebuje. Za zdroj považujme napríklad viac pamäte, viac procesorov a podobne, alebo sa pridajú ďalšie servery (nie je donekonečna možné pridávať len procesory). Iné zdroje potrebuješ, ak tvoj microservis používa 10 ľudí a iné keď 1000 ľudí. Existuje vertikálne a horizontálne škálovanie.

Záver

Ďalej pri štúdiu Kubernetes by som musel ísť hlbšie, ale teraz sa zoznamujem postupne bližšie s pojmami. Teda tu si preruším štúdium Kubernetes a prejdem na úvod k technológii Docker. Lúči sa s tebou Jaro Beňo a my sa vidím ak Boh dovolí pri ďalšom článku alebo v nejakom mojom online kurze.
Skillmea tím

Sme jednotka v online vzdelávaní na Slovensku.

Na našom webe nájdeš viac ako 260 rôznych videokurzov z oblastí ako programovanie, tvorba hier, testovanie softwaru, grafika, UX dizajn, online marketing, MS Office a pod. Vyber si kurz, ktorý ťa posunie vpred ⏩

Mohlo by ťa zaujímať

Čo je Design Thinking?
Vzdelávanie
24.10.2022
Skillmea tím

Čo je Design Thinking?

Design Thinking je ideológiou aj procesom, ktorý sa zaoberá riešením zložitých problémov spôsobom, ktorý je zameraný primárne na používateľa. V tomto článku vám poskytneme podrobnú definíciu pojmu Design Thinking, presne opíšeme, čo tento proces zahŕňa, a zdôrazníme, prečo je tento prístup dôležitý: Aká je hodnota design thinking a v akých kontextoch je obzvlášť užitočný? Pozrieme sa tiež na to, ako je možné Design Thinking aplikovať v každodennej práci a aké sú výhody používania Design Thinkingu. Čo je Design Thinking?Design Thinking je prístup používaný na praktické a kreatívne riešenie problémov. Je založený vo veľkej miere na metódach a procesoch, ktoré používajú dizajnéri (odtiaľ teda pochádza samotný názov), ale v skutočnosti sa vyvinul z rôznych oblastí – vrátane architektúry, inžinierstva a obchodu. Design Thinking je možné aplikovať na akúkoľvek oblasť, nemusí ísť nevyhnutne o dizajn. Jedným z prvých ľudí, ktorí písali o Design Thinkingu, bol John E. Arnold, profesor na Stanfordskej univerzite. V roku 1959 napísal „Creative Engineering“, text, ktorý stanovil štyri oblasti Design Thinkingu. Design Thinking je v prvom rade zameraný na používateľa, na ľudí, snaží sa pochopiť potreby ľudí a prísť s účinnými riešeniami na uspokojenie týchto potrieb. Hovoríme tomu prístup k riešeniu problémov založený na riešení (z ang. solution-based approach to problem-solving. Design Thinking sa teda zameriava na dosahovanie praktických výsledkov a riešení, ktoré sú: 1. technicky uskutočniteľné: môžu byť vyvinuté na funkčné produkty alebo procesy; 2. ekonomicky životaschopné: podnik si ich môže dovoliť implementovať; 3. žiaduce pre používateľa: spĺňajú skutočnú ľudskú potrebu. Čo je Design Thinking proces?Najskôr sa pozrime na štyri princípy Design Thinkingu, ako ich navrhli Christoph Meinel a Harry Leifer z Hasso-Plattner-Institute of Design na Stanfordskej univerzite. Štyri princípy Design Thinkingu1. Ľudské pravidlo: bez ohľadu na kontext, všetka dizajnérska činnosť má sociálnu povahu a každá sociálna inovácia nás privedie späť k „hľadisku zameranému na človeka“. 2. Pravidlo nejednoznačnosti: nejednoznačnosť je nevyhnutná a nemožno ju odstrániť ani príliš zjednodušiť. Experimentovanie na hraniciach svojich vedomostí a schopností je rozhodujúce, ak chcete vidieť veci inak. 3. Pravidlo redizajnu: celý dizajn je redizajn. Zatiaľ čo technológie a sociálne okolnosti sa môžu meniť a vyvíjať, základné ľudské potreby zostávajú nezmenené. V podstate len prerábame prostriedky na splnenie týchto potrieb alebo dosiahnutie požadovaných výsledkov. 4. Pravidlo hmatateľnosti: uskutočnenie nápadov vo forme prototypov umožňuje dizajnérom ich efektívnejšie komunikovať. Viac o princípoch Design Thinkingu si môžete prečítať napríklad na tejto stránke. Na základe týchto štyroch princípov môže byť proces Design Thinkingu rozdelený do piatich krokov alebo fáz: empatia, definícia, idea, prototyp a test. Preskúmajme každý z nich podrobnejšie.[Fázy design thinkingu] Fáza 1: EmpatiaEmpatia poskytuje kritický východiskový bod pre Design Thinking. Prvá fáza procesu je venovaná oboznámeniu sa s používateľom a pochopením jeho želaní, potrieb a cieľov. To znamená, pozorovať ľudí a zapájať sa do nich, aby sme im porozumeli na psychologickej a emocionálnej úrovni. V tejto fáze sa dizajnér snaží odložiť svoje predpoklady a získať skutočné poznatky o používateľovi. Fáza 2: DefiníciaDruhá fáza je venovaná definovaniu problému. Zhromaždíte všetky svoje zistenia z fázy empatie a začnete im dávať zmysel: s akými ťažkosťami a prekážkami sa vaši používatelia stretávajú? Aký veľký používateľský problém musí váš tím vyriešiť? Keď problém sformulujete do slov, môžete začať prichádzať s riešeniami a nápadmi – čím sa dostávame do tretej fázy. Fáza 3: Idea, návrhS dôkladným pochopením vašich používateľov a jasným vyhlásením o probléme je čas začať pracovať na potenciálnych riešeniach. V tretej fáze design thinkingu je čas na kreatívne riešenia. Existuje mnoho rôznych typov techník generovania nápadov, od brainstormingu a mindmappingu až po bodystorming (scenáre hrania rolí) či ďalšie spôsoby. Ku koncu tejto fázy je potrebné veľký počet nápadov zúžiť na nieľko najlepších, s ktorými budete ďalej pracovať. Fáza 4: PrototypTáto fáza je celá o experimentovaní a premene nápadov na hmatateľné produkty. Prototyp je v podstate zmenšená verzia produktu, ktorá zahŕňa potenciálne riešenia identifikované v predchádzajúcich fázach. Tento krok je kľúčom k testovaniu každého riešenia a zvýrazneniu akýchkoľvek obmedzení a nedostatkov. Fáza 5: TestPo prototypovaní prichádza používateľské testovanie, ale je dôležité poznamenať, že toto je len zriedka koniec procesu Design Thinkingu. V skutočnosti vás výsledky testovacej fázy často privedú späť k predchádzajúcemu kroku a poskytnú vám informácie, ktoré potrebujete na predefinovanie pôvodného problému alebo na nové nápady, o ktorých ste predtým neuvažovali. Účel Design ThinkinguDozvedeli sme sa dostatok informácií o tom, ako Design Thinking funguje, poďme sa pozrieť na to, prečo je to dôležité. Existuje mnoho výhod používania prístupu Design Thinking – či už v obchodnom, vzdelávacom, osobnom alebo sociálnom kontexte. Design Thinking v prvom rade podporuje kreativitu a inovácie. Ako ľudské bytosti sa spoliehame na vedomosti a skúsenosti, ktoré sme nazhromaždili počas svojho života. Vytvárame si vzorce a návyky, ktoré sú síce užitočné v určitých situáciách, ale môžu obmedziť náš pohľad na veci, pokiaľ ide o riešenie problémov. Namiesto opakovania tých istých osvedčených metód nás Design Thinking povzbudzuje, aby sme zvážili alternatívne riešenia, ktoré sme predtým nepoužili, vyzýva nás na hľadanie nových ciest a nápadov. Design Thinking sa často uvádza ako zlatá stredná cesta pri riešení problémov – nie je úplne ponorené do emócií a intuície, ale nespolieha sa tiež len na analytiku, vedu a zdôvodnenie. Ďalšou veľkou výhodou Design Thinkingu je, že na prvé miesto kladie ľudí. Tým, že sa tak intenzívne zameriava na empatiu, povzbudzuje podniky a organizácie, aby zvážili skutočných ľudí, ktorí používajú ich produkty a služby – čo znamená, že je oveľa pravdepodobnejšie, že zasiahnu značku, pokiaľ ide o vytváranie zmysluplných používateľských skúseností. Pre používateľa to znamená lepšie a užitočnejšie produkty, ktoré skutočne zlepšujú náš život. Pre podniky to znamená spokojných zákazníkov a zdravší hospodársky výsledok. Aké sú výhody Design Thinkingu v práci?V tejto záverečnej časti vypichneme niektoré z hlavných výhod používania Design Thinking v práci: • Výrazne znižuje čas uvedenia produktu na trh: Design Thinking so svojím dôrazom na riešenie problémov a hľadanie životaschopných riešení môže výrazne znížiť množstvo času stráveného dizajnom a vývojom – najmä v kombinácii s lean a agilným prístupom. • Úspora nákladov a veľká návratnosť investícií: rýchlejšie uvádzanie úspešných produktov na trh v konečnom dôsledku šetrí peniaze podniku. Bolo dokázané, že Design Thinking prináša značnú návratnosť investícií. • Zlepšuje retenciu a lojalitu zákazníkov: Design Thinking zaisťuje prístup zameraný na používateľa, ktorý v konečnom dôsledku zvyšuje zapojenie používateľov a udržanie zákazníkov z dlhodobého hľadiska. • Podporuje inovácie: Design Thinking je o spochybňovaní predpokladov a ustálených presvedčení a povzbudzuje všetky zainteresované strany, aby mysleli mimo zaužívaného rámca. To podporuje kultúru inovácií, ktorá je dôležitá pre každú spoločnosť. • Dá sa použiť v celej spoločnosti: najlepšia vec na dizajnovom myslení je, že nie je len pre dizajnérov. Využíva skupinové myslenie a podporuje spoluprácu medzi tímami. A čo viac, dá sa použiť prakticky na akýkoľvek tím v akomkoľvek odvetví. Design Thinking môžete začať aplikovať aj v malom. Môžete sa zamerať len na jeden aspekt procesu Design Thinking, ako je napríklad spoznávanie svojich zákazníkov. Ak sa vám napríklad nedarí získať pozitívne recenzie zákazníkov, môžete sa rozhodnúť uskutočniť rozhovory s používateľmi, aby ste zistili, čo vašim zákazníkom chýba.
Weby pre vývojárov, ktoré musíte poznať
Vzdelávanie
15.10.2022
Skillmea tím

Weby pre vývojárov, ktoré musíte poznať

Existuje toľko webových stránok, ktoré uľahčujú vývojárom prácu. Určite ale nikto nepozná všetky a preto sa v tomto článku pozrieme na niekoľko webových stránok, ktoré vývojári pri svojej práci využijú. RoadmapShTáto webová stránka poskytuje študijné cesty, usmernenia a ďalší vzdelávací obsah, ktorý vývojárom pomôže vybrať si cestu a nasmerovať ich učenie. Je to veľmi užitočné pre začiatočníkov, ako aj pre študentov, ktorí potrebujú pomôcť nasmerovať s ďalším štúdiom.[Roadmap.sh] OverApi.comPre všetkých vývojárov je OverAPI jednou z najkrajších a najužitočnejších webových stránok. Táto webová stránka obsahuje cheatsheety pre väčšinu programovacích jazykov. Pozrite sa na to hneď teraz. [OverAPI] Ray.soTáto webová stránka vám umožňuje robiť krásne screenshoty z kódu. Má tiež tmavý režim a niektoré predinštalované témy pre rôzne programovacie jazyky. Môžete tiež použiť jeho rozšírenie pre VS Code. [Ray.so] Built WithZistite, na akých technológiách je postavená webová stránka, ktorú ste navštívili, pomocou tohto webu alebo Chrome rozšírenia. BuiltWith je nástroj na profilovanie webových stránok. Po vyhľadaní stránky BuiltWith vráti všetky technológie, ktoré na stránke nájde. [Built With] DevDocsDevDocs spája množstvo API dokumentácie v jedinom rozhraní s možnosťou vyhľadávania. Na jednom mieste nájdete dokumenty týkajúce sa rôznych programovacích jazykov a technológií. [DevDocs] Daily.devDaily.dev je platforma, kde nájdete veľa dobrých článkov, ktoré si môžete denne prečítať a zostať informovaní o novinkách zo sveta developmentu. Zobrazuje najlepšie články z rôznych platforiem priamo vo vašom feede. Zostaňte informovaní o kvalitnom obsahu z rôznych platforiem priamo do vášho prehliadača pomocou Chrome rozšírenia. [Daily Dev] Css-tricksSvoje zručnosti v oblasti webového vývoja môžete zvládnuť tak, že sa na tejto webovej stránke naučíte všetky základy CSS. Ak ste to ešte nevedeli, CSS je to, čo robí webstránky peknými a určuje im vzhľad. [css tricks.png]Css tricks Meta TagsMeta Tags je generátor značiek webových stránok, ktorý vám tiež umožňuje aktualizovať a experimentovať s vaším obsahom predtým, ako uvidíte, ako sa bude zobrazovať na internete a na sociálnych sieťach. Je to dobré nielen pre SEO. [Meta tags] CodePenCodePen je legendárna webová vývojárská platforma, ktorá umožňuje používateľom upravovať front-end jazyky, ako sú HTML, CSS a JavaScript, bez toho, aby museli inštalovať akýkoľvek softvér. Všetky zmeny sú viditeľné v reálnom čase, čo uľahčuje riešenie problémov. Vývojári a dizajnéri si tiež môžu vymieňať svoje vytvorené diela (známe ako pens) so zvyškom sveta. Na CodePen je možné nájsť obrovské množstvo inšpirácie. [codepen.png] Readme.soTáto webová stránka vám umožňuje vytvoriť README dokument veľmi jednoducho a rýchlo. Jeho jednoduchý editor vám pomôže rýchlo pridať a prispôsobiť všetky sekcie, ktoré potrebujete pre súbor README vášho projektu. Môžete to použiť na rýchle vytvorenie dokumentácie vašich projektov s otvoreným zdrojovým kódom. [Readme.so] ZáverĎakujeme za prečítanie, dúfame, že ste našli niekoľko nových stránok, ktoré vám niekedy pomôžu. V budúcnosti sa s vami podelíme o ďalšie nové a užitočné webové stránky pre developerov.
Učím sa používať cloud a microservices (časť I.)
Vzdelávanie
06.09.2022
Skillmea tím

Učím sa používať cloud a microservices (časť I.)

Prvé stretnutie s tematikouProgramovací jazyk Java poznám, Spring framework poznám, monolity (jedna veľká aplikácia v kope) ovládam a tak aby som nestagnoval a naučil sa novšie technológie a teda si aj rozšíril portfólio toho, čo ovládam, som sa rozhodol naučiť nové technológie okolo cloudových riešení a microservisov. Celú moju cestu a perepúť zaznamenám a vy si o tom môžete prečítať. Budem si to celé zaznamenávať krok za krokom. ZačiatokMomentálne poznám len pár kľúčových slov a to, že chcem riešiť microservisy a cloudové riešenia. Ešte som zaznamenal technológie ako Kubernetes a Docker. To je na začiatok všetko. Ak si to rozoberiem na menšie kúsky, tak tuším o čo ide. Aplikácie, ktoré som písal doteraz, sú monolitické, teda všetka funkcionalita je dokopy v jednej aplikácii. Prípadne celý backend je jedna časť, ktorá komunikuje s frontendom pomocou API.  Microservisy si predstavujem tak, že je to viacero malých aplikácií, ktoré fungujú samostatne a aplikácia použije len to, čo potrebuje. Tieto moduly – servisy – malé časti potom spolu komunikujú. Predpokladám, že tam bude nejaký mechanizmus posielania správ. Alebo komunikujú prostredníctvom API. Ako prvý krok som sa rozhodol pýtať na sociálnych sieťach. Dostal som jednu odpoveď a tá mi povedala, že si mám naštudovať Spring, Docker a Kubernetes. Predstavoval som si to asi trochu podrobnejšie, ale možno som zle položil otázku. Vlastne chcem vedieť, čo je ako prvé, čo potom a čo potom, ... teda úplný postup.  Keďže "socky" zlyhali, tak použijeme Google, ten verím v tomto prípade nesklame. Microservices a cloud roadmapaAko prvé som skúsil vyhľadať microservices roadmapu. Predpokladal som, že nájdem štruktúrované informácie. Vytriedil som pár stránok, ktoré pre mňa nemali zaujímavú formu. Vybral som si tieto: • Dev.to: vyzerá, že obsahuje kvalitné a štrukturované ifnormácie, • JavaGuides: má pekne štruktúrovaný text a obsahuje aj obrázky roadmapy, čo oceňujem:[Zdroj: JavaGuides.net] Ďalej som hľadal ako robiť Java aplikácie na cloude a vybral som tieto stránky na prezretie:  • https://cloud.google.com/java • https://rollbar.com/blog/what-is-cloud-native-java/ Toto sú moje začiatky, sám som zvedavý, kam sa dostanem. Prvé výsledkyČlánky a stránky som si prebehol z nadhľadu, aby som sa viac zoznámil so základnými pojmami a zistil, čo sa opakuje a kde začať. Takže, teraz mi je jasné, že tu máme dve oblasti. Oblasť programovania a oblasť nasadenia. V prvom rade je potrebné naprogramovať samotné microservisy a potom ich niekde nasadiť. S písaním Java aplikácií a API som oboznámený, nie je to pre mňa nič nové. Tým pádom budem ako prvé študovať technológie Kubernetes a Docker. Tieto dve technológie by mi mali pomôcť zistiť, čo všetko navyše je potrebné spraviť, aby som naprogramoval také microservisy, ktoré sú správne pripravené na spoločnú komunikáciu. Podľa wiki Kubernetes pracujú s Dockerom. Kubernetes by mala byť kontajnerová orchestrácia – pod tým si predstavujem riadenie kontajnerov.  Kontajner je podľa všetkého samostatná krabička, ktorá v sebe obsahuje všetko potrebné, aby v nej bežala aplikácia. Javu, rôzne závislosti, frameworky, knižnice a podobne. A túto krabičku zoberiem a nasadím. Spolu by to malo krásne a ideálne pracovať. No uvidíme 😀.  ZáverPre tento úvodný prehľadový článok stačí. Rád by som v týchto článkoch pokračoval, tam už pôjdeme do väčších podrobností a pozrieme sa na zúbok jednotlivým technológiám, ktoré sa budeme snažiť pochopiť. Lúči sa s vami Jaro a vidíme sa pri ďalšom článku, alebo v mojich kurzoch.

Nezmeškaj info o nových kurzoch a špeciálnych ponukách