Amióta a felhőben élek, mindig is azon technológiák álltak közel a szívemhez, ahol a hatékonyság és az automatizmus dominált. Mindig jó érzéssel tölt el, amikor egy bonyolult folyamat automatikusan és stabila, azaz hatékonyan működik. Ezért is a mikroszolgáltatások (microservices) a kedvenc területem a felhőn belül is.
Hatékonyság és automatizálás
Ezen területhez tartoznak számomra a kiszolgáló nélküli (serverless) megoldások és a Docker is.
Emellett, amint tudjátok, amikor valamibe belevágok vagy egy új technológiát tanulok, akkor igyekszem mindig egy olyan valóságnak megfelelő példán keresztül megtanulni azt, amely később a mindennapokban is azonnal használható tapasztalatot nyújt.
Ebből pedig következik, hogy az egyik kedvenc mikroszolgáltatások kezelésére alkalmas, Docker technológiához közeli automatizálási, üzembe helyezési, skálázási és felügyeleti megoldásom a Kubernetes.
A Kubernetes napjaink IT-infrastruktúrájának alapkövévé vált, lehetővé téve a skálázhatóságot, rugalmasságot és megbízhatóságot, amelyre a modern alkalmazásoknak szüksége van.
Mi köze is van a Kubernetes-nek a felhőhőz?
A Kubernetes mindegyik felhőszolgáltató esetén az egyik meghatározó erőforrás, amelyre több más szolgáltatás is épül.
Ezért úgy gondoltam, hogy egy új cikksorozatot indítok, ami azoknak szól, akik szeretnének betekintést nyerni a Kubernetes világába, legyen szó fejlesztőkről, üzemeltetőkről vagy más IT-szakértőkről.
Először az elméleti alapokkal fogunk kezdeni és minden cikkel egyre mélyebbre ásunk ezen fenevad lelki világába. Terveim szerint, az alapfogalmaktól a gyakorlati megvalósításig mindent érinteni fogunk, hogy segítsük a technológia megértését és alkalmazását a valódi projektekben.
Nem titkolt célom ezzel, hogy olyan tudást adjak át nektek, amely hosszabb távon akár hozzásegíthet Titeket egy sikeres Certified Kubernetes Administrator (CKA) vizsgához. Ez azonban még a jövő zenéje.
Első lépés és egyben a következő Kubernetes cikkem témája, hogy meghatározzuk: Mi is az a Kubernetes?
Remélem Te is olyan izgalmasnak tartod ezt, ahogyan én is és velem tartasz. 🙂
Aki ismer, az már tudja, hogy nekem a kiszolgáló nélküli megoldások a kedvenceim. Ezek azok, amelyekben rengeteg potenciál van mind kezdőknek, mind haladóknak. Ezért is írok erről szívesen.
Ma az AWS zászlóshajóját mutatom be nektek, az AWS Lambda-t. A Lambda az Amazon Web Services (AWS) egyik legsokoldalúbb és leginnovatívabb szolgáltatása, amely a „serverless” megközelítés középpontjában áll. Amikor valaki találkozik az AWS-el, akkor hamar szembetűnik, hogy ez az. a szolgáltatás, amely megkerülhetetlen részét képezi az AWS alapú ökoszisztémának. Hogy miért is van így? Ezt próbálom bemutatni nektek a következő sorokban.
Mi az AWS Lambda?
Az AWS Lambda egy „serverless” szolgáltatás, amely lehetővé teszi, hogy kódot futtassunk anélkül, hogy infrastruktúrát (virtuális gépet) kellene kezelnünk. A szerverek konfigurálásától az operációs rendszerek frissítéséig minden teendőt az AWS végez el helyettünk, miközben mi csak a kódra koncentrálunk. Azaz csupán programoznunk kell. Ez már önmagában is egy nagyon jó dolog.
Hogyan működik az AWS Lambda?
Az AWS Lambda működése néhány kulcsfontosságú lépésre osztható:
Kód feltöltés: Alkalmazhatod a kódodat szöveges fájlként, egy zip fájl formájában, vagy egy konténer képként. Az AWS Lambda támogatja a Python, NodeJS, Java, Go, Ruby és .NET nyelveket, valamint ezek különböző verzióit (általában a legfrissebb és legstabilabb, aktuális verziókat).
Eseménykezelő: Meg kell határoznod a „handler” nevű függvényt, amelyet a Lambda futtat, amikor egy esemény bekövetkezik. Ez a függvény tartalmazza az üzleti logikát.
Kiváltó esemény (trigger) konfigurálása: Mindig egy esemény lesz, ami elindítja a Lambda-t, lehet egy HTTP kérés (pl.: API Gateway-n keresztül), egy S3 fájl feltöltés, egy DynamoDB tábla módosítása vagy akár egy CloudWatch időzítés.
Automatikus futtatás és skálázás: Az AWS Lambda függvényed futtatása megkezdődik, amikor a kiváltó esemény bekövetkezik. Több párhuzamos futtatás esetén a Lambda dinamikusan skálázódik, attól függően, hogy mennyi erőforrásra van szükség.
Fizetés használat alapján: Mint a legtöbb felhő alapú megoldás ez is Pay-As-You-Go modellben számlázódik, azaz csak azért a futási időért és memóriahasználatért fizetsz, amelyet valóban felhasználtál.
Legfontosabb összetevők
Amikor Lambda-t kezdünk használni a következő két összetevő lesz számunkra a legfontosabb. Ezek fogják azt is eldönteni, hogy egyáltalán a Lambda-e az a megoldás amire szükségünk van.
Események (triggers)
Ahogy fent már olvastad, mindig kell egy esemény, ami elindítja a Lambda függvényünket. Mivel az AWS Lambda szorosan van integrálva az AWS ökoszisztémájával, így nem meglepő, hogy az alábbiak a leggyakoribb eseményforrások:
Amazon S3: Automatikusan futtatható a kód, amikor egy fájl feltöltődik vagy módosul egy S3 bucket-ben.
Amazon DynamoDB: Tábla módosítási események kezelése.
Amazon API Gateway: RESTful API-k és webhookok létrehozása.
Amazon EventBridge: Komplex eseményalapú architektúra kialakítása.
Ezeket tudjuk kombinálni ráadásul oly módon is, hogy több Lamda függvényt használunk együtt.
Memória és időkorlát
Habár az AWS világában a Lambda szinte megkerülhetetlen, mégis vannak helyzetek, amikor nem használhatjuk. Ezért azt javaslom, hogy mielőtt eldöntöd, hogy a Lambda lesz-e az a szolgáltatás amit igénybe veszel a választott megoldás kivitelezéséhez, vizsgáld meg, hogy az alábbi korlátozások engedik-e ezt neked:
Memória limit: 128 MB és 10 GB közötti memória allokálható egy funkcióhoz.
Időkorlát: Egy Lambda funkció maximális futási ideje 15 perc lehet.
Tehát ha hosszan futó függvényeket vagy kódokat akarsz használni, a Lambda nem lesz számodra alternatíva. Ne csüggedj, ez esetben lesz más lehetőséged is.
Mikor érdemes használni az AWS Lambda-t?
Gyakorlati példák
Adatfeldolgozás valós időben: Pl. egy S3 bucketbe feltöltött fájl automatikus feldolgozása (pl. képek tömeges átméretezése, videók konvertálása).
RESTful API-k: Az AWS Lambda és az API Gateway kombinációjával gyorsan létrehozhatsz API-kat.
IoT alkalmazások: IoT eszközök eseményeinek kezelése.
Batch feldolgozás: Nagy mennyiségű adat csomagban történő feldolgozása.
Előnyök
Automatikus skálázás: Nem kell manuálisan módosítanod az erőforrásokat.
Nincs infrastruktúrakezelés: Az AWS kezeli a szerverek karbantartását.
Rövid fejlesztési ciklus: Gyorsan prototípusokat hozhatsz létre. Tipikus PaaS megoldás. 🙂
Optimalizálás és bevált gyakorlatok
A fent említett korlátozások miatt erősen ajánlott a lehető legjobban optimalizált kódok alkalmazása a Lambda függvényeknél. Ehhez szeretnék egy kis segítséget nyújtani:
Kisebb függvények létrehozása: Használj kisebb, rövidebb rutinokat és metódusokat az üzleti logika felépítéséhez, amelyek gyorsan és hatékonyan futnak.
Üresjárat csökkentése: A Lambda figyeli és leállítja az nem használt kapcsolatokat, így előfordulhat, hogy amikor újra használni szeretnék azt, akkor hibát kapunk. Ilyen helyzetekben használj keep-alive technikákat.
Környezeti változók: Használj környezeti változókat a dinamikus változók tárolásához. Pl.: S3 bucket neve, kapcsolati információk.
Rekurzív hívások kerülése: Kerüld az olyan eseteket, amikor a függvény önmagát hívja meg, vagy olyan folyamatot indít el, amely újra meghívhatja a függvényt. Ez a költségek növekedéséhez vezethet.
Monitoring és hibakeresés: Állítsd be és használd a CloudWatch Log-okat a futási információk megértéséhez és elemzéséhez.
Dokumentált, szabványos hívások használata: Ne használj, olyan hívásokat és megoldásokat, amelyek nem dokumentáltak vagy nem szabványosak. Ezzel megakadályozhatod, hogy a rendszeres AWS API frissítések kompatibilitási vagy futási hibákat okozzanak.
Idempotens kód használata: Írj olyan kódot, amely többszöri végrehajtása ugyanazzal a bemenettel ugyanazt az eredményt adja.
Összegzés
Az AWS Lambda a serverless megoldások egyik úttörője, amely modernizálta a felhőalapú alkalmazások fejlesztését. Ha költséghatékony, rugalmas és gyors megoldást keresel, az AWS Lambda egy kiváló választás.
Elérkeztünk 2024 végéhez, ami számomra különösen emlékezetes év volt, hiszen augusztusban elindítottam új, magyar nyelvű technológiai blogomat. Ezt azzal céllal tettem, hogy egy közösséget építsek, ahol mindenki talál érdekes és hasznos témákat a felhő és AI modern világából. Hogy aki szeretne fejlődni és tanulni, az megtalálja a helyét. Bárki kérdezhessen nyitottan, és hogy sikereket érjen el ezen témák megismerésével.
Köszönet
Hatalmas köszönet mindenkinek, aki követi, olvassa, vagy bármilyen módon támogatja a munkámat. Külön szeretném megköszönni Feleségemnek a sok bíztatást, szeretetet és kitartást, hogy támogatja minden erőfeszítésemet és segít megvalósítani az álmaimat. ❤️
Blog
A blog indítása nemcsak egy szakmai vállalkozás volt, hanem egy személyes kihívás is. A technológia világa rendkívül gyorsan változik, és az információ megosztása által igyekeztem hozzájárulni ahhoz, hogy ti is részesei lehessetek ezeknek az új lehetőségeknek. Legyen szó Azure megoldásokról, AWS technológiákról vagy a mesterséges intelligencia legfrissebb fejlesztéseiről, a cikkek célja mindig az volt, hogy kézzel fogható, gyakorlatias információkat nyújtsanak.
Mentor világ
Mentor Klub trénereként szeretnék köszönetet mondani minden tanítványomnak és a Mentor Klub dolgozóinak is az idei évért. A közös munka, a képzések és a tanulás élménye mindannyiunkat előreléptetett. Sok energiát kapok és kaptam minden képzés alkalmával, ami mindig feltöltött, akkor is ha előtte egy nehéz munkanapon voltam túl. Az együtt töltött idő alatt nemcsak szakmai, hanem személyes fejlődésen is keresztülmentem, amit a veletek való együttműködésnek köszönhetek. ✨
Fejlődés és tanulás
Az idén több képzést és tanúsítványt is sikeresen teljesítettem, amelyek lehetővé tették, hogy tovább fejlesszem tudásomat, és ezek közvetve a blog tartalmaiban is visszaköszönhettek:
Microsoft Certified: Azure Solutions Architect Expert (megújítás)
DevOps Deployment Automation with Terraform, AWS and Docker képzés
Vector Databases in Practice: Deep Dive képzés
Hands-On Generative AI: Getting Started with Vector Search képzés
Software Architecture: From Developer to Architect képzés
Ezek a képzések nemcsak technikai ismeretekkel gazdagítottak, hanem segítettek abban is, hogy még jobban megértsem a technológia és az emberek kapcsolatát. Az újonnan szerzett tudásomat igyekszem megosztani veletek a blogon és a képzéseken keresztül, hogy ti is profitálhassatok ezekből az ismeretekből.
Sikeres év
Az év mérlege – ha fogalmazhatok így – rendkívül pozitív számomra. A blog indítása után örömmel láttam, hogy egyre több ember találja hasznosnak a tartalmakat, és hogy kialakult egy olyan közösség, amelyben megoszthatjuk tapasztalatainkat és ötleteinket. Ez a közösség inspirált arra is, hogy még több energiát fektessek a tartalomkészítésbe, és hogy a jövőben is készítsek ilyen és ehhez hasonló tartalmakat.
Jövőre…
2025-ben is folytatom az utamat a technológia és a tanulás világában, és bízom benne, hogy velem tartotok ezen az izgalmas utazáson. Terveim szerint rengeteg új témával, praktikus példákkal és inspiráló tartalmakkal készülök nektek.
Békés, boldog, sikeres új évet kívánok mindenkinek, és köszönöm, hogy részesei vagytok ennek az utazásnak! 🍾 🎊
Amikor egy új technológiával ismerkedünk (programozási nyelv, felhő, stb.) mindig nagy fejfájást okoz, hogy feltelepítsünk minden olyan alkalmazást, kiegészítőt és modult ,ami az adott technológia kényelmes és zökkenőmentes használatát biztosítja.
Biztosan Te is találkoztál már azzal a jelenséggel, hogy elhatároztad: „Most megtanulok Python-ban programozni”, de amikor nekikezdesz, elbizonytalanodsz, mert nem tudod mit kell telepíteni. És nincs ez másként a felhő világában sem. Nem elég, hogy el kell döntened, melyik nagy felhőszolgáltató világában mélyedj el, még a különböző eszközöket (pl.: parancssori eszközök – CLI) is telepítened kell. Ez sok függőséggel és beállítással is járhat néha. És ha fel is teleptetted, akkor meg kell tanulnod, hogyan is jelentkezz be a megfelelő felhő (Azure, AWS, Google) fiókodba.
Ebben a szorult helyzetben segít nekünk a felhőszolgáltatóknál elérhető Cloud Shell megoldás. Ez egy olyan böngészőben használható parancssori eszköz, amely leegyszerűsíti a „kommunikációt” az aktuális felhőszolgáltatónk és közöttünk. Hiszen nem kell semmi új komponenst nem kell telepítenem a számítógépemre, hogy kezelni tudjam a felhőerőforrásaimat.
Miért is fogalmazok ilyen általánosan? Ennek egyszerű az oka. mindegyik felhőszolgáltatónál ugyanaz ennek az eszköznek a neve. Tehát ha Azure-ban, AWS-ben és Google Cloud-ban is Cloud Shell a neve ennek az eszköznek. Ez fantasztikus, csak egy elnevezéssel kell megbarátkoznunk. 🙂
Ma foglalkozzunk az AWS CloudShell megoldásával, mert ez alapján, már könnyen használatba vehetjük a többi felhőszolgáltató, hasonló nevű eszközét is.
Mi az AWS CloudShell?
Az AWS CloudShell az Amazon Web Services (AWS) által biztosított böngésző alapú parancssori eszköz, amely lehetővé teszi, hogy gyorsan hozzáférj a felhőalapú erőforrásaidhoz anélkül, hogy helyi környezetet kellene telepítened vagy konfigurálnod. Az AWS CloudShell egy teljesen előkészített Linux-alapú környezetet kínál, amely tartalmazza az AWS Command Line Interface (CLI) legújabb verzióját, valamint számos hasznos eszközt, például a Git-et és támogatja a Python és Node.js használatát is.
Így ideális tanuláshoz, gyors konfigurációk elvégzéséhez, hibakereséshez vagy akár automatizált szkriptek futtatásához. A CloudShell integrációja az AWS konzollal egyszerű hozzáférést biztosít a felhőalapú erőforrásokhoz, anélkül hogy további költségekkel járna.
Előnye, hogy bármilyen eszközről hozzáférhetsz a CloudShell-hez egy böngészőből. Nincs szükség arra, hogy a helyi gépedet AWS CLI-vel vagy más eszközökkel konfiguráld. Az előre telepített AWS CLI, Git és egyéb fejlesztői eszközök gyors indulást biztosítanak. Ezen felül az AWS 1 GB tárhelyet biztosít, amely lehetővé teszi a fájlok, szkriptek és konfigurációk mentését, hogy azok későbbi felhasználását is.
Hogyan lehet használni?
Az AWS CloudShell használata rendkívül egyszerű. Kövesd az alábbi lépéseket:
1. Nyisd meg az AWS konzolt: Jelentkezz be a fiókodba, és keresd meg a navigációs sávon a CloudShell ikont.
2. Kattints a CloudShell gombra: Ez megnyit egy új böngészőablakot vagy alsó panelt.
3. Első indítás: A CloudShell automatikusan elindítja az előkészített környezetet, ami néhány másodpercet vesz igénybe.
4. Használat: Most már futtathatsz parancsokat. Pl.: S3 bucket-ek listázása
aws s3 ls
Integráció
A CloudShell azonban nem csupán parancsok futtatására alkalmas. Közvetlenül integrálva van az előfizetésünk legfontosabb erőforrásaival. Például:
AWS CLI: Az AWS CLI előtelepített verziójával közvetlenül hozzáférhetsz szolgáltatásokhoz, például EC2, S3 vagy Lambda.
Fájlok kezelése: Az S3-ban tárolt fájlokat könnyedén feltöltheted, letöltheted, vagy kezelheted közvetlenül a CloudShell-ből.
IAM jogosultságok: A CloudShell automatikusan használja a felhasználódhoz rendelt jogosultságokat, így nem kell külön hitelesítési adatokat megadnod.
Tippek a használathoz
Van pár dolog, amivel szeretnélek segíteni, hogy könnyedén használd ezt az eszközt.
Fájlok feltöltése és letöltése: A CloudShell tartalmaz fájlkezelési lehetőségeket. Az „Upload” vagy „Download” funkcióval helyi fájlokat másolhatsz a CloudShell-be, vagy fordítva. Ezzel fel is tölthetsz már létező fájlokat.
Szkriptek mentése: Mivel 1 GB tárhely áll rendelkezésre, a szkripteket vagy fájlokat elmentheted, hogy a következő alkalommal ne kelljen újra feltöltened.
Verziókezelés: Git-et közvetlenül használhatod a CloudShell-ben:
A többi már csak rajtad múlik. Gondolom, most kíváncsi lettél, vajon hogyan használhatod a többi felhőszolgáltató CloudShell megoldását. Ezekről, hasonló cikket itt találsz:
Nekem ez az egyik kedvenc eszközöm, ha valami újat vagy gyors dolgot szeretnék kipróbálni a felhőben. Biztos vagyok benne, hogy Te is meg fogod kedvelni.
Nincs is más dolgod, csak jelentkezz be a fiókodba, és keresd meg a navigációs sávon a CloudShell ikont. Ugye milyen egyszerű? 🙂
Már 2023-ban is meghívást kaptam a Gerilla Karrier Podcast egyik felvételére, hogy osszam meg tapasztalataimat a felhő technológiák kapcsán. A mesterséges intelligencia elterjedésével, a felhőben is megjelentek az AI alapú megoldások. Ma már ezeket ugyanúgy használhatjuk, mint egy virtuális gépet vagy egy webalkalmazást. A Gerilla Karrier Podcast-ban most erről is beszélgettük:
Mit jelent a felhőalapú technológia?
Kik a legnagyobb felhőszolgáltatók, és mit kínálnak?
Hogyan működik együtt a mesterséges intelligencia és a felhő?
Miként kapcsolódhatnak be kisebb vállalkozások is a felhőalapú AI világába?
Miért olyan keresettek ma a Cloud szakemberek?
Hogyan kezdj bele egy felhő technológiai karrierbe?
Milyen tudásra van szükség az egyes munkakörökhöz?
Miként alakítja át a mesterséges intelligencia a Cloud területén dolgozók munkáját?
Mit érdemes tanulnod, ha gyorsan szeretnél előrelépni ezen a területen?
Nagyon kellemes beszélgetésünk volt ezekben a témákban Andrással, ahol remélhetőleg számotokra is érdekes információkat hallhattatok.
A podcast epizódot itt tekinthetitek meg:
Ha szeretnél még több hasznos témát szeretnél tanulni, akkor ajánlom neked a Mentor Klub többi képzését is. A Mentor Klub egy olyan közösség, ahol a tagok soft- és hard skilleket egyaránt tanulhatnak, ráadásul otthonról vagy akár külföldről is.
Emellett olvassátok a Gerilla Önéletrajz Műhely cikkeit is. Ezekből csupán néhány, ami segít elindulni:
Cégünk életében nagyon sok olyan folyamatot kell valamilyen informatikai rendszeren megvalósítani, amely valamilyen előre meghatározott lépéssorozatot követ minden esetben amikor szükség van rá. Ilyen például bármilyen jóváhagyási munkafolyamat (workflow), amivel szerintem Te is sűrűn találkozol. Ha egy jogosultságra van szükséged vagy valamilyen tanfolyamra jelentkezel, akkor kitöltöd a szükséges űrlapot, majd rákattintasz az „Igény elküldésre” és a háttérben elindul a megfelelő workflow. Egy ilyen workflow esetén habár előre meghatározott lépeseket követ a munkafolyamat, a lépések a megadott paraméterek alapján rugalmasan változnak. (Pl.: neked más a jóváhagyó felettesed, mint egy másik részlegen dolgozó kollégádnak) Korábban egy cég külön pályázaton keresztül kereste meg a megfelelő „workflow motor”-t, azaz azt a külső alkalmazást, amellyel rugalmasan, megbízhatóan és felhasználóbarát módon lehet munkafolyamatokat integrálni a cég életébe.
Azure esetén márt írtam nektek a Logic Apps megoldásról, amely lehetővé teszi, hogy összekapcsoljuk a különböző alkalmazásokat és adatforrásokat egy-egy folyamatban. Ezt szinte végtelen módon megtehetjük, attól függően, mire is van szükségünk.
Mind az SWF, mind a Step Functions olyan szolgáltatások az AWS-ben, amelyek munkafolyamatok (workflow) automatizálására és kezelhetőbbé tételére szolgálnak. Azonban a céljuk, működésük és felhasználási eseteik eltérőek. Ha gyorsan és könnyen szeretnél munkafolyamatokat létrehozni, akkor a Step Functions amire szükséged van. Ezzel foglalkozunk ma.
Mi az AWS Step Functions?
Az AWS Step Functions egy munkafolyamat-orkesztrációs szolgáltatás, amely állapotgépek használatával kapcsolja össze és irányítja a különböző AWS-szolgáltatásokat. Ez a szolgáltatás lehetővé teszi, hogy az egyes folyamatlépéseket (például adatfeldolgozás, API-hívás, várakozási idő, döntéshozatal) könnyen definiáld, vizualizáld és karbantartsd. Tehát összetett munkafolyamatokat lehet vele könnyen létrehozni.
Az AWS Step Functions működésének kulcselemei:
Állapotgép (State Machine): Egy olyan folyamatleírás, amely az alkalmazás vagy a rendszer működésének lépéseit és állapotait definiálja.
JSON alapú definíció: A munkafolyamatokat Amazon States Language (ASL) segítségével lehet definiálni, amely egy JSON-alapú szintaxis.
Integráció más AWS-szolgáltatásokkal: Közvetlenül együttműködik olyan szolgáltatásokkal, mint az AWS Lambda, Amazon S3, Amazon DynamoDB, és még sok más, amire szükségünk lehet a mindennapi üzleti életben.
Főbb jellemzői
Vizuális munkafolyamat-tervezés: Az AWS Management Console lehetőséget nyújt a munkafolyamatok vizuális szerkesztésére és monitorozására. Ez megkönnyíti a hibák felismerését és az átláthatóságot.
Hibatűrés és újrapróbálkozás (Retry): Beépített hibatűrési mechanizmusok, amelyek lehetővé teszik a folyamatlépések automatikus újrapróbálkozását meghatározott szabályok szerint.
Auditálhatóság és naplózás: Az egyes lépések részletes naplózása az Amazon CloudWatch segítségével történik, amely segíti a hibakeresést és a teljesítmény optimalizálását.
Skálázhatóság: Az AWS Step Functions a háttérben automatikusan kezeli a skálázást, így az alkalmazások mindig a szükséges teljesítményt nyújtják.
Integráció az AWS SDK-val: Könnyen kombinálható különböző AWS-szolgáltatásokkal és egyéni API-hívásokkal is.
Mikor érdemes az AWS Step Functions-t használni?
Az AWS Step Functions használata akkor érdemes, ha olyan összetett munkafolyamatokat kell kezelni, amelyek több különböző összetevő integrációját igénylik. Például adatfeldolgozási folyamatok során, ahol az adatok összegyűjtése, transzformációja (átalakítása) és tárolása több lépésben történik, a Step Functions lehetővé teszi a lépések logikai sorrendjének meghatározását és automatikus végrehajtását. Emellett kiválóan használható mikroszolgáltatások közötti kommunikációhoz.
Az időzített vagy párhuzamosan futó folyamatok kezelésére is ideális megoldást nyújt, hiszen lehetőséget biztosít az automatizációra és a skálázhatóságra. Ha mesterséges intelligencia alkalmazásokhoz, például gépi tanulási modellek betanításához, validálásához vagy telepítéséhez keresünk eszközt, az AWS Step Functions segítségével a különböző lépések könnyen kezelhetők és monitorozhatók.
Röviden, olyan helyzetekben érdemes használni, ahol a munkafolyamatok vizuális ábrázolása, automatizációja és hibatűrővé tétele egyaránt fontos, miközben minimalizálni szeretnénk a manuális beavatkozást és maximalizálni a folyamatok hatékonyságát.
AWS Step Functions előnyei
Egyszerűség és rugalmasság: Nem szükséges egyedi kódot írni a munkafolyamatok irányításához.
Automatizált hibakezelés: Csökkenti az manuális beavatkozás szükségességét, ami gyorsabb és költséghatékonyabb működést eredményez.
Költséghatékonyság: Fizetni csak a végrehajtott tranzakciókért kell, nincsenek állandó költségek.
Biztonság: Az AWS IAM segítségével részletes hozzáférés-kezelési lehetőségek biztosítottak.
Példák a Step Functions használatára
Adatok feldolgozása: Például, ha egy weboldalra feltöltött képeket át kell méretezni vagy elemezni, a folyamat minden lépését automatizálhatod.
Rendelési folyamatok kezelése: Egy webshopban a rendelés fogadása, fizetés ellenőrzése és kiszállítási adatok feldolgozása egyszerűen megvalósítható.
Jóváhagyási folyamatok: Ha például egy alkalmazottnak szabadságot kell kérnie, a kérelmet automatikusan ellenőrizheted, majd egy vezető dönthet róla.
Időzített feladatok: Nap végén automatikusan összefoglalhatod az értékesítési adatokat és e-mailben elküldheted.
Hibakezelés: Ha egy lépés nem sikerül (például egy API-hívás), a rendszer automatikusan újrapróbálkozik.
Értesítések küldése: Ha valami fontos történik, például egy új rendelés érkezik, a rendszer e-mailt vagy SMS-t küldhet róla.
Egyszerű eseményvezérlés: Ha valaki feltölt egy fájlt egy tárhelyre, a rendszer automatikusan feldolgozhatja azt.
Gépi tanulási modellek kezelése: Ha mesterséges intelligencia modellel dolgozol, segít a tanítási és elemzési lépések automatizálásában.
Weboldal adatok frissítése: Például egy hírportálon éjszaka lefutó folyamat, ami az új híreket betölti a rendszerbe.
Rendszerek közti kapcsolódás: Ha több különböző szolgáltatás használatával dolgozol, például fizetési rendszerekkel és adatbázisokkal, ezek közötti munkát könnyen összehangolhatod.
Összegezve
Az AWS Step Functions egy hatékony eszköz, amely lehetővé teszi, hogy bonyolult folyamatokat egyszerűen és gyorsan valósítsunk meg az AWS-en belül. Legyen szó adatfeldolgozásról, mikroszolgáltatások integrációjáról vagy gépi tanulásról, a Step Functions kiváló választás a munkafolyamatok egyszerűsítésére és optimalizálására.
Ugye milyen jól hangzik? Remélem Te is kipróbálod. 🙂
Mindig nagy örömmel osztom meg tudásom és tapasztalataim azokkal, akik érdeklődnek a felhő technológia iránt. 2023-ban meghívást kaptam a Gerilla Karrier Podcast egyik felvételére, hogy osszam meg tapasztalataimat az alábbi témákban:
Mi a felhő technológia?
Mi köze az Amazonnak a felhőkhöz?
Hogyan hozza el a Cloud a jövőt? – aki kimarad, lemarad?
Mit és hogyan tanulj, ha érdekel a felhő?
5 tipikus felhő munkakör
Miért éri meg ebbe az irányba képezni magad?
Mennyit keres egy felhő szakember?
Hogy kapcsolódik a Mesterséges Intelligencia a Cloud-hoz?
Örömmel és lelkesen fogadtam el a meghívást, ahol Andrással egy nagyon jó kedélyű és kellemes beszélgetést folytattunk.
Barát Andárssal, már évek óta ápolunk nagyon jó kapcsolatot mind a magánéletben, mind a szakmai életben. Ez nem csak annak köszönhető, hogy én vagyok a Mentor Klub egyik mentora, hanem annak is, hogy hasonló a személyiségünk és az érdeklődési körünk.
A Mentor Klub egy olyan közösség, ahol a tagok soft- és hard skilleket egyaránt tanulhatnak, ráadásul otthonról vagy akár külföldről is. Rengeteg oktatóanyag érhető el itt, amelyek mind azon céllal készültek, hogy bárki sikeresen kezdjen új karrierbe, vagy erősítse meg pozícióját az álláspiacon. Személyes tapasztalatom szerint, aki itt tag, már egy lépéssel közelebb jár a sikeres és felfelé ívelő karrierhez.
A podcast epizódot itt tekinthetitek meg:
Aki szeretne még hasonló érdekes, naprakész és aktuális témákat. hallgatni, annak javaslom, hogy kövesse a Gerilla Mentor Klub YouTube csatornáját, ahol megtalálja az összes Podcast epizódot. Higgyétek el, nem fogtok unatkozni, és már ezekből a kötetlen, mégis tematikus beszélgetésekből is rengeteget lehet tanulni.
És figyeljetek, mert lehet, hogy hamarosan újra találkozhattok velem egy hasonló beszélgetésben. 🙂
Manapság egyre többet hallhatunk az infrastruktúra automatizálásáról és a DevOps megközelítés fontosságáról az informatikai projektekben. Ebben a világban az egyik legnépszerűbb eszköz a Terraform, amely segít a felhőinfrastruktúra kezelésében és üzemeltetésében.A mai cikkben arra vállalkozok, hogy megismertessem az érdeklődőkkel a Terraform alapjait, és bemutassam, miért lehet hasznos az IT szakemberek és a vállalkozások számára.
Mi az a Terraform?
A Terraform egy nyílt forráskódú eszköz, amelyet a HashiCorp fejlesztett. Lehetővé teszi az infrastruktúra deklaratív módon történő leírását és kezelését kódként, vagyis az úgynevezett Infrastructure as Code (IaC) megközelítést alkalmazza. Ez azt jelenti, hogy a felhőszolgáltatások, mint például az AWS, Azure, Google Cloud vagy akár saját adatközpontok erőforrásait egyetlen kódbázis segítségével lehet létrehozni, frissíteni vagy törölni.
Hogyan működik a Terraform?
A Terraform az infrastruktúra komponenseit ún. konfigurációs fájlokban írja le, amelyeket a .tf kiterjesztésű fájlokban tárol. Ezekben a fájlokban megadhatjuk, hogy milyen erőforrásokat szeretnénk létrehozni (pl. virtuális gépeket, tárolókat, adatbázisokat stb.). A legnagyobb előnye, hogy a folyamat deklaratív: nem az utasítások végrehajtási sorrendjét kell megadni, hanem hogy milyen állapotot szeretnénk elérni. A Terraform ezt követően elvégzi a szükséges lépéseket az infrastruktúra kialakításához vagy módosításához.
Miben segíthet nekünk az IaC és aTerraform?
A Terraform és az Infrastructure as Code (IaC) alkalmazásának számos előnye van, különösen a felhőinfrastruktúra kezelésében. Ezek közül a legfontosabbakat össze is foglaltam:
Automatizálás és hatékonyság: A Terraform és az IaC lehetővé teszi az infrastruktúra teljes automatizálását, így elkerülhető a kézi beavatkozás, ami gyorsabbá és megbízhatóbbá teszi az infrastruktúra létrehozását, módosítását vagy törlését. Ez csökkenti az hibák esélyét, és jelentősen növeli a hatékonyságot.
Következetesség: Az infrastruktúra kódban van megadva, ami biztosítja, hogy az infrastruktúra újratelepítése vagy bővítése mindig ugyanazokat a lépéseket és beállításokat kövesse. Ez garantálja a következetességet a fejlesztői, tesztelési és éles környezetek között, és minimalizálja az eltérések lehetőségét.
Verziókövetés: Mivel a Terraform konfigurációs fájlok szöveges formátumban vannak, ugyanúgy verziókövető rendszerekben (pl. Git) tárolhatók, mint a szoftverek kódjai. Ez lehetővé teszi, hogy visszatérjünk egy korábbi infrastruktúra állapothoz, ha szükséges, vagy megnézzük, milyen változások történtek az idők során.
Skálázhatóság: Az IaC megkönnyíti az infrastruktúra skálázását, mivel egyszerűen módosíthatjuk a konfigurációs fájlokat, és a Terraform automatikusan végrehajtja a szükséges változtatásokat. Például, ha több szervert szeretnénk hozzáadni egy alkalmazás kiszolgálásához, csak a konfigurációban kell megadni a kívánt erőforrásszámot.
Multicloud (több felhős) támogatás: A Terraform különösen előnyös, mivel több különböző felhőszolgáltatót támogat (AWS, Azure, Google Cloud stb.), valamint helyi adatközpontokat is kezelhet. Ez lehetővé teszi, hogy egyszerre több felhőplatformon futtatunk erőforrásokat, anélkül hogy mindegyikhez külön eszközöket vagy manuális beállításokat kellene használnunk.
Deklaratív megközelítés: Mint már korábban említettem, a Terraform deklaratív módon működik, ami azt jelenti, hogy a felhasználó csak azt mondja meg, milyen állapotot szeretne elérni az infrastruktúrában (pl.: hány darab szerver, milyen tűzfal beállítások, stb.). A Terraform gondoskodik a szükséges lépésekről, így nem kell aggódnunk a végrehajtás konkrét részletei miatt.
Költséghatékonyság: Az automatizálásnak és az optimalizált erőforrás-kezelésnek köszönhetően a Terraform és az IaC használata csökkentheti az infrastruktúra kezeléséhez szükséges időt és erőforrásokat, így hosszú távon költséghatékonyabbá válik.
Gyors visszaállítás: Ha valami rosszul sül el (pl. hibás konfiguráció vagy nem kívánt infrastruktúra-változás), a Terraform segítségével gyorsan vissza lehet állítani az infrastruktúrát egy korábbi verzióra (állapotra), így minimalizálva a leállások vagy hibák okozta károkat/kieséseket.
Modularitás és újrafelhasználhatóság: A Terraform lehetővé teszi modulok létrehozását, amelyek sablonként szolgálhatnak különböző projektekhez. Ez azt jelenti, hogy egyszer létrehozott konfigurációkat könnyen újra lehet használni más projektekben, ami jelentős időmegtakarítást jelent.
Miért érdemes használni a Terraform-ot?
Multicloud támogatás: A Terraform lehetővé teszi több felhőszolgáltató egyidejű kezelését, ami nagy előny, ha különböző felhőkön futtatunk szolgáltatásokat.
Átláthatóság és verziókezelés: Mivel az infrastruktúra kódként van leírva, egyszerűbb követni a változtatásokat és verziókat használni, hasonlóan a szoftverfejlesztésben használt verziókezelő rendszerekhez.
Automatizálás: Az infrastruktúra kézi kezelése helyett a Terraformmal automatizálhatjuk a folyamatokat, ami gyorsabbá és megbízhatóbbá teszi az üzemeltetést.
Közösség és bővítmények: A Terraformhoz számos modul és bővítmény érhető el, amelyeket a közösség fejlesztett, így könnyedén bővíthetjük a képességeit.
A Terraform alapfogalmai
1. Konfigurációk
A Terraform konfigurációk írásával határozzuk meg, hogy milyen erőforrásokat szeretnénk létrehozni. Ezek a konfigurációk egyszerű szöveges fájlokban tárolódnak.
2. Erőforrások (Resources)
Az erőforrások a felhő vagy adatközpont komponenseit jelentik, például virtuális gépeket, hálózatokat, tárhelyeket.
3. Állapot (State)
A Terraform minden egyes futás után tárolja az infrastruktúra aktuális állapotát egy állapotfájlban. Ez segít abban, hogy mindig naprakész információnk legyen arról, hogy milyen erőforrások léteznek.
4. Plan és Apply
Amikor módosítjuk a konfigurációkat, először a plan parancsot futtatjuk, amely megmutatja, hogy milyen változtatásokat fog végrehajtani a Terraform. Ha minden rendben van, az apply parancs végrehajtja a konfigurált változtatásokat.
Példa konfiguráció
Lássunk egy egyszerű példát arra, hogyan lehet egy virtuális gépet létrehozni az AWS-ben a Terraform segítségével:
provider "aws" {
region = "eu-central-1"
}
resource "aws_instance" "elsogepem" {
ami = "ami-0592c673f0b1e7665"
instance_type = "t2.micro"
tags = {
Name = "Első AWS gépem"
}
}
Ebben a példában egy t2.micro típusú virtuális gépet hozunk létre az AWS egy adott régiójában. Ez a konfiguráció egyszerű, de a lehetőségek szinte végtelenek, hiszen a Terraform segítségével bármilyen felhőalapú erőforrást kezelhetünk.
Természetesen a fenti kód önmagában nem működik, hiszen biztosítanunk kell a kód futtatásához szükséges hozzáférést az AWS fiókunkhoz is. Ezt majd egy következő cikkben mutatom meg részletesen.
Összegzés
A Terraform egy rendkívül erőteljes eszköz, amely lehetővé teszi az infrastruktúra könnyű kezelését és skálázását. Nem csak kis rendszerek építésében és kezelésében hatékony, hanem a hatalmas, akár ezer erőforrást tartalmazó ökoszisztémák esetén is kifogástalanul teljesít.
Ha érdekel ez a terület, akkor az első lépés lehet a konfigurációk megismerése és néhány egyszerű projekt kipróbálása. Ahogy elmélyedsz a Terraform világában, gyorsan rájössz majd, hogy mennyire megkönnyíti a felhőalapú rendszerek kezelését és karbantartását. Természetesen a következő cikkekben én is azon leszek, hogy számodra hasznos és használható tudást adjak át.
Reméljük, hogy ez a rövid bevezető segít az elindulásban! 🙂
Elsőre a felhőszolgáltatások bonyolultnak tűnnek és sokan megrémülnek tőle. Ez részben igaz is, de mint minden területén az életnek vannak olyan lehetőségek, amelyek segítenek nekünk a könnyed elindulásban. Így van ez az AWS esetén is. Az Amazon már régen felismerte, hogy szükség van olyam megoldásokra, amelyekhez nem szükséges felhő- vagy informatikai előképzettség.
Ez az Amazon Lightsail, amely könnyedén vezet be minket a felhő világába úgy, hogy közben igazi felhő rajongókká válhatunk.
Mi az a Lightsail?
Az Amazon Lightsail egy egyszerűsített felhőszolgáltatás, amelyet az Amazon Web Services (AWS) kínál kezdőknek vagy kisebb projekteket futtatóknak. A LightSail célja, hogy könnyen használható megoldásokat (szerverek, alkalmazások, adatbázisok, stb.) biztosítson, minimalizálva a komplexitást, amely a nagyobb AWS szolgáltatásokkal jár.
A szolgáltatás lehetővé teszi, hogy néhány kattintással indíts szolgáltatásokat előre konfigurált beállításokkal, mint például a WordPress weboldalak, adatbázisok, vagy fejlesztői környezetek. Minden Lightsail csomag tartalmazza a szükséges erőforrásokat: CPU-t, memóriát, tárhelyet és adatforgalmat, így egyszerűbbé teszi a használatot.
Főbb előnyei:
Egyszerű indítás: Nem szükséges mély technikai tudás a szerverek elindításához.
Fix havidíjas csomagok: Könnyen kalkulálható költségek, nincs rejtett költség.
Integráció AWS-szolgáltatásokkal: Ha később nagyobb rugalmasságra lenne szükséged, át lehet térni az AWS komplexebb megoldásaira.
Az Amazon Lightsail ideális választás lehet kisebb weboldalak, fejlesztési projektek vagy egyszerű alkalmazások futtatásához, miközben biztosítja a felhő előnyeit anélkül, hogy túlzottan bonyolult beállításokat igényelne.
Ugye milyen érdekesen hangzik?
WordPress
Most pedig megmutatom, hogyan tudsz WordPress weboldalt létrehozni néhány perc alatt. (biztonsági mentéssel együtt)
Hogyan is jutunk el a Lightsail felületére AWS-en?
Egyre többet tudunk már a mesterséges intelligenciáról (AI), de ennek a területnek sok összetevője, illetve alágazata van. Ilyen a gépi tanulásról (Machine Learning) is, amely talán hallomásból ismerős lehet. Így felmerül a kérdés, hogy pontosan mi a különbség közöttük, és hogyan kapcsolódnak össze? Ebben a cikkben szeretném tisztázni ezt a viszonyt, és bemutatom, hogyan működik együtt ez a két technológia.
Mi is az a mesterséges intelligencia (AI)?
A mesterséges intelligencia kifejezés olyan rendszerekre vagy gépekre utal, amelyek képesek „intelligens” viselkedést mutatni, ahogy ezt korábban már olvashattátok. Ez magában foglalja a különféle feladatok végrehajtását, amelyek jellemzően emberi intelligenciát igényelnének. Például a döntéshozatal, a problémamegoldás, a beszéd- és képfelismerés, vagy akár a természetes nyelv megértése. Az AI célja olyan algoritmusok és rendszerek létrehozása, amelyek képesek tanulni és alkalmazkodni a környezetükhöz, így hatékonyabbá téve a gépeket különböző feladatok végrehajtásában.
Mi az a gépi tanulás (ML)?
A gépi tanulás az AI egyik legfontosabb alágazata, amely a minták és adatok alapján történő automatikus tanulási folyamatra összpontosít. Míg a mesterséges intelligencia általános célja az emberi intelligencia modellezése, a gépi tanulás konkrétan arra összpontosít, hogy a számítógépek hogyan tudnak anélkül tanulni, hogy explicit módon (programozók által) programoznánk őket.
A gépi tanulás során a rendszerek adatokat kapnak, elemzik azokat, és ezek alapján meghozzák a megfelelő döntéseket vagy előrejelzéseket. Az ilyen rendszerek egyik legnagyobb előnye, hogy a tapasztalatokból képesek javítani teljesítményüket.
Hogyan kapcsolódik össze az AI és a gépi tanulás?
A gépi tanulás az AI egyik legfontosabb hajtóereje. Az AI rendszerek az ML algoritmusokat használják annak érdekében, hogy képesek legyenek tanulni és fejlődni az idő során. A gépi tanulás biztosítja az AI számára azt a rugalmasságot, amely lehetővé teszi, hogy az adatok alapján javuljon, és új megoldásokat találjon ki.
Az AI rendszerek gépi tanulási modellek révén képesek felismerni a mintákat az adatokban, és azokat alkalmazni különböző problémák megoldására. Például az önvezető autók AI rendszerei ML modelleken keresztül képesek felismerni az úton lévő objektumokat, és megfelelő döntéseket hozni a vezetés során. Ezen felismerésre kifejezetten fejlesztenek AI modelleket is.
Gépi tanulás típusai
A gépi tanulásnak három fő típusa van:
Felügyelt tanulás (Supervised Learning): Ebben a módszerben a rendszer „felcímkézett” adatokat kap, azaz az adatpontokhoz társítva van a helyes válasz. A gépi tanulás célja, hogy megtanulja, hogyan kapcsolódnak ezek az adatok a kimenetekhez, hogy később ismeretlen adatokra is alkalmazni tudja a megtanult mintákat.
Felhügyelet nélküli tanulás (Unsupervised Learning): Itt nincsenek felcímkézve az adatok, és a gép feladata az, hogy magától találjon mintákat vagy struktúrákat az adatokban. Ezt gyakran használják például klaszterezésre vagy dimenziócsökkentésre.
Megerősítéses tanulás (Reinforcement Learning): Ez egy olyan tanulási folyamat, ahol a rendszer egy környezettel lép kölcsönhatásba, és jutalmazzák vagy büntetik a különböző cselekedetei alapján. A cél az, hogy a rendszer megtanulja, melyik cselekvések vezetnek a legjobb eredményekhez.
AI és ML gyakorlati alkalmazásai
A mesterséges intelligenciát és a gépi tanulást ma már számos területen használják, például:
Kép- és hangfelismerés: AI rendszerek felismerhetik az embereket, tárgyakat, hangokat képekből vagy videókból.
Természetes nyelvfeldolgozás (NLP): Olyan alkalmazások, mint a Google Translate vagy a chatbotok, gépi tanulási modelleket használnak a nyelvi adat feldolgozására és megértésére.
Önvezető autók: A gépi tanulás segíti az önvezető rendszereket abban, hogy biztonságosan navigáljanak az úton.
Ha te is szeretnéd kipróbálni a gépi tanulást, játékos módon, akkor a Teachable Machine neked való. 🙂
Természetesen a felhőben is elérhetők a gépi tanuláshoz kapcsolódó szolgáltatások. Néhány példa ezekből:
A mesterséges intelligencia és a gépi tanulás szoros kapcsolatban áll egymással. Az AI az az összefoglaló megnevezés (technológia), amely magába foglalja a gépi tanulást is, mint az egyik legfontosabb technikát a gépek intelligenssé tételére. A gépi tanulás azon képessége, hogy tapasztalatok alapján tanuljon és fejlődjön, az AI egyik legnagyobb ereje, és ez az, ami miatt egyre szélesebb körben alkalmazzák ezt a technológiát.