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!
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.
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ű? 🙂
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. 🙂