Magyar English Deutsch 日本語 Italiano
Sun

Felhőszolgáltatók kiválasztása: Amazon vs. OpenStack

A megfelelő felhőalapú platform választása számos felhasználó számára állandó küzdelem, mivel több tényezőt kell figyelembe venni. Ezen cikkben a két legnépszerűbb felhőalapú platformot, az Amazon Web Services-t és az OpenStacket fogjuk összehasonlítani és egymással szembeállítani, annak érdekében, hogy ügyfeleinknek segítsünk az igényeiknek leginkább megfelelő döntés meghozatalában. Megosztjuk továbbá cégünk választásainak okát felhőszolgáltatók területén, továbbá azt, hogyan használjuk ezen szolgáltatásokat.

 

Mi is tulajdonképpen az Amazon és az OpenStack?

Az Amazon Web Services (AWS) egy nyilvános felhőszolgáltatás, amely lehetőséget biztosít ügyfelei számára, hogy szerverekhez, tárolóhelyhez, adatbázisokhoz, és széleskörű szolgáltatásokhoz férhessenek hozzá az interneten keresztül. Az Amazon Web Services tulajdonolja és karbantartja az ezen szolgáltatásokhoz szükséges hardvereket, és az összekapcsolásukhoz szükséges hálózatot.. Az AWSt webes UI-n vagy API-n keresztül lehet kezelni.
Az OpenStack felhő alapú oprációs rendszer, ami egy egységben kezeli a nagy mennyiségben, de elosztottan rendelkezésre álló számítási, tárolási és hálózati erőforrásokat. Az OpenStack szintén rendelkezik grafikus kezelőfelülettel, és minden adminisztrációs művelet elérhető parancssorból is. Mindkettő a rendelkezésre álló felületeken lehetőséget biztosít az arra jogosult felhasználóknak, hogy önkiszolgáló módon tudjanak magukhoz új erőforrásokat kiosztani és a meglévőket adminisztrálni a mindenkori minőségi szolgáltatások nyújtásának érdekében.


Amazon Web Services

  • Az Amazon ökoszisztéma: Saját ököszisztéma, saját kezelőfelület a különböző felhöszolgáltatási igények kielégítésére - független szoftver vendor (ISV), platform, mint szolgáltatás (PaaS) és SaaS. A felhasználók azonban mind csupán ügyfelei az AWS-nek, nem üzemeltetik vagy fejlesztik ezeket a szolgáltatásokat
  • Az AWS architektúra és működtetési folyamatai mind az Amazon szellemi tulajdona, a vállalaton kívül nagyon kevesen tudják, hogyan működik
  • sok a harmadik fél alkalmazásain alapuló szolgáltatás
  • Nagyon gyorsan bővíti, fejleszti szolgáltatásait
  • Költségvonzata: Idő alapú, és használt tárhely és forgalmi kapacitás alapú számlázás
  • Inkább a nyilvános felhőszolgáltatási piacra fókuszál
  • 13 földrajzi régióban helyezkedik el, közel a teljes globális térképet lefedi
  • Alkalmas a felhasználók millióit kiszolgáló szolgáltatás infrastruktúra kiépítésére

OpenStack

  • Az OpenStack ökoszisztéma: Több, az AWS-nél is felsorolt elemet tartalmaz, többet között kormányzati ügynökségeket, szolgáltatókat, és az OpenStacket használó vállalatokat
  • Az OpenStack teljes mértékben nyílt forráskódú, mindazok, akik szeretnék tudni, hogyan működik, letölthetik a kódot, amely nagyon jól dokumentált
  • Inkább a privát felhőszolgáltatási piacra fókuszál
  • Vegyes, hypervisor és nem virtualizált (bare metal) szerver környezeteket is támogat
  • Több mint 100 vállalat fejleszti együttesen a kódot
  • Költségvonzata: A nyílt forráskód, amelyet letölt a saját szerverére, vagy amelyet egy kereskedelmi szolgáltatótól vásárol meg, továbbá saját üzemeltetési személyzetre van szükség

A két szolgáltatás összehasonlítása és szembeállítása

Az Amazon és az OpenStack között van néhány jelentős, döntéshozatalt befolyásoló különbség, amiket érdemes figyelembe kell venni a vállalat számára megfelelő coud megoldás kiválasztása során. Az egyik legjelentősebb különbség, hogy az AWS zárt forráskódú, a vállalaton kívül nagyon kevés ember ismeri a felépítését, ill. az üzemeltetési folyamatainak működését. Ezzel szemben az OpenStack teljes mértékben nyílt forráskódú, ezáltal mindazok, akik szeretnék tudni, hogyan működik, letölthetik a kódot, amely nagyon jól dokumentált, így könnyen ki lehet egészíteni a meglévő funkciókat, és könnyebb integrálni. Az OpenStack, mint nyílt forráskódú felhőmegoldás további előnye, hogy a felhasználói bázisa kormányzati hivatalokat, szolgáltatókat, valamint vállalkozásokat is tartalmaz. Ez azt jelenti, hogy kiterjedt közösségi támogatása van, ami nagy segítség lehet egy esetleges krízishelyzet megoldásában, és állandóan rendelkezésre áll.

Annak ellenére, hogy az Amazon Web Services és az OpenStack mindketten nagy felhőszolgáltatók, nem feltétlenül egymás versenytársai. Az AWS elsődlegesen a nyilvános felhőszolgáltatási piacot célozza meg, míg az OpenStack elsődlegesen a privát felhőszolgáltatási szektort.

Az alábbi Google trend grafikon mutatja mind az AWS, mind az OpenStack felhőszolgáltatás népszerűségét 2004-től napjainkig. Mindenesetre itt szükséges megjegyezni, hogy az AWS-t hamarabb hozták létre, mint az OpenStacket.

 

Az ITware, mint esettanulmány

Annak érdekében, hogy olvasóinknak átláthatóbb képet adjunk, ezúton megosztjuk mindkért szolgáltatással kapcsolatos tapasztalatainkat. Az elmúlt néhány év során cégünk számos fejlesztést végzett kisebb projektek részére, volt egy kisebb szerver szobánk hozzávetőlegesen 6 hipervizorral, valamint egy adatközpontban bérelt helyünk további 4 szerverrel.Ahogyan cégünk növekedett, nagyobb ügyfeleket szolgáltunk ki több párhuzamosan futó projekttel. Ezekben a projektekben a minőségbiztosítás érdekében folyamatosan stressz teszteket és terheléses teszteket kellett végezni komplex, földrajzilag elosztott infrastruktúrán. Nyilvánvaló volt, hogy a cég akkori infrastruktúrája nem tudta volna kiszolgálni ezen igényeket.

 

AWS

Infrastruktúránk felépítéséhez az Amazon Web Services-t választottuk. Leggyakrabban az EC2 infrastruktúra szolgáltatását használtuk (IaaS) virtuális gépek létrehozására, és a Route 53 szolgáltatást a DNS kiszolgálás testreszabására. Néhány kutatás fejlesztési feladatot az RDS szolgáltatással (database clustering), valamint big data feladatokat az EMR (elastic map reduce) szolgáltatással oldottunk meg. Az AWS sokrétű hálózati konfigurációs lehetőséi (security policies, routes, site-to-site VPNs)  a vitruális adatközpontunkat szinte észrevehetetlenül teljesen integrálták a vállalati infrastruktúránkba, a fejlesztők néha nem is tudták megmondani, hogy az adott szerver amivel dolgoznak az irodában, vagy felhőben üzemel.

A költségcsökkentés érdekében végrehajtottunk néhány módosítást az AWS környezeten. Ebben segítségünkre van egy kisebb segédprogram, a CostSavingScheduler, amely lehetővé teszi számunkra, hogy néhány kivételéve az összes virtuális gépünket 18:00 órakor kikapcsoljuk egy ütemezett szkript segítségéval, és 8:00 órakor újra elindítjuk. A hétvégék és ünnepnapok szintén állásidőnek minősülnek az időkeretben. Ennek oka az, hogy ezen infrastruktúrákon kizárólag fejlesztéseket végzünk, ill. teszteket futtatunk, ezáltal csupán munkaidőben van szükségünk arra, hogy be legyenek kapcsolva. Mindez 50%-os költségcsökkentést tett lehetővé cégünk számára! A CostSavingScheduler másik előnye, hogy a fejlesztőink megtanulták, hogyan konfigurálják úgy a rendszert, hogy képes legyen bármilyen emberi beavatkozás nélkül elindulni még földrajzilag elosztott környezetben klaszterezett szolgáltatások esetén is. Ezen jelentős költségcsökkentési lehetőség volt a legnyomósabb érv amellett, hogy az AWS használatának folytatása mellett döntsünk.

 

Esetleg váltsunk OpenStack-re?

Legnagyobb ügyfelünk egy saját üzemeltetésű OpenStack-alapú privát felhőt használ. Többször vitatkoztunk arról cégen belül, hogy hasznos-e kétféle felhőszolgáltatást használni - egyet a fejlesztés, egyet pedig a telepítések és az éles produkciós környezet számára.

A legtöbb szolgáltatás mikroszolgáltatásként lett kifejlesztve Docker Swarm, Kubernetes és Hashicorp eszközök (Consul and Nomad) felhasználásával. Ezáltal a szoftvert egy, az infrastruktúra feletti, absztrakciós szinten tudtuk fejleszteni.

Megvizsgáltuk az OpenStack üzleti modellünkhöz történő testreszabásával járó belépési, migrációs és üzemeltetési költségeket. Tisztán a szerver bérlés díja közel a felét tenné ki annak az összegnek, amit az AWS-nek fizetünk, mindemellett fel kellene vennünk új üzemeltetési csapattagokat az infrastruktúra üzemeltetéséhez. Mindez önmagában több kiadást jelentene számunkra, mint amennyit az AWS teljes körű szolgáltatáscsomagjáért havonta fizetünk. A költségvonzati tényezőn túl, az OpenStack-re történő átállás - az új infrastruktúra kiépítése és gépeink migrációja - számottevő mennyiségű időt és ráfordítást igényelne.
A fenti problémákon kívül tulajdonképpen nehéz lenne saját üzemeltetésű OpenStack felhőre váltanunk, mert a projektek által futtatott terheléses- és a stressz tesztek földrajzilag elosztott virtuális adatközpontokat és gépeket igényelnek.

 

Hogyan használtuk a felhőszolgáltatókat

Az infrastruktúra automatikus létrehozását és indítását néhány infrastruktúra management eszközzel tudtuk megvalósítani: szerencsére az AWS biztosított megfelelő integrációt/csatolót az általunk használt eszközökhöz: Kubernetes, Hashicorp Terraform stb. Így könnyedén tudunk testre-szabott infrastruktúrát automatikusan létrehozni AWS-ben.

Terraform többféle szolgáltatóhoz ad megfelelő interfészt: GCE, Microsoft Azure, AWS and OpenStack-hez. Gyakorlatilag infrastruktúra telepítési lépések lettek megírva Terraform planként, amit a mögöttes infrastrukturától függetlenül végre tud hajtani.

A fejlesztés során sikerült a lehető legnagyobb mértékben infrastruktúra függetlenek maradni, leszámítva a néhány kutatási feladatot. Csak a kutatási projekteken használtunk AWS specifikus megoldást (EMR és RDS), majd a projekt első fázisának lezárását követően vagy gyakorlatilag újra lettek írva, vagy konténerizált (Docker) megoldást választottunk, vagy egyszerű Linux gépeket, melyeket a Hashicorp Terraformmal hoztunk létre.