A mai informatika törekszik arra, hogy az üzemeltetés és a felhasználás sok éve fennálló egyik problémakörét megoldja: hogyan lehet agilis informatikai szolgáltatásokat nyújtani és igénybe venni úgy, hogy ne függjünk adott technológiáktól, illetve konkrét erőforrásoktól, mivel a túlzott függés nemcsak hogy csökkenti a szabadságfokainkat, de a pénztárcánkra sincsen túl jó hatással.
Feltehetjük a kérdést, hogy miért nem jó a szoros függés adott technológiáktól és erőforrásoktól, hiszen a klasszikus gyártók átfogó szoftvermegoldásokat kínálnak, és borsos árért ugyan, de minden problémára házon belüli és teljes körű megoldást nyújtanak. Azonban ha végiggondoljuk a minket körülvevő vállalati informatika elmúlt harminc évét, akkor rájövünk, hogy ez eddig még senkinek sem sikerült. Ha sikerült volna, akkor egyre homogénebb rendszerekkel dolgoznánk, a valóságban azonban inkább a heterogén rendszerek terjednek, és minden célra az éppen legmegfelelőbb eszközt választjuk. Mi lehet ennek az oka?
Együtt az igényekkel
Az okok többrétűek, azonban magától értetődők is. Egy vállalat informatikája egy állandóan változó igényeket kiszolgáló, szervesen formálódó, folyamatosan alakuló rendszer. Ehhez a működésmódhoz jobban illeszkedik egy agilis, kisebb, autonóm részekből álló megoldás, amely ben az egyes elemeket a változó külső vagy belső igények függvényében könynyen lehet cserélni, bővíteni. Hektikusan hullámzó világunkban nem lehet megmondani, hogy a változásokra, bővítésekre pontosan mikor és milyen terjedelemben lesz szükség, azonban az informatikai rendszer agilitása, azaz gyors reakcióképessége ma is az egyik legkívánatosabb tulajdonsága. A hosszú távú előretervezés helyett ezért arra kell felkészülnünk, hogy amikor az igény fellép, az akkor legkedvezőbb árú és az adott igényt a legjobban kiszolgáló elemet szerezzük be, majd azt a legrövidebb idő alatt integráljuk, az üzleti folytonosság megszakadása nélkül. Ezt egy teljesen homogenizált rendszer sem agilitásban, sem költséghatékonysággal nem képes kiszolgálni, sőt a rendszer homogenizálásához elengedhetetlen generációváltások sem tehetők meg könnyen és olcsón a mai komplex és küldetéskritikus környezetekben. Az agilis rendszer viszont kisebb lépésekben fejlődik, nem tervez túl, elasztikusan együtt él és formálódik az igényekkel, valamint a meglévő rendszerekre is nagyban épít. Azonban az, hogy egy rendszer heterogén, magában még nem biztosítja az agilitását, az elaszticitását, a költséghatékonyságát és az interoperabilitást sem. A modern informatika több eszközt kínál az agilis heterogén rendszerek fenti kihívásoknak való megfeleltetéséhez. kínálja elsősorban a nyílt szabványokat, amelyek biztosítják az interoperabilitást, azaz hogy olyan rendszerek, amelyeket egymástól függetlenül fejlesztettek, együtt tudjanak működni további fejlesztések, valamint anyagi és egyéb természetű ráfordítások nélkül. Mivel rendszereink heterogének és folyamatosan változnak, az üzletmenet folytonosságának fenntartásához nagyban hozzájárulnak a nyílt szabványok.
Privát és publikus felhők
A nyílt szabványok használata biztos alapot nyújt a nyílt, interoperábilis és rugalmas heterogén rendszerek felépítéséhez, azonban ahhoz, hogy ezek a rendszerek elasztikusak, agilisak és költséghatékonyak legyenek, egy olyan modern architektúrába kell belehelyezni őket, ami a szükséges erőforrások kezelését is rugalmasan oldja meg. A jelenkor informatikai világában ez az architektúra a felhő. Felhőkről sok szó esik manapság. Legtöbbször publikus alkalmazásszintű felhőkről hallunk, mert a felhasználók számára ez a legkézzelfoghatóbb (pl. Facebook, Google). A nagyobb vállalatok és intézmények informatikájának agilitási, költséghatékonysági és elaszticitási problémáit azonban elsősorban nem az alkalmazásszintű felhők oldják meg. Egy megalapozott informatikai architektúra az infrastruktúra szintjénél kezdődik. Sokan idegenkednek a felhőmegoldásoktól, mivel a feladatok végrehajtása és az adatok tárolása egy ismeretlen, kontrollálatlan helyen történik. Ez a publikus felhőkre igaz, és ott is csak részben. Felmerül a kérdés, hogy akkor most privát vagy publikus felhőkről beszélünk? Ami egy vállalat belső működése számára privát felhő, az a vállalat által kifelé nyújtott szolgáltatás tekintetében az ügyfelek számára már publikus. Ugyanez a helyzet a vállalatcsoporton belüli megosztott erőforrásokat illetôen, főleg, ha azok több országon, kontinensen átívelnek. A kormányzat által az intézmények számára nyújtott felhőszolgáltatás egyben privát és publikus is, a biztonságos elhatárolásokat minden esetben meg kell oldani. A technológia szintjén nincs különbség, a különbséget a hozzáférések, a szerződéses feltételek és a működési garanciák jelentik.
Zsákutcákba kényszerítve Ugye milyen kényelmet, egyszerűséget jelent az tény, hogy egy autós úthoz két pont között bármilyen márkájú gépkocsit igénybe vehetünk, függetlenül attól, hogy az autó kicsi vagy nagy, gyors vagy lassú, kényelmes vagy kényelmetlen? Hatalmasat. Ráadásul vezetési biztonságunkat is megalapozza, hogy mindegyik gépkocsiban ugyanott van a fék, a kormány és a gázpedál. Meglepő módon az informatika világában ez sokszor nem így van. Gondoljunk csak bele, hogy például a HTML5 szabvány használata nélkül minden mobiltelefon-márkára külön-külön ki kell fejleszteni a szoftvert, vagy az ODF szabvány használata nélkül nem tudunk szövegszerkesztők között kényelmesen és tartalomhűen átvinni dokumentumokat: szoftvermegoldásaink nem mindig ezeket a szabványokat implementálják, bekényszerítve a felhasználókat olyan „zsákutcákba”, amelyekből igen nehéz kijönni. Ezek a problémák az elmúlt évtizedekben még nem jelentettek túl nagy gondot, mivel vállalati környezetben főképp egyetlen gyártó rendszereivel volt dolgunk, azonban a modern informatika már nem erről szól: visszatért a verseny és az innováció, nagyrészt a nyílt forráskód és az internet széles körű elterjedésének köszönhetően |
Nyílt forráskódú felhőmegoldások
Ha az infrastruktúra-szintű felhőket vizsgáljuk, több oldalról is a nyílt forráskódú felhőmegoldásokat kell górcső alá vennünk. Egyrészt költséghatékonyság szempontjából kiemelkedő potenciállal rendelkeznek a korábban már említett tulajdonságok révén, másrészt szinte az összes létező megoldás nyílt alapokon nyugszik, elég ha a CloudForms, Cloud Foundry, openstack, openNebula, Eucalyptus stb. projektekre gondolunk. Ha vállalati szinten is támogatott kész megoldást keresünk ezek között, és megnézzük közelebbről például a Red Hat által készített CloudForms rendszert, akkor láthatjuk, hogy egy teljes informatikai infrastruktúrát lefedő felhőarchitektúráról van szó, olyan rétegekre osztva, hogy megvalósulhasson benne a kívánt rugalmasság. Milyen főbb feladatai vannak tehát egy nyílt felhőrendszernek? legfontosabb az infrastruktúra-háttérrendszerek kezelése, beleértve a számítási erőforrásokat (CPU), az üzenetküldést vagy a tárkapacitást. Mindenképpen kezelnie kell számos, már meglévő virtualizációs megoldást, legyen az RHEV (Red Hat Enterprise Virtualization), Xen vagy VMware, valamint biztosítania kell a képmások konvertálhatóságát a virtualizációs környezetek között. képesnek kell lennie a virtualizációs környezetek vendégrendszerein kívül fizikai szervereket közvetlenül is munkára fogni. Ezen kívül, ha a meglévő számítási kapacitás a saját felhőnkben nem lenne elegendő, akkor átmenetileg vagy hosszabb távra bármilyen külső felhőszolgáltatót is be kell tudni kapcsolni az infrastruktúrába.
A második réteg
El is érkeztünk a második réteghez: az erőforrás-kezeléshez. Egy nyílt alapokon nyugvó felhőrendszerrel biztosíthatjuk, hogy meglévő heterogén virtuális és fizikai infrastruktúránkat maradéktalanul újrahasznosíthatjuk és folyamatosan bővíthetjük, de – az erőforrás-kezelés szempontjából – a helyi és a távoli heterogén elemeket is egységesen használhatjuk fel. Ugyanez igaz a privátfelhő nyújtotta tárkapacitásra is, a ma létező nyílt megoldások (pl. GlusterFs) akár egységes fájlrendszerszinten is képesek korlátlanul bővíthető, nagysebességű tárkapacitást nyújtani heterogén tárolóelemek felhasználásával. Az erőforrások kezeléséhez felületeket kell biztosítani a felhasználóknak és az adminisztrátoroknak, meg kell oldani a különböző felhasználók, felhasználói csoportok biztonságos elkülönítését, akár privát, akár publikus felhasználási módról van szó. Ezen kívül pontosan szabályozni kell, hogy ki, hogyan és milyen erőforrásokhoz férhet hozzá az egységesített készletből. A felhőrendszer harmadik szintje az alkalmazás-életciklus kezelése köré épül. Egy infrastruktúra-szintű felhő alapvetően rendszerképmásokat kezel és futtat a hozzákapcsolt erőforrásokon. Egy alkalmazás azonban több, mint egyetlen rendszerképmás, mivel egy modern, többrétegű, skálázható rendszer rétegenként is több futtatandó rendszerelemből áll, amelyek konfigurációját, kapcsolatait, frissítését rendszerszinten is össze kell hangolni. Ehhez definiálni kell az alkalmazásrendszert, hogy az az alatta lévő erőforráskészletből pontosan fel tudjon épülni, és az életciklusa is kezelhető legyen.
A bal oldali ábra jól mutatja egy háromrétegű alkalmazásrendszer elemeit és annak viszonyait a felhőben. Red Hat CloudForms Most, hogy a Red Hat CloudForms példáján végignéztük egy tipikus nyílt nyílt infrastruktúra-szintű felhő elemeit, valamint azt, hogy miként tud megfelni a vele szemben támasztott követelményeknek, nincs más hátra, mint hogy belevágjunk és kipróbáljuk!
A Red Hat Runtimes for Spring Boot a Red Hat egyik termékcsomagja, ami Spring Boot keretrendszer-támogatást nyújt fejlesztők számára. A Spring Boot egy népszerű keretrendszer a Java alkalmazások fejlesztéséhez, amelyet a könnyűsúlyú és gyors prototípuskészítés, valamint az alkalmazások egyszerű konfigurációja jellemzi. A Red Hat Runtimes for Spring Boot segítségével a fejlesztők hatékony eszközöket és környezetet kapnak a Spring Boot alapú alkalmazásaik futtatásához és menedzseléséhez.
A Red Hat Runtimes for Spring Boot az alábbi előnyöket kínálja:
A Red Hat JBoss Enterprise Application Platform (JBoss EAP) egy nyílt forráskódú alkalmazásfejlesztési és alkalmazásüzemeltetési platform. Az EAP egy teljeskörű Java Platform, Enterprise Edition (Java EE) kompatibilis alkalmazás-szerver, amely kifejezetten vállalati környezetekben történő használatra lett tervezve. A platformot a Red Hat fejleszti és támogatja, és az egyik meghatározó megoldás a vállalati környezetekben történő Java alkalmazásfejlesztés és futtatás terén.
A JBoss EAP alapvető jellemzői:
Java EE Kompatibilitás: A JBoss EAP teljes körűen támogatja a Java Platform, Enterprise Edition (Java EE) specifikációt. Ez magában foglalja a Servletek, JSP-k, EJB-k (Enterprise Java Beans), JMS-t (Java Message Service), JPA-t (Java Persistence API) és számos más Java EE technológiát.
Moduláris Architektúra: Az EAP moduláris architektúrával rendelkezik, amely lehetővé teszi, hogy csak azokat a komponenseket használd, amelyekre szükséged van, ezáltal csökkentve az erőforrásigényt és javítva a teljesítményt.
Adminisztrációs eszközök: Az EAP kiterjedt adminisztrációs eszközöket és vezérlőfelületeket nyújt az alkalmazások konfigurálásához, kezeléséhez és felügyeletéhez.
Üzleti támogatás: A JBoss EAP hosszú távú támogatást nyújt vállalati ügyfelek számára, biztosítva a biztonsági frissítéseket és a hibajavításokat.
Klaszterezés: Az EAP támogatja a klaszterezést, ami lehetővé teszi az alkalmazások horizontális skálázását és a nagyobb rendelkezésre állást.
Könnyű integráció: Az EAP könnyen integrálható más Red Hat termékekkel és megoldásokkal, például a Red Hat JBoss Data Grid-del és a Red Hat JBoss Fuse szolgáltatás-buszrendszerrel.
Az EAP-t különféle alkalmazások fejlesztésére és futtatására használják, ideértve a webalkalmazásokat, az üzleti alkalmazásokat és a mikroszolgáltatásokat. A Red Hat JBoss EAP által nyújtott megbízhatóság és teljesítmény miatt sok vállalat választja ezt a platformot vállalati szintű Java alapú alkalmazásokhoz.
A Red Hat JBoss Web Server egy nyílt forráskódú webkiszolgáló szoftver, ami a Red Hat middleware portfóliójának a része. A JBoss Web Server az Apache Tomcat és az Apache HTTP Server komponensekre épül, és lehetővé teszi pehelysúlyú, hatékony és biztonságos webalkalmazások futtatását.
A Red Hat JBoss Web Server főbb jellemzői:
Apache Tomcat: A Red Hat JBoss Web Server meghatározó eleme az Apache Tomcat szoftverkomponens, ami egy nyílt forráskódú Java Servlet és JavaServer Pages (JSP) konténer. A Tomcat lehetővé teszi Java-alapú webalkalmazások futtatását és kezelését.
Apache HTTP Server: Az Apache HTTP Server a világ egyik legelterjedtebb webkiszolgáló szoftvere, az internet jelentős részén használják. A Red Hat JBoss Web Server az Apache HTTP Serverre épül, ahhoz kiegészítő funkciókat és teljesítményjavításokat biztosít.
Java Web Container: A Red Hat JBoss Web Server olyan webes konténerként működik, amely támogatja a Java Servlet API-t és a JavaServer Pages (JSP) technológiát. Ez lehetővé teszi a Java alapú webalkalmazások könnyű futtatását és kezelését.
Egyszerű telepítés és konfiguráció: A Red Hat JBoss Web Server egyszerű telepítést és konfigurációt biztosít, segítségével gyorsan készíthetünk olyan webkiszolgálót, amely képes webalkalmazások futtatására.
Biztonság: A Red Hat JBoss Web Server számos már alapértelmezetten is olyan előre definiált biztonsági beállításokkal rendelkezik, amelyek védelmet biztosítanak a legelterjedtebb webbiztonsági fenyegetésekkel szemben.
A Red Hat JBoss Web Servert gyakran használják olyan környezetekben, ahol egyszerűen szeretnének Java alapú webalkalmazásokat futtatni és ahol fontos a megbízhatóság és a biztonság. Az Apache Tomcat és az Apache HTTP Server együttes használata révén a JBoss Web Server a vállalati igényeket is maximálisan kielégíti mind teljesítmény, mind funkcionalitás szempontjából.
A Red Hat Data Grid egy elosztott, in-memory (memóriában működő) gyorsítótár és NoSQL adatbáziskezelő megoldás a Red Hattől. A Red Hat Data Grid biztosítja, hogy az alkalmazások a jellemzően nagyságrendekkel gyorsabb memóriában tárolják és kezeljék a gyakran használt adatokat, jelentősen növelve azok teljesítményét és skálázhatóságát.
A Red Hat Data Grid főbb jellemzői:
In-memory adattárolás: A Red Hat Data Grid az alkalmazások számára biztosít memóriában működő adattárolást, ami gyors és alacsony válaszidőt eredményez.
Elosztott architektúra: A Red Hat Data Grid elosztott architektúrával rendelkezik, ami lehetővé teszi az adatok elosztott tárolását és kezelését több szerveren átívelően. Ez növeli a rendelkezésre állást és skálázhatóságot.
Cache funkciók: A Red Hat Data Grid támogatja a gyorsítótás (cache) funkciókat, így az alkalmazások a gyakran használt adatokat memóriában tárolhatják, csökkentve a késleltetést és az adatbázis terhelését.
Tranzakciós támogatás: A Red Hat Data Grid támogatja a tranzakciókat, így biztosítva az adatok konzisztens és atomi módosítását.
Keretrendszerfüggetlen: A Red Hat Data Grid olyan platformfüggetlen megoldás, amely támogatja például a Java, .a NET, Node.js és más programozási keretrendszereket, nyelveket.
Integráció a Red Hat termékekkel: A Data Grid jól integrálható más Red Hat termékekkel, például a JBoss Enterprise Application Platform (JBoss EAP) és a Red Hat JBoss Middleware szoftverekkel.
A Red Hat Data Grid-t gyakran olyan alkalmazások fejlesztéséhez és futtatásához használják, ahol fontos a magas teljesítmény és skálázhatóság. Ilyenek például webalkalmazások, mikroszolgáltatások, adatelemzési alkalmazások és real-time alkalmazások.
A Red Hat AMQ a Red Hat által kínált üzenetküldő szoftvermegoldás, illetve megoldások, hiszen két meghatározó technológiára, az Apache ActiveMQ-ra és az Apache Kafkára épül.
A Red Hat AMQ egy rugalmas és megbízható messaging platform, célja az üzenetek hatékony és biztonságos továbbítása alkalmazások között, függetlenül attól, hogy azok melyik platformon futnak vagy milyen programozási nyelvet használnak.
A Red Hat AMQ főbb jellemzői és szolgáltatásai:
Üzenetküldés és -fogadás: Az AMQ lehetővé teszi az alkalmazások számára, hogy üzeneteket küldjenek és fogadjanak egymás között. Az üzenetek lehetnek egyszerű szöveges üzenetek, bináris adatok vagy akár strukturált formátumok is.
Queue-k és topicok: Az AMQ támogatja mind a queue-k, mind a topicok használatát. A queue-k esetén az üzeneteket több címzett között osztják meg, míg a topicok lehetővé teszik, hogy az üzeneteket több feliratkozó (subscriber) kapja meg.
Késeknek támogatása: Az AMQ támogatja a Java Message Service (JMS) és az Advanced Message Queuing Protocol (AMQP) szabványokat, amelyek együttműködést (kommunikációt) tesznek lehetővé különböző rendszerek között, függetlenül azok implementációs részleteitől és az azok létrehozására használt nyelvektől, keretrendszerektől.
Elosztott architektúra: Az AMQ elosztott architektúrával rendelkezik, így több üzenetkiszolgáló (broker) között oszthatja meg az üzeneteket, ami javítja a rendelkezésre állást és skálázhatóságot.
Állapotmentes (stateless) működés: Az AMQ szerverek állapotfüggetlenek, ami lehetővé teszi a könnyű bővítést és a megbízható működést.
Üzenetszűrők és transzformációk: Az AMQ lehetővé teszi az üzenetek szűrését és átalakítását, amely rugalmasságot és könnyű integrációt biztosít más rendszerekkel.
Klienskönyvtárak: Az AMQ-hez számos klienskönyvtár áll rendelkezésre különböző programozási nyelvekhez, mint például Java, Python, .NET, stb.
Az AMQ-t gyakran használják olyan alkalmazások és rendszerek fejlesztéséhez, ahol fontos a megbízható és skálázható üzenetküldés, például a mikroszolgáltatások közötti kommunikáció, az integrált alkalmazások közötti adatcsere, és a hálózaton átívelő kommunikációhoz. Az AMQ lehetővé teszi a fejlesztők és az üzemeltetők számára, hogy könnyedén kezeljék az üzeneteket és biztosítsák az alkalmazások hatékony és megbízható kommunikációját.
A Red Hat Single Sign-On (SSO) egy nyílt forráskódú, szabványos és biztonságos azonosítási és hitelesítési megoldás, amely lehetővé teszi, hogy a felhasználók egyetlen bejelentkezési folyamatot (Single Sign-On) használva férjenek hozzá több különböző alkalmazáshoz és szolgáltatáshoz.
Az SSO olyan technológia, amely biztosítja, hogy a felhasználónak csak egyszer kelljen bejelentkeznie egy rendszerbe, és ezt követően az azonosítása automatikusan továbbítódik más alkalmazásokhoz anélkül, hogy újra meg kellene adni a bejelentkezési adatokat. Ez nem csak a felhasználók számára kényelmesebbé teszi az alkalmazások használatát, hanem csökkenti az (adminisztratív) overheadet és növeli az informatikai biztonságot.
A Red Hat SSO a következő fő jellemzőkkel rendelkezik:
Azonosítási és hitelesítési szabványok támogatása: Az SSO támogatja a modern azonosítási és hitelesítési protokollokat, például SAML (Security Assertion Markup Language), OAuth és OpenID Connect, amelyek lehetővé teszik a biztonságos és szabványos bejelentkezési folyamatokat.
Központosított felhasználó- és hozzáféréskezelés: Az SSO lehetővé teszi a felhasználók központi kezelését és az egységes hozzáférési jogosultságokat több alkalmazáshoz.
Klienskönyvtárak és API-k: A Red Hat SSO klienskönyvtárakkal és API-kkal rendelkezik, amelyek egyszerűvé teszik az SSO integrációját a meglévő alkalmazásokkal és szolgáltatásokkal.
Többfaktoros azonosítás (MFA): Az SSO támogatja a többfaktoros azonosítást, ami tovább növeli az alkalmazások biztonságát.
Skálázhatóság és megbízhatóság: A Red Hat SSO architektúrája lehetővé teszi a nagy terhelések kezelését és a megbízható működést.
A Red Hat SSO-t gyakran vállalati környezetekben alkalmazzák, ahol fontos az egyszerű és biztonságos azonosítás és hozzáféréskezelés a számos alkalmazáshoz és szolgáltatáshoz. Az SSO segít az informatikai csapatoknak egyszerűsíteni az üzemeltetést és növelni az adatbiztonságot, miközben a felhasználók kényelmét is javítja.