Mi az a DeepSeek? Egy új OpenAI modell? Nem! A DeepSeek egy hirtelen berobbant projekt, amely egyre nagyobb figyelmet kap az AI világában. A csapat célja, hogy nyílt forráskódú, nagy teljesítményű és költséghatékony AI-modelleket hozzanak létre, amelyeket a fejlesztők könnyen beépíthetnek saját rendszereikbe. Az egyik legújabb modelljük, a DeepSeek R1, mostantól elérhető az Azure AI Foundry-n, így egyszerűen kipróbálhatod és integrálhatod a saját alkalmazásaidba.
DeepSeek és Azure
A DeepSeek egy AI-kutatásra és fejlesztésre specializálódott csapat, amely nagyméretű nyelvi modelleket (LLM) és más AI-megoldásokat készít. Céljuk, hogy magas teljesítményű, nyílt forráskódú és költséghatékony AI-modelleket biztosítsanak a fejlesztők és vállalatok számára.
A DeepSeek R1 az egyik legújabb nyelvi modelljük, amely hatékony és könnyen használható, így lehetőséget ad a fejlesztőknek, hogy fejlett AI-funkciókat építsenek be alkalmazásaikba anélkül, hogy komoly infrastruktúrába kellene fektetniük.
Mostantól a DeepSeek R1 elérhető az Azure AI Foundry modellkatalógusában és a GitHub-on, így egyszerűen integrálható különböző AI-megoldásokba.
Ráadásul már magyar nyelven is elérhető hozzá a felület, ami még egyszerűbbé teszi a megismerést és a használatot.
Gyorsabb AI-fejlesztés az Azure AI Foundry-n
Az AI-technológia folyamatosan fejlődik, és egyre könnyebben elérhetővé válik. A DeepSeek R1 egy nagy teljesítményű és költséghatékony nyelvi modell, amely lehetővé teszi, hogy a felhasználók minimális infrastruktúrával kihasználják a mesterséges intelligencia előnyeit.
Ha az Azure AI Foundry platformon használod a DeepSeek R1-et, akkor gyorsan kísérletezhetsz, tesztelheted az eredményeket és skálázhatod az alkalmazásodat. A beépített eszközök segítenek az AI-modell teljesítményének mérésében és optimalizálásában.
A Microsoft célja, hogy az Azure AI Foundry egy olyan hely legyen, ahol a legjobb AI-modellek egy helyen elérhetőek, így a fejlesztők és vállalatok gyorsabban és hatékonyabban hozhatnak létre AI-alapú megoldásokat.
Biztonságos és megbízható AI
A DeepSeek R1 komoly biztonsági teszteken és ellenőrzéseken esett át, hogy minimalizálják a kockázatokat. Az Azure AI Content Safety automatikus tartalomszűrési rendszerrel is rendelkezik, amely alapértelmezetten be van kapcsolva, de igény szerint kikapcsolható.
Az Azure AI Foundry folyamatosan monitorozza az AI-modell kimeneteit, így a telepítés előtt és után is ellenőrizheted, hogy megfelelően működik-e. Ezzel biztosítjuk, hogy a platform biztonságos és megfelelőségi szempontból is vállalati szintű környezetet biztosítson.
Hogyan próbálhatod ki a DeepSeek R1-et?
Jelentkezz be az Azure Portálra, regisztrálj egy Azure AI Foundry projektet.
Keress rá a DeepSeek R1-re az Azure AI Foundry modellkatalógusában.
Nyisd meg a modell adatlapját.
Kattints a „Deploy” gombra, hogy megkapd az API-t és a hozzáférési kulcsot.
A telepítési oldalon pillanatok alatt megkapod a szükséges adatokat.
Próbáld ki a modellt a beépített playgroundban.
Használd az API-t különböző alkalmazásokkal és kliensekkel.
A DeepSeek R1 mostantól kiszolgáló nélküli, nyilvános végponton is elérhető az Azure AI Foundry-n. Kezdd el itt: Azure AI Foundry, és próbáld ki a DeepSeek modellt!
A GitHubon további forrásokat és részletes útmutatókat találhatsz a DeepSeek R1 integrációjáról, többek között az alábbi cikkben: GitHub Models.
Hamarosan a DeepSeek R1 könnyített verzióját is futtathatod helyben, a Copilot+ segítségével. További részletek a Windows Fejlesztői Blogon: Windows Developer Blog.
A Microsoft egyre nagyobb hangsúlyt fordít erre a területre és folyamatosan bővíti az Azure AI Foundry modellkatalógusát. Bevallom én is kíváncsian várom, hová fejlődik ez és, hogy a fejlesztők és vállalatok hogyan használják a DeepSeek R1-et valódi problémák megoldására. Az látszik, hogy a cél, hogy minden vállalkozás hozzáférjen a legmodernebb AI-megoldásokhoz, és a lehető legtöbbet hozza ki belőlük. Ezzel pedig egyértelműen az Azure felé terelik a felhasználókat.
Te használod már valamelyik AI megoldást vagy magát az Azure-t? 🙂
Az Azure-ban a felhőalapú erőforrások létrehozása és kezelése lehet manuális, de az igazi hatékonysága és vagánysága az automatizálásban rejlik. Az Azure Resource Manager (ARM) sablonok egy hatékony eszközt biztosítanak az infrastruktúra kód alapú kezelésére (Infrastructure as Code, IaC), amely lehetővé teszi az erőforrások deklaratív módon történő létrehozását, frissítését és kezelését.
Ebben a cikkben áttekintjük az ARM sablonok alapjait, erősségeit, valamint a egyéb lehetőségeket, mint a függvények használata, a beágyazott (nested templates) és a hivatkozott (linked templates) sablonok. Kitérünk arra is, hogyan lehet újrahasználni a sablonokat kisebb módosításokkal, illetve milyen korlátai vannak az ARM sablonoknak.
Milyen felhőszolgáltatási modellbe tartozik az ARM sablon?
Habár az ARM sablon egy eszköz, amellyel erőforrásokat hozunk létre, most a besorolást a létrehozható erőforrások alapján tesszük meg. Tehát az Infrastructure as a Service (IaaS) és Platform as a Service (PaaS) kategóriába tartozik attól függően, hogy milyen erőforrásokat telepítünk vele:
IaaS (Infrastructure as a Service): Ha virtuális gépeket, hálózati konfigurációkat vagy tárolókat hozunk létre ARM sablonok segítségével, akkor ezek az infrastruktúra réteghez tartoznak.
PaaS (Platform as a Service): Ha az ARM sablonokat például egy Azure App Service, Azure SQL Database vagy más menedzselt szolgáltatások telepítésére használjuk, akkor azokat a PaaS kategóriába sorolhatjuk.
Az ARM sablonok tehát rugalmasan használhatók mind az infrastruktúra, mind pedig az alkalmazási szintű szolgáltatások kezelésére az Azure környezetben.
Mi az az ARM sablon?
Az ARM sablon egy JSON formátumú fájl, amely deklaratívan írja le az Azure erőforrások konfigurációját. Ezzel biztosítható, hogy az infrastruktúra következetes módon legyen telepítve, akár manuálisan, akár CI/CD folyamatokban.
ARM sablon felépítése
Egy alapvető ARM sablon a következő részekből áll:
$schema: Meghatározza a sablon JSON sémáját.
contentVersion: Verziókezeléshez használható. (beágyazott és hivatkozott sablonok esetén kiemelt szerepe van)
parameters: A telepítéskor megadható paraméterek.
variables: Kiszámított értékek definiálása.
resources: Az Azure erőforrások definiálása.
outputs: A telepítés végeredményeként visszaadható adatok. (beágyazott és hivatkozott sablonok esetén különösen hasznos)
Példa egy egyszerű ARM sablonra, amely egy Tárfiókot (Storage Account) hoz létre:
Az ARM sablonok deklaratív módon határozzák meg az infrastruktúrát, így az eredmény mindig konzisztens lesz, függetlenül attól, hányszor futtatjuk.
2. Újrafelhasználhatóság és skálázhatóság
A sablonokat egyszer elkészíthetjük, majd később más projektekben is használhatjuk. Segítenek a nagyvállalati szintű infrastruktúra kezelésében.
3. CI/CD támogatás
Beépíthetők DevOps folyamatokba, így automatizált telepítéseket és frissítéseket hajthatunk végre az Azure Pipelines vagy GitHub Actions segítségével.
4. Függvények használata
Az ARM sablonok támogatják a beépített függvényeket, amelyek dinamikus adatmanipulációt tesznek lehetővé. Számtalan függvény használható a sablonban, melyek bizonyos korlátozások mellett együtt és összefűzve is használhatók.
Ezzel a módszerrel egyetlen sablont használhatunk több környezetben anélkül, hogy jelentős módosításokra lenne szükség.
Beágyazott (Nested) és hivatkozott (Linked) ARM sablonok
Beágyazott sablonok (Nested Templates)
A beágyazott sablonok lehetővé teszik, hogy egy ARM sablonon belül további sablonokat definiáljunk és telepítsünk. Ez segít az infrastruktúra modularizálásában és újrafelhasználhatóságában.
Példa egy beágyazott sablonra, amely egy Tárfiókot hoz létre:
A hivatkozott sablonok lehetővé teszik, hogy külső forrásból (például egy Azure Storage Blob-ból) töltsünk be egy másik ARM sablont. Ez különösen hasznos nagyobb infrastruktúrák esetén, ahol az egyes sablonokat külön szeretnénk kezelni és frissíteni.
A hivatkozott sablonok lehetővé teszik a jobb kezelhetőséget és karbantarthatóságot, különösen összetett környezetek esetén.
A „mode” beállítás szerepe
Bizonyára feltűnt, hogy mindegyik példában szerepel egy „mode” nevű parameter. A „mode” beállítás határozza meg, hogy az ARM sablon telepítése hogyan történjen az Azure környezetben. Két lehetőség van:
Incremental: Csak az új vagy módosított erőforrásokat hozza létre vagy frissíti. A meglévő erőforrásokat nem törli.
Complete: Az összes meglévő erőforrást eltávolítja, amely nincs megadva a sablonban, és csak az új sablon szerinti konfiguráció marad meg.
Általában az Incremental módot ajánljuk (ez az alapértelmezett), hogy elkerüljük az adatok vagy erőforrások véletlen törlését.
ARM sablon futtatása PowerShell-ből és Azure CLI-ból
Fontos, hogy a sablon telepítése előtt minden olyan „erőforrás csoportot”létre kell hoznunk, amelybe erőforrásokat szeretnénk létrehozni.
PowerShell használata
Az ARM sablon PowerShellből történő telepítéséhez az New-AzResourceGroupDeployment parancsot használhatjuk:
Azure CLI-ben az az deployment group create parancsot használhatjuk:
az deployment group create --resource-group EroforrasCsoport --template-file template.json --parameters @parameters.json
Inline paraméterek megadásával:
az deployment group create --resource-group EroforrasCsoport --template-file template.json --parameters tarfiokNeve=cloudmentorsa
Ezekkel a parancsokkal az ARM sablonokat egyszerűen telepíthetjük az Azure környezetben.
Példa egy parameters.json fájlra
A parameters.json fájl a sablon által használt paraméterek megadására szolgál, lehetővé téve a sablon egyszerű újrafelhasználását különböző konfigurációkkal. Egy tipikus parameters.json fájl így néz ki:
Ez biztosítja, hogy az ARM sablon ugyanazt a logikát kövesse, de az értékek rugalmasan változtathatók legyenek.
ARM sablonok korlátai
Bonyolult szintaxis: Az ARM sablonok JSON-alapúak, ami nagyobb komplexitás esetén nehezen olvashatóvá válhat.
Nincs beépített ismétlés: Bár van néhány lehetőség (pl. copy loop), a Terraform-hoz képest kevésbé rugalmas.
Korlátozott hibakeresési lehetőség: A hibák az Azure Portalon vagy CLI-n keresztül nehezen diagnosztizálhatók.
Hosszabb telepítési idő: Összetettebb sablonok esetén a telepítés több percig is eltarthat.
Erőforráscsoport létrehozására nem használható: A sablon egy vagy több, létező erőforráscsoportba futtatható, de erőforráscsoportot nem tud létrehozni. (az előre létre kell hozni)
Összegzés
Az Azure ARM sablonok kulcsfontosságú eszközök a modern felhőalapú infrastruktúra kialakításában és kezelésében. Ha elkezdenéd használni az ARM sablonokat, érdemes egy kisebb projektben kipróbálni őket, majd fokozatosan bevezetni az összetettebb sablonokat.
Tudtad, hogy ha az ARM-be beletanulsz, akkor azzal együtt az teljes Azure automatizálás kulcsát is megkapod? 🙂
Korábban már beszéltünk a Kubernetes-ről, Docker-ről és a különböző konténerkép kezelési megoldásokról, mint az AWS ECR és Azur ACR. Azonban arról még nem esett szó: Mi az a képfájl? Hogyan épül fel? Milyen, számunkra fontos típusokról kell beszélnünk?
A konténerizáció egyik legfontosabb eleme a konténerképek használata, amelyek a futtatható környezeteket biztosítják. A Docker és az OCI (Open Container Initiative) képek szerkezete hasonló, mivel az OCI a Docker formátumának egy nyílt ipari szabványa lett. Az OCI létrejötte azért fontos, mert egy iparági szabványt biztosít a konténerképek kezelésére, elősegítve az interoperabilitást és a hordozhatóságot különböző konténer futtatókörnyezetek között. Ezzel kiküszöböli a vendor lock-in problémát, amely egyetlen technológiai ökoszisztémához kötné a fejlesztőket és üzemeltetőket.
Most szeretném nektek bemutatni a képek szerkezetét, a rétegek kezelését, a manifest-ek szerepét és a verziókezelés módját.
Docker és OCI képek alapjai
A Docker és az OCI képek egy rétegelt fájlrendszert használnak, amely lehetővé teszi a hatékony tárolást és a gyors betöltést. Egy konténerkép három fő részből áll:
Rétegek (Layers): A képfájl tartalma rétegekre van bontva, amelyek egymásra épülnek.
Manifest fájl: Egy JSON-alapú leírófájl, amely meghatározza a kép struktúráját és annak különböző attribútumait.
Config (Konfigurációs fájl): A futási beállításokat tartalmazza, mint például a környezeti változók és az alapértelmezett parancsok.
Rétegek kezelése
A konténerképek rétegei a Copy-on-Write (CoW) elv alapján működnek. Ez azt jelenti, hogy egy újabb réteg csak a módosított fájlokat tárolja, miközben az előző rétegek változatlanok maradnak. A rétegek kezelésének főbb szempontjai:
Rétegek építése: Minden egyes RUN, COPY és ADD utasítás egy új réteget hoz létre a Dockerfile feldolgozása során. (Példa)
Rétegek optimalizálása: Érdemes minél kevesebb réteget létrehozni, és a gyakran módosuló fájlokat a végső rétegbe helyezni, hogy a cache hatékony maradjon.
Rétegek megosztása: Ha több kép ugyanazokat az alaprétegeket használja, a konténer futtatókörnyezet (pl. Docker) csak a különböző rétegeket tölti le, így csökkenti a letöltési és tárolási igényt.
A Manifest szerepe
A manifest fájl egy JSON struktúra, amely meghatározza a kép rétegeit és meta adatait. Egy tipikus manifest a következő információkat tartalmazza:
SchemaVersion: A manifest formátum verziója.
Layers: A képet felépítő rétegek listája (digest formátumban).
Config: A konfigurációs fájl hash-e, amely tartalmazza a környezeti változókat és az indítási parancsokat.
MediaType: A fájlformátum meghatározása (Docker vagy OCI specifikus).
Az OCI és Docker image manifest formátumok nagyon hasonlóak, de az OCI teljesen nyílt és szabványosított formátumot biztosít.
Képverziók és a rétegek kezelése
A konténerképek verziókezelése többnyire címkék (tags) és digest-ek segítségével történik:
Tag (Címke): Egy könnyen olvasható név, például ubuntu:24.04 vagy webalkalmazas:1.2.0. A címkék bármikor új képverzióhoz rendelhetők.
Digest (SHA256 azonosító): Egy egyedi azonosító (pl. sha256:abcd1234...), amely garantálja, hogy a megadott kép mindig ugyanaz marad.
Rétegek újrahasznosítása: Ha egy új verzióban csak néhány fájl változik, akkor a rétegek nagy része változatlan marad, és a Docker vagy OCI runtime csak az új rétegeket tölti le. Ezzel tárhelyet és internet sávszélességet is spórol.
A konténerképek rétegei az alábbiak szerint épülnek fel:
Base Image (Alapkép): Az operációs rendszer és a minimális futtatókörnyezet.
Layer 1 (Alapcsomagok és függőségek): A szükséges könyvtárak és függőségek telepítése.
Layer 2 (Alkalmazáskód hozzáadása): Az egyedi alkalmazás fájljainak bemásolása.
Layer 3 (Konfiguráció és optimalizáció): A futtatási beállítások és optimalizációk alkalmazása.
Final Image (Végleges kép): Az összes réteg egyesítésével elkészült futtatható konténerkép.
Mi a különbség a Docker és az OCI között?
Bár az OCI a Docker formátumából fejlődött ki, a kettő között van néhány alapvető különbség:
Nyílt szabvány: Az OCI egy iparági konszenzusra épülő nyílt szabvány, míg a Docker formátumát eredetileg a Docker Inc. hozta létre.
Kompatibilitás: Az OCI szabvány célja a konténerképek hordozhatóságának biztosítása bármely futtatókörnyezet között, míg a Docker esetén elsősorban a Docker Engine-re optimalizált képekkel dolgozunk.
Modularitás: Az OCI szabvány különválasztja a runtime és az image specifikációkat, így rugalmasabb, és más futtatókörnyezetek is könnyen alkalmazhatják.
Összegzés
A Docker és OCI képek rétegelt felépítése lehetővé teszi a hatékony tárolást, gyors letöltést és verziókezelést. A manifest fájl kulcsfontosságú szerepet játszik a kép struktúrájának meghatározásában, míg a rétegek megosztása és optimalizálása jelentősen csökkentheti az erőforrásigényt.
Az OCI formátum szabványosította ezt a struktúrát, így biztosítva a kompatibilitást és a jövőbeli skálázhatóságot.
Remélem kicsit sikerült érhetővé tennem a képfájlok struktúráját. 🙂
A modern alkalmazásfejlesztés egyik alappillére a konténerizáció. Az olyan eszközök, mint a Docker, lehetővé teszik, hogy alkalmazásainkat izolált, skálázható konténerekben futtassuk. A konténerizációhoz azonban szükség van egy megbízható tárhelyre, ahol a konténerképeket tárolhatjuk, kezelhetjük és megoszthatjuk.
Ebben a cikkben bemutatjuk az AWS Elastic Container Registry-t (ECR), amely egy teljes mértékben felügyelt konténerképtároló szolgáltatás az AWS-ben. A cikk segít megismerni az alapokat és megpróbál megmutatni olyan fejlettebb funkciókat, mint az integrációs lehetőségek és az automatizált életciklus kezelés.
Mi az AWS ECR?
Az AWS Elastic Container Registry (ECR) egy (PaaS) kategóriába tartozó, felügyelt szolgáltatás, amely lehetővé teszi Docker és OCI (Open Container Initiative) kompatibilis konténerképek tárolását, kezelését és megosztását.
Az ECR maga a szolgáltatás elnevezése. Ezen belül történk a varázslás, hiszen ezen belül repository-kat hozhatunk létre. Egy repository egy olyan tárhely, amely egy adott alkalmazás konténerképeit és azok különböző verzióit (változatait) tartalmazza.
Az AWS ECR struktúrája
Az alábbi hierarchikus struktúria szemlélteti az ECR-t:
Repository: tartalmazza a különböző alkalmazás verziók konténerképeit
Hogyan tölthetek fel képet az ECR-be?
Első lépés, hogy fejlesztenem kell egy alkalmazást, amely docker vagy OCI kompatibilis. Ehhez találsz példát az én GitHub kódjaim között is.
Miután elkészítetted a képfájlt a számítógépeden, vagy valamilyen pipeline segítségével, nincs más dolgod, mint bejelentkezni ECR-be és feltölteni oda az aktuális konténerkép verzióját.
Ahhoz, hogy egy Docker-képet feltölts egy ECR repository-ba, kövesd az alábbi lépéseket:
docker tag sajat-kontener:latest <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com/node-app:latest
docker tag sajat-kontener:latest <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com/node-app:1.2.0
Az ECR-ben tárolt képeket könnyen használhatod AWS szolgáltatásokkal, például az ECS vagy az EKS segítségével.
Ha egy Amazon ECS clusterben szeretnél futtatni egy konténert az ECR-ből, hozz létre egy Task Definition-t, amely tartalmazza az ECR repository URL-jét:
Amikor nagyon sok alkalmazásunk konténerképeit tároljuk és ezekből rendszeresen készítünk új verziókat, előbb-utóbb azzal szembesülünk, hogy a régi és nem használt verziók sok helyet foglalnak. Ez pedig azt jelenti, hogy sok tárhelyet foglalnak, amely növeli a költségeinket.
Szerencsére az ECR támogatja az életciklus-szabályok (Lifecycle Policies) használatát, amelyek segítenek automatikusan törölni a régi vagy nem használt konténerképeket.
Ezeket szabályokon keresztül tudjuk megtenni. Egy-egy ilyen szabályhoz csupán néhány paramétert kell megadnunk, majd a szabályok között felállítanunk egy prioritási sorrendet, a többit az AWS elvégzi helyettünk.
Példa 1: egy olyan szabályra, amely csak az utolsó 5 képverziót tartja meg, és törli a régebbi verziókat:
{
"rules": [
{
"rulePriority": 1,
"description": "Tartsuk meg az utolsó 5 verziót",
"selection": {
"tagStatus": "tagged",
"countType": "imageCountMoreThan",
"countNumber": 5
},
"action": {
"type": "expire"
}
}
]
}
Példa 2: Összetett példa: A ‘latest’ verzió soha nem törlődik, de minden más 90 nap után törlődik:
{
"rules": [
{
"rulePriority": 1,
"description": "A 'latest' verzió soha nem törlődik",
"selection": {
"tagStatus": "tagged",
"tagPrefixList": ["latest"]
},
"action": {
"type": "retain"
}
},
{
"rulePriority": 2,
"description": "Minden más kép törlődik 90 nap után",
"selection": {
"tagStatus": "any",
"countType": "sinceImagePushed",
"countUnit": "days",
"countNumber": 90
},
"action": {
"type": "expire"
}
}
]
}
AWS ECR integráció más AWS szolgáltatásokkal
Az AWS ECR könnyen integrálható más AWS szolgáltatásokkal, mint például:
Amazon ECS (Elastic Container Service)
Az ECR közvetlenül támogatja az ECS Fargate és ECS EC2 alapú futtatási módokat. Ha egy ECS clusterben szeretnéd futtatni az ECR-ben tárolt képeket, egyszerűen megadhatod az ECR repository URL-jét a Task Definition-ben.
Amazon EKS (Elastic Kubernetes Service)
Ha Kubernetes-t használsz az AWS-en, akkor az ECR tökéletes tárhely lehet a Kubernetes Pod-ok számára. Az alábbi módon hozhatsz létre hitelesítési „secret”-et, amely lehetővé teszi a Kubernetes számára az ECR repository elérését:
Ha AWS Lambda-t szeretnél konténer alapú csomagként használni, akkor az ECR egy megbízható tárhely lehet az ilyen konténerképek számára.
Összegzés
Az AWS ECR egy igazán sokoldalú konténerképtároló szolgáltatás, amely lehetővé teszi a konténerizált alkalmazások hatékony kezelését. Az életciklus-kezelés segít optimalizálni a tárhely felhasználást, így elkerülhető a felesleges konténerképek felhalmozódása. Emellett az ECR könnyedén integrálható más AWS szolgáltatásokkal, így egy teljes körű konténerizált fejlesztési és futtatási (teszt, éles, stb.) környezetet kínál.
Neked is van olyan ötleted, amelyet konténerképben lehetne ECR-en tárolni? 🚀
A felhő (Cloud) ma már mindennapi életünk része, mégis sokan még mindig misztikus, bonyolult technológiának tartják. Ha Te is azok közé tartozol, akik szeretnék megismerni, hogyan működik a Cloud és milyen lehetőségeket kínál, de tartasz attól, hogy csak programozói tudással lehet benne karriert építeni, akkor ez a cikk Neked szól!
Mi az a Cloud?
Internetről elérhető számítógépek összessége, amelyeken valamilyen alkalmazás és/vagy adatbázis működik
Egyszerűen fogalmazva a Cloud (felhő) egy olyan szolgáltatási modell, amely lehetővé teszi az adatok tárolását, alkalmazások futtatását és informatikai erőforrások igénybevételét az interneten keresztül. Ahelyett, hogy egy adott vállalat vagy személy saját szervereket tartana fenn, a felhő lehetőséget ad arra, hogy ezekhez a szolgáltatásokhoz bárhonnan hozzáférjünk.
Miért fontos a Cloud?
A Cloud a modern vállalatok és technológiák mozgatórugója. Segít a költségek csökkentésében, az adattárolás biztonságának növelésében és az innovatív ötletek gyorsabb megvalósításában. Napjainkban már nemzetközi viszonylatban is átlagosnak tekinthető a felhő használata. Ez motiválhat Téged is arra, hogy belépj ebbe a világba.
Szükséges-e programozói tudás a Cloud karrierhez?
A legnagyobb tévhit a Cloud-dal kapcsolatban, hogy csak programozók és fejlesztők tudnak benne elhelyezkedni. Ez nem igaz! Azt nem tagadom, hogy ha egy projektet indítunk, akkor a felhő kapcsán előbb-utóbb programoznunk kell. Ez a felhő sajátossága. Azonban a Cloud rengeteg más szerepkört is kínál, amelyekhez nincs szükség kódolási tudásra. Ilyenek például:
Cloud Sales és marketing: Cloud megoldások értékesítése és promóciója vállalatok számára.
Cloud Project Manager: Cloud alapú projektek vezetése, különböző csapatok koordinálása.
Cloud Support: Segítségnyújtás és úgyfélszolgálat Cloud szolgáltatásokhoz.
Business Analyst: Elemzések készítése, amely segíti a Cloud megoldások bevezetését és optimalizálását.
Hogyan érdemes elkezdeni?
Ha szeretnél megismerkedni a Cloud világával, érdemes az alábbi lépéseket követni:
Tanulj az alapokról: Számos ingyenes forrás áll rendelkezésre, mint például az AWS, Azure és Google Cloud ingyenes oktatási anyagai, vagy az én blogom is, ahol az alapokkal is rendszeresen foglalkozunk.
Próbálj ki Cloud szolgáltatásokat: Készíts saját fiókot egy Cloud platformon, és fedezd fel a lehetőségeket. (Azure-ban kaphatsz 200 USD-t 30 napra. És mindig vannak ingyenes szolgáltatások.)
Vegyél részt tanfolyamokon: Számos online képzés segít az alapok elsajátításában, akár programozói tudás nélkül is. Én a Gerilla Mentor Klub oktatójaként meleg szívvel ajánlom az itteni képzéseket.
Csatlakozz közösségekhez: Facebook csoportok, LinkedIn fórumok és olyan oktatással foglalkozó cégek közössége mint például a Gerilla Mentor Klub kiváló lehetőséget biztosítanak a tanulásra és kapcsolatépítésre.
Hogyan építhetünk Cloud karriert, ha nincs mély informatikai tudásunk?
A Cloud karrierépítés nem igényel feltétlenül mély technikai ismereteket. Ha nincs informatikai háttered, az alábbi lépések segíthetnek:
Fókuszálj az üzleti és menedzsment (vezetői) pozíciókra: A Cloud világában nemcsak mérnöki, hanem üzleti, ügyfélszolgálati és projektmenedzsment szerepek is elérhetők.
Fejleszd a Cloud alapú eszközök ismeretét: Olyan szolgáltatásokat érdemes megismerni, mint a Google Drive, Microsoft 365, OneDrive, vagy bármilyen SaaS (Software-as-a-Service) megoldás.
Szerezz tanúsítványokat: Az olyan belépő szintű tanúsítványok, mint az AWS Certified Cloud Practitioner, az Azure Fundamentals vagy a Google Cloud Digital Leader, segíthetnek megérteni az alapokat és megnövelhetik az esélyeidet a munkaerőpiacon. Habár ehhez kell némi informatikai tudás, bárki számára elérhető.
Vegyél részt Cloud fókuszú képzéseken: Tanulj meg Cloud alapú költségoptimalizálást, digitális transzformációt vagy ügyféltámogatási stratégiákat. Olyan területekre fókuszálj, amelyek habár nem konkrétan a felhővel kapcsolatosak, de a felhőben is létező terletek.
Építs kapcsolatokat Cloud szakemberekkel: Vegyél részt konferenciákon, lépj be online közösségekbe, ahol tapasztaltabb emberektől tanulhatsz. Építs kapcsolatot LinkedIn-en és keress hozzád hasonló, fejlődni vágyó embereket.
Keress gyakornoki vagy junior pozíciókat: Sok vállalat keres olyan embereket, akik nyitottak a tanulásra, és az alapok elsajátítása után fejlődhetnek a vállalaton belül.
Összegzés
A Cloud nem csak a fejlesztők és mérnökök világa. Rengeteg lehetőséget kínál olyanok számára is, akik üzleti, projektmenedzsment vagy ügyfélszolgálati területen szeretnének elhelyezkedni. A legfontosabb lépés az, hogy merj elindulni és felfedezni ezt a dinamikusan fejlődő világot!
Legutóbbi cikkemben jelentettem be a Kubernetes-el kapcsolatos sorozatot, melynek ez az első része. Akkor részletesebben írtam az okokról és. az érzelmi kötödésről, ami arra motivált, hogy ezen területtel is foglalkozzunk. Mivel ez a technológia olyannyira része ma már a felhő világának, mint egy virtuális gép vagy egy workflow megoldás, így ennek is helye van itt nálam.
Ami fontos, hogy a Docker technológiáról itt külön nem beszélünk, de fogok nektek írni abban a témában is cikkeket, hogy a teljes képet lássátok. Addig is szeretném a figyelmetekbe ajánlani a Docker-el kapcsolatos GitHub repository-t.
Akkor most ez mi is
Egy konténer futtatása egy laptopon viszonylag egyszerű. Feltelepítem a Docker Desktop alkalmazást és már használhatom is. Ugye? Azonban a konténerek összekapcsolása, működtetése több host-on (számítógépen) keresztül, azok skálázása, alkalmazások leállás nélküli telepítése és a szolgáltatások felfedezése számos egyéb szempont mellett már nehézségekbe ütközhet.
A Kubernetes ezekre a kihívásokra nyújt megoldást a legegyszerűbb megoldásoktól a bonyolult, komplex, több-rétegű megoldásokig. Mindezt egy igazán robosztus, mégis nyitott és bővíthető API segítségével. Az új objektumok és vezérlők hozzáadásának lehetősége egyszerű testre szabást biztosít a legkülönfélébb igényekhez.
A hivatalos weboldal szerint a Kubernetes:
egy nyílt forráskódú szoftver, amely konténerizált alkalmazások telepítésének, skálázásának és kezelésének automatizálására szolgál
Egy kis történelem
A Kubernetes egyik kulcsfontosságú aspektusa, hogy a Google több mint 1,5 évtizedes tapasztalatára épít, amelyet a borg nevű projekten gyűjtöttek.
A Google infrastruktúrája már a virtuális gépek adatközpontokban való elterjedése előtt nagy méretet ért el, és a konténerek kifinomult megoldást nyújtottak a fürtökön (cluster) futó csomagok (alkalmazások) kezelésére. A konténerek segítségével a Google képes volt maximalizálni a hardverhasználatot és minimálisra csökkenteni az erőforrás-pazarlást, mivel a konténerek könnyűsúlyú, jól izolált környezetet biztosítottak az alkalmazások számára.
Ez a megközelítés lehetővé tette, hogy különböző alkalmazások egyazon fürtön fussanak anélkül, hogy egymást zavarnák. A fürtök hatékony kihasználása és az elosztott alkalmazások kezelése a Google kihívásainak központi eleme volt, különösen olyan nagy léptékű rendszereknél, mint a Google kereső, YouTube, és Gmail. Ezek a tapasztalatok kulcsszerepet játszottak a Kubernetes fejlesztésében, amelynek célja az volt, hogy ezeket a bevált megoldásokat bárki számára elérhetővé tegye.
Honnan jött a név?
Görögül a κνβερνητης jelentése kormányos vagy hajópilóta. A konténerek (Docker) tengeri témájához kapcsolódva a Kubernetes a konténerek hajójának kormányosa. Mivel a nevet nehéz kiejteni, sokan egy becenevet használnak: K8s. A becenevet úgy ejtik, mint Kate’s (/keɪts/ – ejtsd: kéjtsz), mivel a Kubernetes szóban nyolc betű található K és S között.
Az ember nem is gondolná, hogy milyen előtörténete is van egy-egy meghatározó programnak.
Következő alkalommal megnézzük, miért is jó egy mikroszolgáltatás alapú alkalmazás, mint egy monolitikus.
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. 🙂
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! 🍾 🎊