Sorozatunk előző részében megismerhettük a Kubernetes történetét, eredetét és hogy ki is fejleszti. Most megyünk tovább és rátérünk arra, hogyan is változtatta meg a világot a Kubernetes és a Docker.
A Kubernetes használata és a konténeres alkalmazások üzembe helyezése alapjaiban változtatja meg a fejlesztési és rendszergazdai megközelítést az alkalmazások telepítésében. Hagyományosan egy alkalmazás – például egy webszerver – monolitikus formában, egy dedikált szerveren futott. A növekvő webes forgalom hatására ezt az alkalmazást finomhangolták, majd egyre nagyobb teljesítményű hardverre költöztették. Idővel jelentős testreszabásokra volt szükség annak érdekében, hogy megfeleljen az aktuális terhelési igényeknek. Ez általában sok nehézséggel és magas költséggel társult. Ráadásul a tervezési feladatok (költség, kapacitás és üzemeltetés) sok emberi erőforrást emésztett fel.
A Kubernetes ehelyett egy teljesen más megközelítést kínál: egyetlen nagy teljesítményű szerver helyett számos kisebb szervert, azaz mikroservice-eket üzemeltet. Az alkalmazás szerver- és kliensoldali komponensei eleve úgy vannak kialakítva, hogy több ügynök (agent) legyen elérhető a kérések kiszolgálására. Ez a megoldás lehetővé teszi a dinamikus skálázást és a rugalmasságot. A klienseknek számítaniuk kell arra is, hogy a szerverfolyamatok időnként leállhatnak és újak veszik át a helyüket, ami a tranziensekre épülő szerverüzemeltetés alapja. Egy klasszikus Apache webszerver helyett például sok kisebb nginx szerver működik párhuzamosan, amelyek egyenként válaszolnak a bejövő kérésekre.
A Kubernetes előnyei: rugalmasság és automatizáció
A kisebb, átmeneti szolgáltatások használata lehetővé teszi a lazább komponenskötéseket (decoupling). A monolitikus alkalmazás egyes részeit dedikált, de tranziensebb mikroservice-ek vagy ügynökök váltják fel. Az egyes ügynökök és azok helyettesítői közötti kapcsolatot szolgáltatásokkal (services) biztosítjuk. Egy szolgáltatás összeköti a forgalmat az egyik komponensről a másikra (például egy frontend webszerverről egy backend adatbázisra), és kezeli az új IP-címeket vagy egyéb információkat, ha valamelyik komponens meghibásodik és újat kell beállítani helyette.
A kommunikáció teljes mértékben API-hívásokon alapul, ami nagy rugalmasságot biztosít. A Kubernetes a konfigurációs adatokat JSON formátumban tárolja az etcd adatbázisban, de a közösség általában YAML formátumban írja ezeket. A Kubernetes agent-ei a YAML fájlokat JSON formátumba alakítják át, mielőtt az adatbázisba mentenék őket. Ez lehetővé teszi az egyszerű konfigurálást és a gyors módosításokat.
Egy modern megoldás a skálázhatóságra
A Kubernetes alapját a Go programozási nyelv adja, amely egy hordozható és hatékony nyelv, egyfajta hibrid a C++, Python és Java között. Egyesek szerint ezeknek a nyelveknek a legjobb (mások szerint a legrosszabb) elemeit ötvözi. A Kubernetes használatával az alkalmazásüzemeltetés kevésbé függ a hardvertől, és inkább az automatizált skálázásra és a magas rendelkezésre állásra épít.
A Kubernetes nem csupán egy új technológia – egy új szemléletmód is, amely lehetővé teszi az alkalmazások hatékonyabb és rugalmasabb működését. A dinamikus skálázás, az automatizált erőforráskezelés és a mikroservice-alapú architektúra révén a modern alkalmazásüzemeltetés alapvető eszközévé vált.
A modern informatikai világban az automatizáció mindig is a hatékony erőforrás kezelés egyik alappillére. A DevOps és GitOps is erre épül. És ha ezen metodikákról beszélünk, akkor elsősorban az infrastruktúra automatizáció jut eszünkbe. Aki nem csak Azure-al foglalkozik neki talán a terraform ugrik be erről először.
Most viszont Azure-al foglalkozunk. Legutóbb megismertük az Azure ARM sablont, amellyel nagyon komoly és összetett rendszereket hozhatunk létre automatizáltan és hatékonyan. Ezt azonban hosszab idő lehet megtanulni, hiszen annyira komplex, hogy sokaknak nehézséget okoz. Ekkor jön képbe a Bicep.
Azure Bicep
Az Azure Bicep egy domain-specific language (DSL), amely az Azure Resource Manager (ARM) sablon egyszerűbb és olvashatóbb alternatívájaként jelent meg. Az ARM-sablonok JSON alapúak, ami gyakran nehézkessé teszi az olvasásukat és karbantartásukat. A Bicep ezzel szemben egy deklaratív szintaxist használ, amely leegyszerűsíti az infrastruktúra mint kód (IaC) megvalósítását az Azure környezetben.
Milyen kategóriába tartozik az Azure Bicep?
Az Azure Bicep az Infrastructure as a Service (IaaS) kategóriába sorolható, mivel segítségével virtuális gépek, hálózatok és egyéb infrastruktúra-erőforrások deklaratív módon történő létrehozását és kezelését teszi lehetővé az Azure-ban.
Miért érdemes használni az Azure Bicep-et?
Modularitás: Lehetővé teszi a modulok használatát, ami segít az infrastruktúra szegmentálásában és újrafelhasználásában.
Egyszerűbb szintaxis: A Bicep kód rövidebb és átláthatóbb, mint az ARM JSON sablonok.
Jobb karbantarthatóság: Könnyebb módosítani és újrafelhasználni az erőforrásokat.
Nincsenek JSON struktúrák: Nem kell bonyolult JSON szintaxissal dolgozni.
Automatikus fordítás ARM sablonná: A Bicep kódot könnyen konvertálhatjuk ARM JSON sablonokká.
Példák az Azure Bicep használatára
Egyszerű példa: Tárfiók létrehozása
Hozzunk létre egy egyszerű Bicep fájlt (storage.bicep), amely egy Azure Storage Accountot hoz létre:
Ez a példa bemutatja, hogyan lehet hierarchikus kapcsolatokat kialakítani az erőforrások között, például egy alhálózatot egy adott virtuális hálózaton belül definiálni.
Hogyan működik az Azure Bicep?
A Bicep használata során egy .bicep kiterjesztésű fájlban határozzuk meg az Azure erőforrásokat. Ezt a fájlt ezután Bicep CLI vagy az Azure CLI segítségével ARM sablonná fordítjuk, amelyet az Azure Resource Manager feldolgoz.
Tehát amire képes az ARM sablon, azt meg tudod valósítani Bicep-el is.
Bicep fájlok futtatása PowerShell-ből
PowerShell-ben a következő parancsot használhatod egy Bicep fájl deploy-olásához egy meglévő erőforráscsoportba:
Azure CLI-ben az alábbi parancsot használhatod a telepítéshez:
az deployment group create --resource-group EroforrasCsoport1 --template-file storage.bicep
Ezzel a parancsokkal az Azure Bicep fájlokat könnyedén alkalmazhatod az Azure infrastruktúrád kezelésére.
Összegzés
Az Azure Bicep egy hatékony és egyszerű eszköz az Azure infrastruktúra kezelésére. Az ARM JSON sablonokhoz képest sokkal könnyebben olvasható és írható, miközben megőrzi a teljes funkcionalitást. Ha az Infrastructure as Code (IaC) elveit követve szeretnéd automatizálni az Azure erőforrásaid kezelését, akkor a Bicep egy kiváló választás.
Ha érdekel az Azure infrastruktúra-kezelés, érdemes elkezdeni a Bicep használatát, mert időt takaríthatsz meg, és jobban skálázható megoldásokat építhetsz vele. Kódját megtalálod a GitHub-on.
Te használtad már vagy az ARM sablont vagy a Bicep fájlokat?
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? 🙂
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. 🙂
Az elmúlt hetekben megismerhettük a böngészőben használható parancssori eszközt, a Cloud Shell-t a nagyobb felhőszolgáltatóknál, úgy mint az AWS vagy a Google Cloud. Amint láthattuk, a CloudShell egy olyan böngészőben használható parancssori eszköz, amely leegyszerűsíti a „kommunikációt” az aktuális felhőszolgáltatónk és közöttünk. Hiszen nem kell semmi új komponenst nem kell telepítenem a számítógépemre, hogy kezelni tudjam a felhőerőforrásaimat. Ez az eszköz kiemelten hasznos mindazok számára, akik szeretnének kísérletezni, alkalmazásokat fejleszteni, tanulni vagy hibákat elhárítani a felhőben. És mindezt nagyon gyorsan.
A korábbi cikkekben bemutatott megoldásokkal ellentétben, az Azure esetén nem lesz olyan rejtett gép a háttérben, amelyen futtathatjuk a parancsainkat. Itt kissé másképpen működik, de ne szaladjunk ennyire előre.
Mi az Azure Cloud Shell?
Az Azure Cloud Shell az egyik legkényelmesebb és legrugalmasabb eszköz, amelyet az Azure felhasználóknak kínál. Ez a böngésző alapú parancssori környezet lehetővé teszi, hogy bárhonnan, bármilyen eszközről elérd és kezeld az Azure erőforrásaidat. Nincs szükség telepítésekre vagy konfigurációkra, mindössze egy internetkapcsolat és egy web böngésző kell hozzá.
Ami a legjobb ebben és az Azure Cloud Shell-t egyedivé teszi, hogy egy helyen férhetsz hozzá az Azure CLI-hoz, a PowerShell-hez, és számos előre telepített eszközhöz, miközben automatikusan hozzáférsz egy tárhelyhez (tárfiók – storage account) is, ahol a fájljaid és szkriptek is találhatók. Ez az eszköz nemcsak időt takarít meg, de megkönnyíti az Azure erőforrások hatékony és biztonságos kezelését.
Fő funkciók, előnyök és tippek:
Webalapú hozzáférés: Bármilyen böngészőből elérhető (akár mobiltelefonról is), nincs szükség telepítésre.
Beépített eszközök: Bash, PowerShell, Azure CLI, és számos más előre telepített eszköz. (Pl.: Git)
Tárhely integráció: Automatikus kapcsolat egy előre megadott tárfiókkal (Azure Storage Account) a szkriptek és fájlok tárolásához. Ezt a tárhelyet ráadásul felcsatolhatod a helyi számítógépedre is.
Egyszerű erőforrás-kezelés: Parancsok és szkriptek egyszerű, gyors futtatása az Azure erőforrások hatékony kezeléséhez.
Alias-ok beállítása: Gyorsítsd meg a munkádat egyéni parancsokkal.
VS Code integráció: Használd a Cloud Shell-t közvetlenül a Visual Studio Code-ból.
Gyorsbillentyűk: Ismerd meg a legfontosabb billentyűkombinációkat, hogy úgy dolgozz mint egy profi.
PowerShell és Bash együtt
A többi felhőszolgáltatótól eltérően, a Microsoft gondolt azon szakemberekre, akiknél vagy PowerShell vagy Bash tapasztalat a nagyobb. Hiszen előfordulhat, hogy valaki a felhő előtt csak PowerShell-t használt, vagy csak Bash-t. Azure-ban pedig senkinek sem kell újratanulnia semmit vagy megszoknia egy új nyelvet.
Egyetlen kattintással választhatunk Bash vagy PowerShell környezetet és ha meggondolnánk magunkat akkor is bármikor átválthatunk a másikra. Teljes szabadságot kapunk. Ez igazán jó hír mindenkinek. 🙂
Kattint a jobb felső sarokban lévő Cloud Shell ikonra.
Válaszd ki, hogy Bash-t vagy PowerShell-t szeretnél használni először
Utána lehetőséged van Tárfiók nélküli beállításra (ekkor a használat végén minden fájl és parancs előzmény törlődik) vagy ha szeretnéd tárolni a szkriptjeidet és fájljaidat, akkor a Tárfiók csatlakoztatása lehetőséget válaszd.
Ezután ki kell választanod azt az előfizetést, amelyben a fájlokat tároló tárfiók van/lesz.
Következő lépésben 3 lehetőséged van:
Meglévő tárfiók kiválasztása: Ez akkor hasznos, ha a tárfiókod már létezik és azt szeretnéd felcsatolni a Cloud Shell mögé
Létrehozunk Önnek egy tárfiókot: Ez esetben az Azure létrehoz egy tárfiókot véletlenszerűen a kijelölt előfizetésben. Ez akkor hasznos, ha gyorsan szeretnék a beállítást elvégezni. (nem javasolt)
Szeretnék létrehozni egy tárfiókot: Általában ezt a lehetőséget választjuk a legtöbb esetben, mert így mi adjuk meg, hogy milyen néven és melyik erőforráscsoportba kerüljön a tárfiók.
Ha a harmadikat választottuk, akkor a következő lapon meg kell adnunk az alábbi adatokat:
Előfizetés neve: Ahová a tárfiókot létrehozzuk
Erőforráscsoport: Ahová a tárfiók létrejön
Régió: Melyik régióban legyen az erőforráscsoport és a tárfiók
Tárfiók neve: Egyedi névnek kell lennie
Fájlmegosztás: Fájlmegosztás neve, ahol a fájlokat majd mentjük és amit fel tudunk csatolni a saját gépünkre (Windows, Linux, Mac)
Ha ezzel megvagyunk, akkor a Létrehozás gombra kattintva 1-2 perc alatt befejeződik a Cloud Shell beállítása.
Példa parancsok
Amint elindult a Cloud Shell, végtelen lehetőségünk van arra, milyen parancsokat futtatunk. Innen már csak rajtunk és a kitűzött céltól függ a parancsok bonyolultsága és jellege.
Korábban már írtam egy cikket a böngészőből használható parancssori eszközökről. Akkor az AWS CloudShell megoldását mutattam be nektek.
Tekintsünk kicsit vissza, mi is az a CloudShell. Ez egy olyan böngészőben használható parancssori eszköz, amely leegyszerűsíti a „kommunikációt” az aktuális felhőszolgáltatónk és közöttünk. Hiszen nem kell semmi új komponenst nem kell telepítenem a számítógépemre, hogy kezelni tudjam a felhőerőforrásaimat. Tehát nincs is más dolgod, csak jelentkezz be a kedvenc felhőszolgáltatódnál regisztrált fiókodba, és keresd meg a navigációs sávon a CloudShell ikont. Ezután már kezdheted is az erőforrások kezelését.
Száz szónak is egy a vége: Ez az eszköz kiemelten hasznos mindazok számára, akik szeretnének kísérletezni, alkalmazásokat fejleszteni, tanulni vagy hibákat elhárítani a felhőben. És mindezt nagyon gyorsan.
Google Cloud Shell
A Google Cloud Shell egy interaktív parancssori felület, amely a Google Cloud Platformhoz csatlakozó, előre konfigurált Linux környezetet biztosít. A környezet tartalmazza a legfontosabb felhő-parancssori eszközt (pl.: git, gcloud, kubectl), valamint az olyan nyelvekhez szükséges futtatókörnyezeteket, mint a Python, Go és NodeJS.
Korábbi ismereteink alapján következik, hogy minden eszközről elérhető, legyen az egy laptop, tablet vagy egy okostelefon. 🙂
Hasonlóan az AWS-hez, itt is egy rejtett virtuális gép indul el a háttérben (1-2 perc legfeljebb), ahol a parancsainkat futtathatjuk. Ez közvetlenül kapcsolódik a Google Cloud projektünkhöz, így miután megnyílt a Cloud Shell, már nem szükséges további bejelentkezés.
A Cloud Shell linux gép 1 vCPU-val és 4 GB RAM-mal rendelkezik, ami a legtöbb feladat végrehajtásához bőven elegendő. Azonban, bonyolult vagy komplex feladatok végrehajtásakor előfordulhat, hogy elérjük ezen környezet határait. Amikor használjuk a Cloud Shell-t akkor erre mindig legyünk tekintettel.
Arra is érdemes felkészülni, hogy a környezet 20 perc inaktivitás után automatikusan leáll és megszakítja az aktuális munkamenetet. A benne tárolt fájlokat, parancs-előzményeket azonban megtartja, így akadályozza meg a lekérdezéseink adatainak elvesztését.
A Cloud Shell-ben előre konfigurált csomagok vannak, hogy ezzel is gyorsítsák számunkra a munkát. Ezeket a Google szakemberei folyamatosan frissítik és bővítik. Készítettem egy rövid listát a legfontosabb elérhető csomagokról és eszközökről:
Programozási nyelvek: Python, Node.js, Go, Java.
Verziókezelés: Git.
Hálózati eszközök: SSH, Curl, Wget.
Támogatott keretrendszerek: Google Cloud SDK, Terraform, Docker, Kubernetes CLI.
Ebből is látszik, mennyire hasznos ez az eszköz a mindennapokban.
Leghasznosabb funkciók
Cloud Editor: Elérhető egy beépített Cloud Shell Editor, amely egy teljes funkcionalitású webalapú IDE, amely támogatja a forráskód kezelését, hibakeresést és verziókezelést is. Ha valaki ismeri a Visual Studio Code-ot akkir ebben is otthon fogja magát érezni.
Parancssori eszközök: A Cloud Shell tartalmazza a legfontosabb eszközöket, amellyel a Google Cloud-ban lévő erőforrásaid kezelheted.
Google Drive integráció: Minden Cloud Shell környezethez tartozik egy 5 GB-os, tartós tárhely a felhasználó adataihoz. Ez a tárhely közvetlenül elérhető a környezetben.
Ephemeral Cloud Shell: Ez a funkció egy nagyon gyors indítást biztosít a futtató környezetnek. Ha bekapcsoljuk, akkor egy ideiglenes környezetként indítja a Cloud Shell-t, ami azt jelenti, hogy amint befejeztük a munkamenetet, minden adat törlődik. Izolált munkafázisokhoz ideális lehet.
Ezen kívül még rengeteg hasznos funkcióval rendelkezik. A teljesség igénye nélkül: fájlok le- és feltöltése, színsémák és színek módosítása, használati statisztikák, web alapú előnézet.
Amikor egy új technológiával ismerkedünk (programozási nyelv, felhő, stb.) mindig nagy fejfájást okoz, hogy feltelepítsünk minden olyan alkalmazást, kiegészítőt és modult ,ami az adott technológia kényelmes és zökkenőmentes használatát biztosítja.
Biztosan Te is találkoztál már azzal a jelenséggel, hogy elhatároztad: „Most megtanulok Python-ban programozni”, de amikor nekikezdesz, elbizonytalanodsz, mert nem tudod mit kell telepíteni. És nincs ez másként a felhő világában sem. Nem elég, hogy el kell döntened, melyik nagy felhőszolgáltató világában mélyedj el, még a különböző eszközöket (pl.: parancssori eszközök – CLI) is telepítened kell. Ez sok függőséggel és beállítással is járhat néha. És ha fel is teleptetted, akkor meg kell tanulnod, hogyan is jelentkezz be a megfelelő felhő (Azure, AWS, Google) fiókodba.
Ebben a szorult helyzetben segít nekünk a felhőszolgáltatóknál elérhető Cloud Shell megoldás. Ez egy olyan böngészőben használható parancssori eszköz, amely leegyszerűsíti a „kommunikációt” az aktuális felhőszolgáltatónk és közöttünk. Hiszen nem kell semmi új komponenst nem kell telepítenem a számítógépemre, hogy kezelni tudjam a felhőerőforrásaimat.
Miért is fogalmazok ilyen általánosan? Ennek egyszerű az oka. mindegyik felhőszolgáltatónál ugyanaz ennek az eszköznek a neve. Tehát ha Azure-ban, AWS-ben és Google Cloud-ban is Cloud Shell a neve ennek az eszköznek. Ez fantasztikus, csak egy elnevezéssel kell megbarátkoznunk. 🙂
Ma foglalkozzunk az AWS CloudShell megoldásával, mert ez alapján, már könnyen használatba vehetjük a többi felhőszolgáltató, hasonló nevű eszközét is.
Mi az AWS CloudShell?
Az AWS CloudShell az Amazon Web Services (AWS) által biztosított böngésző alapú parancssori eszköz, amely lehetővé teszi, hogy gyorsan hozzáférj a felhőalapú erőforrásaidhoz anélkül, hogy helyi környezetet kellene telepítened vagy konfigurálnod. Az AWS CloudShell egy teljesen előkészített Linux-alapú környezetet kínál, amely tartalmazza az AWS Command Line Interface (CLI) legújabb verzióját, valamint számos hasznos eszközt, például a Git-et és támogatja a Python és Node.js használatát is.
Így ideális tanuláshoz, gyors konfigurációk elvégzéséhez, hibakereséshez vagy akár automatizált szkriptek futtatásához. A CloudShell integrációja az AWS konzollal egyszerű hozzáférést biztosít a felhőalapú erőforrásokhoz, anélkül hogy további költségekkel járna.
Előnye, hogy bármilyen eszközről hozzáférhetsz a CloudShell-hez egy böngészőből. Nincs szükség arra, hogy a helyi gépedet AWS CLI-vel vagy más eszközökkel konfiguráld. Az előre telepített AWS CLI, Git és egyéb fejlesztői eszközök gyors indulást biztosítanak. Ezen felül az AWS 1 GB tárhelyet biztosít, amely lehetővé teszi a fájlok, szkriptek és konfigurációk mentését, hogy azok későbbi felhasználását is.
Hogyan lehet használni?
Az AWS CloudShell használata rendkívül egyszerű. Kövesd az alábbi lépéseket:
1. Nyisd meg az AWS konzolt: Jelentkezz be a fiókodba, és keresd meg a navigációs sávon a CloudShell ikont.
2. Kattints a CloudShell gombra: Ez megnyit egy új böngészőablakot vagy alsó panelt.
3. Első indítás: A CloudShell automatikusan elindítja az előkészített környezetet, ami néhány másodpercet vesz igénybe.
4. Használat: Most már futtathatsz parancsokat. Pl.: S3 bucket-ek listázása
aws s3 ls
Integráció
A CloudShell azonban nem csupán parancsok futtatására alkalmas. Közvetlenül integrálva van az előfizetésünk legfontosabb erőforrásaival. Például:
AWS CLI: Az AWS CLI előtelepített verziójával közvetlenül hozzáférhetsz szolgáltatásokhoz, például EC2, S3 vagy Lambda.
Fájlok kezelése: Az S3-ban tárolt fájlokat könnyedén feltöltheted, letöltheted, vagy kezelheted közvetlenül a CloudShell-ből.
IAM jogosultságok: A CloudShell automatikusan használja a felhasználódhoz rendelt jogosultságokat, így nem kell külön hitelesítési adatokat megadnod.
Tippek a használathoz
Van pár dolog, amivel szeretnélek segíteni, hogy könnyedén használd ezt az eszközt.
Fájlok feltöltése és letöltése: A CloudShell tartalmaz fájlkezelési lehetőségeket. Az „Upload” vagy „Download” funkcióval helyi fájlokat másolhatsz a CloudShell-be, vagy fordítva. Ezzel fel is tölthetsz már létező fájlokat.
Szkriptek mentése: Mivel 1 GB tárhely áll rendelkezésre, a szkripteket vagy fájlokat elmentheted, hogy a következő alkalommal ne kelljen újra feltöltened.
Verziókezelés: Git-et közvetlenül használhatod a CloudShell-ben:
A többi már csak rajtad múlik. Gondolom, most kíváncsi lettél, vajon hogyan használhatod a többi felhőszolgáltató CloudShell megoldását. Ezekről, hasonló cikket itt találsz:
Nekem ez az egyik kedvenc eszközöm, ha valami újat vagy gyors dolgot szeretnék kipróbálni a felhőben. Biztos vagyok benne, hogy Te is meg fogod kedvelni.
Nincs is más dolgod, csak jelentkezz be a fiókodba, és keresd meg a navigációs sávon a CloudShell ikont. Ugye milyen egyszerű? 🙂
Már 2023-ban is meghívást kaptam a Gerilla Karrier Podcast egyik felvételére, hogy osszam meg tapasztalataimat a felhő technológiák kapcsán. A mesterséges intelligencia elterjedésével, a felhőben is megjelentek az AI alapú megoldások. Ma már ezeket ugyanúgy használhatjuk, mint egy virtuális gépet vagy egy webalkalmazást. A Gerilla Karrier Podcast-ban most erről is beszélgettük:
Mit jelent a felhőalapú technológia?
Kik a legnagyobb felhőszolgáltatók, és mit kínálnak?
Hogyan működik együtt a mesterséges intelligencia és a felhő?
Miként kapcsolódhatnak be kisebb vállalkozások is a felhőalapú AI világába?
Miért olyan keresettek ma a Cloud szakemberek?
Hogyan kezdj bele egy felhő technológiai karrierbe?
Milyen tudásra van szükség az egyes munkakörökhöz?
Miként alakítja át a mesterséges intelligencia a Cloud területén dolgozók munkáját?
Mit érdemes tanulnod, ha gyorsan szeretnél előrelépni ezen a területen?
Nagyon kellemes beszélgetésünk volt ezekben a témákban Andrással, ahol remélhetőleg számotokra is érdekes információkat hallhattatok.
A podcast epizódot itt tekinthetitek meg:
Ha szeretnél még több hasznos témát szeretnél tanulni, akkor ajánlom neked a Mentor Klub többi képzését is. A Mentor Klub egy olyan közösség, ahol a tagok soft- és hard skilleket egyaránt tanulhatnak, ráadásul otthonról vagy akár külföldről is.
Emellett olvassátok a Gerilla Önéletrajz Műhely cikkeit is. Ezekből csupán néhány, ami segít elindulni: