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. 🙂
Már régen szeretném megírni ezt a cikket, mert fontosnak tartom ezt a témát mind felhő, mind mesterséges intelligencia szempontból. Úgy gondolom, hogy az OpenAI és a Microsoft együttműködése az elmúlt évtized egyik legjelentősebb partnersége a mesterséges intelligencia (AI) és a felhőszolgáltatások területén. Az OpenAI, amely a GPT (Generative Pre-trained Transformer) modellek fejlesztőjeként vált ismertté, 2019-ben kezdte el a közös munkát a Microsofttal.
Ez az együttműködés nemcsak technológiai innovációkat hozott, hanem meghatározta a mesterséges intelligencia és a felhőalapú megoldások jövőjét is.
Nem szeretnék oldalakat írni, csupán egy összefoglalót arról, hogyan is kezdődött ezen két cég közös útja és milyen kilátásaink vannak velük kapcsolatban a jövőre nézve.
OpenAI
Az OpenAI egy mesterséges intelligenciával foglalkozó kutatóintézet, amelyet 2015-ben alapítottak San Franciscóban. Az alapítók között szerepel Elon Musk, Sam Altman és Greg Brockman. Az OpenAI célja, hogy az AI fejlesztése biztonságos és mindenki számára hasznos legyen. Az intézet széles körben ismert olyan innovációkról, mint a GPT nyelvi modellek, a DALL-E képgeneráló AI, és a Codex, amely programozás támogatására képes. Legismertebb termékük a ChatGPT, amely megváltoztatta a világot.
Microsoft
A Microsoft egy multinacionális technológiai vállalat, amelyet 1975-ben alapítottak az Egyesült Államokban, Bill Gates és Paul Allen közreműködésével. A Microsoft legismertebb termékei közé tartozik a Windows operációs rendszer, az Office irodai szoftvercsomag és az Azure felhőszolgáltatás. A vállalat kiemelkedő szereplője az AI- és a felhőalapú megoldások piacán, és különösen nagy hangsúlyt fektet az innovációra és a digitális transzformációra.
Az együttműködés kezdete
Az OpenAI és a Microsoft partneri kapcsolata 2019-ben indult, amikor a Microsoft 1 milliárd dolláros befektetést jelentett be az OpenAI-ba. Az együttműködés célja az volt, hogy a mesterséges intelligencia kutatást és fejlesztést globális szinten felgyorsítsák. A Microsoft különleges szerepet kapott az OpenAI technológiáinak integrációjában, és Azure felhőszolgáltatását az OpenAI exkluzív platformjává tette.
Az Azure-on keresztül az OpenAI fejlesztései széles körben elérhetővé váltak a vállalatok és fejlesztők számára. A GPT-3, a DALL-E és más modellek API-kon keresztül érhetők el az Azure OpenAI Service-en, amely lehetővé tette az ügyfelek számára, hogy mesterséges intelligenciát építsenek be alkalmazásaikba. A partneri kapcsolat keretében a Microsoft különös hangsúlyt helyezett arra, hogy az OpenAI fejlesztései a lehető legszélesebb körben elérhetők és skálázhatók legyenek.
Az OpenAI technológiáinak integrációja különösen fontos szerepet játszik a Microsoft ökoszisztémájában, beleértve a GitHub Copilot fejlesztői eszközöt, amely a Codex modellre épül, valamint az Office termékcsaládot, ahol a mesterséges intelligencia alapú megoldások, mint a szövegkiegészítések és tartalomgenerálás, jelentősen javítják a felhasználói élményt.
Egy másik kiemelt projekt a GitHub Copilot, amely programozási feladatokhoz nyújt valós idejű javaslatokat, így növelve a fejlesztési folyamat hatékonyságát. Ezen kívül az OpenAI technológiái széles körű alkalmazásra találtak az ügyfélszolgálati chatbotoktól kezdve a nyelvi modellek alapú adatelemzésig és tartalomkészítésig.
Aki járt már a több hetes Azure képzésemen, láthatta, hogy Azure-ban milyen könnyedén lehet AI alapú erőforrásokat használni. Továbbá erről beszéltem a Gerilla Karrier Podcast egyik részében is.
Az együttműködés eredményei
Az OpenAI és a Microsoft együttműködése számos technológiai előrelépést hozott:
Azure OpenAI Service: A szolgáltatás API-kon keresztül biztosított hozzáférést az OpenAI modelljeihez, így lehetővé téve a fejlesztőknek és vállalatoknak, hogy AI-megoldásokat építsenek.
AI-megoldások a gyakorlatban: Az OpenAI modelleket széles körben alkalmazzák, az ügyfélszolgálati chatbotoktól kezdve a nyelvi modellekre épülő tartalomgenerálásig.
Codex és GitHub Copilot: Az OpenAI Codex modelljét és a Microsoft GitHub Copilot nevű fejlesztői eszközét használják programozási feladatok automatizálására.
AI-integráció az Office 365-ben: Az AI-technológiákat, különösen a GPT-modellt, integrálták olyan Microsoft termékekbe, mint a Word és az Excel, ahol tartalomgenerálást és intelligens javaslatokat nyújtanak.
Előretekintés
A jövőben az OpenAI és a Microsoft tovább kívánja mélyíteni együttműködését, különösen a következő területeken:
Még nagyobb modellek fejlesztése: Az OpenAI és a Microsoft közösen dolgozik a GPT és más nagy nyelvi modellek továbbfejlesztésén, hogy még pontosabbak és sokoldalúak legyenek.
Etikus AI fejlesztések: Az OpenAI és a Microsoft nagy hangsúlyt fektet az etikus AI-alkalmazások megvalósítására, és azon dolgoznak, hogy az AI-technológiák felelősen és biztonságosan működjenek.
Szélesebb elérhetőség: Az AI-megoldásokat még több ágazatba kívánják integrálni, beleértve az egészségügyet, az oktatást és az ipari automatizálást.
Összegzés
Az OpenAI és a Microsoft együttműködése az AI és a felhőszolgáltatások területén jelentős áttörést hozott. Az elmúlt évek eredményei már most is alakítják a technológia jövőjét, és a közeljövő további fejlesztései izgalmas lehetőségeket tartogatnak mind a vállalatok, mind az egyének számára.
Te használod már az AI alapú erőforrásokat Azure-ban vagy más felhőszolgáltatónál? 🙂
A kiszolgáló nélküli (serverless) megoldások hatalmas teret nyertek az elmúlt évtizedben, köszönhetően a felhőszolgáltatóknak is. Emellett a felgyorsult világ, az automatizáció nyújtotta hatékonyság és kényelem is megalapozta ezen technológiai megközelítés sikerét.
Szeretném veletek megismertetni a technológia egyik alappillérét az App Service Plan-t, illetve azt, hogyan is gondolkozott a Microsoft a saját „serverless” világát illetően.
Az Azure App Service Plan a Microsoft Azure egyik kulcsfontosságú eleme, amely lehetővé teszi webalkalmazások, API-k, logikai alkalmazások, function app-ok és háttérfolyamatok futtatását az Azure-ban.
Mi az Azure App Service Plan?
Az Azure App Service Plan az erőforrások csoportosításának és kezelésének a módja az ebben futó alkalmazások számára. Lényegében meghatározza az alkalmazásod alatti infrastruktúra kapacitását és teljesítményét. Hasonlóan egy virtuális géphez, itt is különböző teljesítményre van szükségünk az alkalmazásain megfelelő és stabil működéséhez.
A lényeges különbség – leegyszerűsítve annyi – , hogy ez esetben nincs egy virtuális gépünk amelynél gondoskodnunk kell az operációs rendszer beállításairól, biztonsági frissítéseiről vagy hibakezeléséről. Itt csupán használatba kell vennünk, azaz futtatnunk kell rajta a programkódunkat.
Ahogy említettem, ez is hasonló tulajdonságokkal bír mint egy virtuális gép, csupán virtuális gép nélkül. Tehát az alábbi tulajdonságai vannak egy App Service Plan-nak.:
A vCPU és a memória méret, amit az alkalmazás használhat.
A rendelkezésre álló sávszélességet.
Az alkalmazások párhuzamos futtatásának képességét.
Tárhely mérete, amelyen a programunk forráskódját tárolhatjuk.
És még több kényelmi és/vagy biztonsági beállítás, ami az alkalmazásaink használhatóságát növelik.
Főbb tulajdonságok
Skálázhatóság: Az App Service Plan lehetővé teszi az alkalmazások automatikus vagy manuális skálázását. Skálázhatsz felfelé (nagyobb erőforrások felé – scale up/scale down) vagy kifelé (több példány elindításával – scale out/scale in).
Rugalmasság: Több alkalmazás is futhat ugyanazon a Service Plan-en, így optimalizálhatod a költségeidet.
Különböző árszintek: A plan különböző árszinteket kínál (Free, Shared, Basic, Standard, Premium, és Isolated), amelyek eltérő funkciókat és teljesítményt nyújtanak.
Környezetek támogatása: Támogatja a Windows és Linux környezeteket, valamint a konténeralapú megoldásokat.
Hogyan válaszd ki a megfelelő csomagot?
A megfelelő App Service Plan kiválasztása kritikus az alkalmazásod teljesítménye és költségei szempontjából. Íme néhány szempont:
Forgalmi igények: Ha nagy forgalmat vársz, válassz egy magasabb szintű plan-t.
Funkciók szükségessége: Nézd meg, hogy szükséged van-e például automatikus skálázásra vagy dedikált környezetekre.
Költségkeret: Az alacsonyabb szintek olcsóbbak, de kevesebb funkcióval és erőforrással járnak.
Tippek a hatékony használathoz
Optimalizálás több alkalmazáshoz: Futtass több alkalmazást egy plan-en, ha azok erőforrásigénye hasonló.
Monitorozás: Az Azure Monitor-ral kövesd az alkalmazások teljesítményét és az erőforrás-felhasználást.
Skálázási szabályok beállítása: Használj automatikus skálázási szabályokat a költséghatékonyság érdekében.
Hogyan számlázódik a scale out (kifelé történő skálázás)?
App Service Plan estén lehetőségünk van egy csomagon belül, több ugyanolyan paraméterű példány (instance) futtatni és ezeken futtatni az alkalmazásainkat. Ezek számlázási módja azonban nem mindig egyértelmű, ezért ehhez szeretnék egy kis támpontot adni:
Példányok száma: A díjakat a párhuzamos példányok száma alapján számítja ki a Microsoft. Például, ha egy Standard szintű App Service Plan-t használsz, és 3 példányt futtatsz, akkor az adott szint havi díját háromszorosan kell kifizetned.
Automatikus skálázás: Az Azure skálázási szabályok alapján dinamikusan növeli vagy csökkenti a példányok számát, így a költségeid rugalmasan változhatnak a terhelés függvényében.
Hogyan számlázódik általában az App Service Plan?
Az App Service Plan költségei az alábbi tényezőktől függenek:
Árszint: Az App Service Plan szintje (Free, Shared, Basic, Standard, Premium, Isolated) meghatározza az alapdíjat.
Példányok száma: Több példány futtatása (scale out) növeli a költségeket.
Futási idő: Az Azure óradíjat számít, amely a hónap végén kerül összevonásra. Például, ha egy Standard S1 példány óránként 0,1 USD, akkor 24 órára 2,4 USD, egy hónapra pedig körülbelül 72 USD.
Fontos: Az App Service Plan díját a teljes erőforráscsoport (például CPU, memória) használat alapján számlázzák, nem pedig az egyes alkalmazások után.
Az ingyenes csomag részletei (Free Tier)
Az F1 csomag ideális választás azok számára, aki tesztelési vagy tanulási célú projekteket futtatnak. Jellemzői:
CPU és memória: Limitált CPU és memória, alapvetően tesztelési célokra.
Egyidejű alkalmazások: Egyetlen App Service Plan-en belül több alkalmazás futtatható, de az erőforrások megosztásra kerülnek.
Egyéni domain hiánya: Csak az Azure által biztosított alapértelmezett domain használható
Korlátozott teljesítmény: Alkalmas egyszerű alkalmazásokhoz, mint például statikus weboldalak vagy API prototípusok. Napi 60 perc használatot tesz lehetővé. (ezt nem egyben kell érteni, hanem a használat alapján)
Költség: Teljesen díjmentes, így ideális fejlesztőknek és tanulóknak a kísérletezéshez.
Az App Service Plan funkciói
Egy ilyen csomagnak rengeteg hasznos funkciója van, ezekről készítettem egy rövid listát, csupán az áttekintés végett:
1. Alapvető funkciók
Virtuális erőforrások: CPU, memória és tárolókapacitás biztosítása az alkalmazások számára.
Több alkalmazás támogatása: Több alkalmazás futhat ugyanazon a plan-en, így költséghatékonyabb.
OS támogatás: Windows és Linux alapú környezetek futtatása.
Konténer támogatás: Docker konténerek futtatása.
2. Skálázás és teljesítmény
Manuális skálázás: Több példány hozzáadása kézzel.
Automatikus skálázás: Dinamikus skálázás az alkalmazás terhelése alapján.
Skálázási szabályok: Egyedi szabályok beállítása CPU, memóriahasználat vagy egyéb teljesítménymutatók alapján.
Scale up/out lehetőség: Függőleges (nagyobb erőforrások) és vízszintes (több példány) skálázás támogatása.
3. Fejlesztési és tesztelési funkciók
Deployment Slot-ok: Átmeneti környezetek használata a zökkenőmentes frissítések érdekében.
Blue-Green Deployment támogatás: Különböző verziók tesztelése és gyors váltás az élő környezettel.
Git-integráció: Közvetlenül összekapcsolható GitHub, Azure Repos vagy más verziókezelő rendszerekkel.
CI/CD folyamatok támogatása: Automatizált telepítési folyamatok az Azure DevOps vagy más CI/CD rendszerek használatával.
4. Biztonsági funkciók
SSL/TLS támogatás: Egyéni domain-ekhez is biztosított.
Kötelező HTTPS: Az alkalmazások kényszeríthetik a HTTPS protokoll használatát.
Managed Identity: Alkalmazások biztonságos Azure-erőforrásokhoz való hozzáférése jelszó nélkül.
IP-restrikciók: Az alkalmazások elérésének korlátozása IP-cím alapján.
5. Integrációk és további szolgáltatások
Azure Functions integráció: Kisebb kódok futtatása eseményvezérelt környezetben.
Application Insights: Teljesítményfigyelés és hibakeresés az Azure Monitor segítségével.
Könnyű adatbázis-integráció: Az Azure SQL, Cosmos DB, vagy más adatbázis-szolgáltatások gyors csatlakoztatása.
API Management integráció: API-k könnyű publikálása és kezelése.
6. Adatvédelem és mentések
Automatikus biztonsági mentések: Az alkalmazások rendszeres mentése (elérhető a Standard szinttől).
Geo-disztribúció: Alkalmazások elérhetősége több régióban is biztosított.
7. Egyéb funkciók
Ingyenes csomag (Free Tier): Alapvető tesztelési és fejlesztési környezet.
Támogatás egyéni domain-ekhez: Egyedi domain nevek hozzárendelése az alkalmazásokhoz (Standard szinttől).
High Availability (HA): Alkalmazások magas rendelkezésre állásának támogatása.
Traffic Manager integráció: Forgalomirányítás globális alkalmazások számára.
Egyedi skálázási beállítások: Dedikált erőforrások elérhetősége a Premium és Isolated szinteken.
Funkciók csomagok szerint
Funkció
Free
Shared
Basic
Standard
Premium
Isolated
Több alkalmazás támogatása
✅
✅
✅
✅
✅
✅
Deployment Slot-ok
❌
❌
❌
✅
✅
✅
SSL/TLS támogatás
❌
❌
✅
✅
✅
✅
Automatikus biztonsági mentés
❌
❌
❌
✅
✅
✅
Geo-disztribúció
❌
❌
❌
✅
✅
✅
Dedikált erőforrások
❌
❌
✅
✅
✅
✅
Az Azure App Service Plan használata során fontos figyelembe venni az erőforrás-igényeket, az alkalmazás skálázási igényeit és a költségvetési korlátokat. Az ingyenes csomag nagyszerű kezdőknek, míg a Deployment Slots és a skálázási lehetőségek nagyobb projekteknél nyújtanak hatalmas előnyt. A megfelelő konfigurációval optimalizálhatod az alkalmazásaid teljesítményét és költséghatékonyságát.
Neked már van olyan webalkalmazásod, amely Azure-ban fut?
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! 🍾 🎊
Az elmúlt hetekben megismerhettük a böngészőben használható parancssori eszközt, a Cloud Shell-t a nagyobb felhőszolgáltatóknál, úgy mint az AWS vagy a Google Cloud. Amint láthattuk, a CloudShell 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. Ez az eszköz kiemelten hasznos mindazok számára, akik szeretnének kísérletezni, alkalmazásokat fejleszteni, tanulni vagy hibákat elhárítani a felhőben. És mindezt nagyon gyorsan.
A korábbi cikkekben bemutatott megoldásokkal ellentétben, az Azure esetén nem lesz olyan rejtett gép a háttérben, amelyen futtathatjuk a parancsainkat. Itt kissé másképpen működik, de ne szaladjunk ennyire előre.
Mi az Azure Cloud Shell?
Az Azure Cloud Shell az egyik legkényelmesebb és legrugalmasabb eszköz, amelyet az Azure felhasználóknak kínál. Ez a böngésző alapú parancssori környezet lehetővé teszi, hogy bárhonnan, bármilyen eszközről elérd és kezeld az Azure erőforrásaidat. Nincs szükség telepítésekre vagy konfigurációkra, mindössze egy internetkapcsolat és egy web böngésző kell hozzá.
Ami a legjobb ebben és az Azure Cloud Shell-t egyedivé teszi, hogy egy helyen férhetsz hozzá az Azure CLI-hoz, a PowerShell-hez, és számos előre telepített eszközhöz, miközben automatikusan hozzáférsz egy tárhelyhez (tárfiók – storage account) is, ahol a fájljaid és szkriptek is találhatók. Ez az eszköz nemcsak időt takarít meg, de megkönnyíti az Azure erőforrások hatékony és biztonságos kezelését.
Fő funkciók, előnyök és tippek:
Webalapú hozzáférés: Bármilyen böngészőből elérhető (akár mobiltelefonról is), nincs szükség telepítésre.
Beépített eszközök: Bash, PowerShell, Azure CLI, és számos más előre telepített eszköz. (Pl.: Git)
Tárhely integráció: Automatikus kapcsolat egy előre megadott tárfiókkal (Azure Storage Account) a szkriptek és fájlok tárolásához. Ezt a tárhelyet ráadásul felcsatolhatod a helyi számítógépedre is.
Egyszerű erőforrás-kezelés: Parancsok és szkriptek egyszerű, gyors futtatása az Azure erőforrások hatékony kezeléséhez.
Alias-ok beállítása: Gyorsítsd meg a munkádat egyéni parancsokkal.
VS Code integráció: Használd a Cloud Shell-t közvetlenül a Visual Studio Code-ból.
Gyorsbillentyűk: Ismerd meg a legfontosabb billentyűkombinációkat, hogy úgy dolgozz mint egy profi.
PowerShell és Bash együtt
A többi felhőszolgáltatótól eltérően, a Microsoft gondolt azon szakemberekre, akiknél vagy PowerShell vagy Bash tapasztalat a nagyobb. Hiszen előfordulhat, hogy valaki a felhő előtt csak PowerShell-t használt, vagy csak Bash-t. Azure-ban pedig senkinek sem kell újratanulnia semmit vagy megszoknia egy új nyelvet.
Egyetlen kattintással választhatunk Bash vagy PowerShell környezetet és ha meggondolnánk magunkat akkor is bármikor átválthatunk a másikra. Teljes szabadságot kapunk. Ez igazán jó hír mindenkinek. 🙂
Kattint a jobb felső sarokban lévő Cloud Shell ikonra.
Válaszd ki, hogy Bash-t vagy PowerShell-t szeretnél használni először
Utána lehetőséged van Tárfiók nélküli beállításra (ekkor a használat végén minden fájl és parancs előzmény törlődik) vagy ha szeretnéd tárolni a szkriptjeidet és fájljaidat, akkor a Tárfiók csatlakoztatása lehetőséget válaszd.
Ezután ki kell választanod azt az előfizetést, amelyben a fájlokat tároló tárfiók van/lesz.
Következő lépésben 3 lehetőséged van:
Meglévő tárfiók kiválasztása: Ez akkor hasznos, ha a tárfiókod már létezik és azt szeretnéd felcsatolni a Cloud Shell mögé
Létrehozunk Önnek egy tárfiókot: Ez esetben az Azure létrehoz egy tárfiókot véletlenszerűen a kijelölt előfizetésben. Ez akkor hasznos, ha gyorsan szeretnék a beállítást elvégezni. (nem javasolt)
Szeretnék létrehozni egy tárfiókot: Általában ezt a lehetőséget választjuk a legtöbb esetben, mert így mi adjuk meg, hogy milyen néven és melyik erőforráscsoportba kerüljön a tárfiók.
Ha a harmadikat választottuk, akkor a következő lapon meg kell adnunk az alábbi adatokat:
Előfizetés neve: Ahová a tárfiókot létrehozzuk
Erőforráscsoport: Ahová a tárfiók létrejön
Régió: Melyik régióban legyen az erőforráscsoport és a tárfiók
Tárfiók neve: Egyedi névnek kell lennie
Fájlmegosztás: Fájlmegosztás neve, ahol a fájlokat majd mentjük és amit fel tudunk csatolni a saját gépünkre (Windows, Linux, Mac)
Ha ezzel megvagyunk, akkor a Létrehozás gombra kattintva 1-2 perc alatt befejeződik a Cloud Shell beállítása.
Példa parancsok
Amint elindult a Cloud Shell, végtelen lehetőségünk van arra, milyen parancsokat futtatunk. Innen már csak rajtunk és a kitűzött céltól függ a parancsok bonyolultsága és jellege.
Korábban már írtam egy cikket a böngészőből használható parancssori eszközökről. Akkor az AWS CloudShell megoldását mutattam be nektek.
Tekintsünk kicsit vissza, mi is az a CloudShell. 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. Tehát nincs is más dolgod, csak jelentkezz be a kedvenc felhőszolgáltatódnál regisztrált fiókodba, és keresd meg a navigációs sávon a CloudShell ikont. Ezután már kezdheted is az erőforrások kezelését.
Száz szónak is egy a vége: Ez az eszköz kiemelten hasznos mindazok számára, akik szeretnének kísérletezni, alkalmazásokat fejleszteni, tanulni vagy hibákat elhárítani a felhőben. És mindezt nagyon gyorsan.
Google Cloud Shell
A Google Cloud Shell egy interaktív parancssori felület, amely a Google Cloud Platformhoz csatlakozó, előre konfigurált Linux környezetet biztosít. A környezet tartalmazza a legfontosabb felhő-parancssori eszközt (pl.: git, gcloud, kubectl), valamint az olyan nyelvekhez szükséges futtatókörnyezeteket, mint a Python, Go és NodeJS.
Korábbi ismereteink alapján következik, hogy minden eszközről elérhető, legyen az egy laptop, tablet vagy egy okostelefon. 🙂
Hasonlóan az AWS-hez, itt is egy rejtett virtuális gép indul el a háttérben (1-2 perc legfeljebb), ahol a parancsainkat futtathatjuk. Ez közvetlenül kapcsolódik a Google Cloud projektünkhöz, így miután megnyílt a Cloud Shell, már nem szükséges további bejelentkezés.
A Cloud Shell linux gép 1 vCPU-val és 4 GB RAM-mal rendelkezik, ami a legtöbb feladat végrehajtásához bőven elegendő. Azonban, bonyolult vagy komplex feladatok végrehajtásakor előfordulhat, hogy elérjük ezen környezet határait. Amikor használjuk a Cloud Shell-t akkor erre mindig legyünk tekintettel.
Arra is érdemes felkészülni, hogy a környezet 20 perc inaktivitás után automatikusan leáll és megszakítja az aktuális munkamenetet. A benne tárolt fájlokat, parancs-előzményeket azonban megtartja, így akadályozza meg a lekérdezéseink adatainak elvesztését.
A Cloud Shell-ben előre konfigurált csomagok vannak, hogy ezzel is gyorsítsák számunkra a munkát. Ezeket a Google szakemberei folyamatosan frissítik és bővítik. Készítettem egy rövid listát a legfontosabb elérhető csomagokról és eszközökről:
Programozási nyelvek: Python, Node.js, Go, Java.
Verziókezelés: Git.
Hálózati eszközök: SSH, Curl, Wget.
Támogatott keretrendszerek: Google Cloud SDK, Terraform, Docker, Kubernetes CLI.
Ebből is látszik, mennyire hasznos ez az eszköz a mindennapokban.
Leghasznosabb funkciók
Cloud Editor: Elérhető egy beépített Cloud Shell Editor, amely egy teljes funkcionalitású webalapú IDE, amely támogatja a forráskód kezelését, hibakeresést és verziókezelést is. Ha valaki ismeri a Visual Studio Code-ot akkir ebben is otthon fogja magát érezni.
Parancssori eszközök: A Cloud Shell tartalmazza a legfontosabb eszközöket, amellyel a Google Cloud-ban lévő erőforrásaid kezelheted.
Google Drive integráció: Minden Cloud Shell környezethez tartozik egy 5 GB-os, tartós tárhely a felhasználó adataihoz. Ez a tárhely közvetlenül elérhető a környezetben.
Ephemeral Cloud Shell: Ez a funkció egy nagyon gyors indítást biztosít a futtató környezetnek. Ha bekapcsoljuk, akkor egy ideiglenes környezetként indítja a Cloud Shell-t, ami azt jelenti, hogy amint befejeztük a munkamenetet, minden adat törlődik. Izolált munkafázisokhoz ideális lehet.
Ezen kívül még rengeteg hasznos funkcióval rendelkezik. A teljesség igénye nélkül: fájlok le- és feltöltése, színsémák és színek módosítása, használati statisztikák, web alapú előnézet.
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. 🙂