A Flux 7 8 leggyakrabban használt Docker felhasználási esetet vezet be: egyszerűsített konfigurációt, kódvezeték-kezelést, javított fejlesztési hatékonyságot, izolált alkalmazásokat, konszolidált szervereket, hibakeresési lehetőségeket, többbérlős környezeteket és gyors fejlesztést. Beszélgettünk a Dockerről, arról, hogyan kell használni, és milyen alkalmakon? Talán ez a cikk segíthet neked. Ha van valami, amit közölhetsz, akkor hozzászólásokkal is kommunikálhatsz velünk.
Néhány héttel ezelőtt részt vettünk a DockerConon, az első Docker-központú technológiai konferencián. A programot fejlesztők és szakemberek célozzák meg, akik elosztott alkalmazásokat építenek, szállítanak és futtatnak a Docker nyílt platformján, akár saját notebookjukon, akár virtuális gépeken az adatközpontban. Részt vettünk a konferencián, és a Flux7 rendszerintegrációs partner a Docker alapítványok számára, valamint vendégelőadó.
Vezérigazgatónk, Aater Suleman beszélt egyik ügyfelünkkel. Bár a DockerCon nagyon szórakoztató volt, úgy éreztem, hogy a konferencia túl sokat a Docker részleteire koncentrált, és elhanyagolta a Docker felhasználási eseteit. Ezért ebben a cikkben szeretnék bemutatni és megosztani néhány gyakorlati felhasználási esetet a Dockerről.
Mielőtt a Docker felhasználási eseteiről beszélnénk, nézzük meg, mi teszi Dockert olyan különlegessé.
A Docker könnyű virtualizációt kínál szinte plusz költséggel, ami elég menő.
Először is, nem kell aggódnod a Docker plusz terhelése miatt, miközben élvezed a virtualizációs képességet. Másodszor, ugyanazon a gépen több konténer lehet létrehozni, mint egy virtuális gépen.
A Docker másik előnye, hogy a konténereket másodpercek alatt lehet indítani és megállítani. Solomon Hykes, a Docker alapítója egyszer arról beszélt, mit tett a Docker az LXC mellett, és megnézheted.
Íme néhány Docker felhasználási esetem, amelyek megmutatják, hogyan használhatod ki a Docker előnyeit, hogy következetes környezetet teremtsünk alacsony költséggel.
1. Egyszerűsített konfiguráció
Ez a Docker Company által hirdetett fő felhasználási eset. A virtuális gépek legnagyobb előnye, hogy különböző platformokat (szoftvereket, rendszereket) futtathatsz a hardveres létesítményeken, és a Docker ugyanazt a funkciót nyújtja kevesebb plusz terheléssel. Lehetővé teszi, hogy a futás idejét és konfigurációt kódba helyezzük, majd telepítsd őket, és ugyanaz a Docker konfigurációja különböző környezetekben használható, ami csökkenti a hardverigények és az alkalmazási környezetek közötti kapcsolódást.
2. Kódvezeték-kezelés
Az előző forgatókönyv nagyban segít a kód vezetékének kezelésében. A kód sok köztes környezeten megy keresztül a fejlesztő gépétől egészen a végső telepítésig a gyártási környezeten. Minden köztes környezetnek megvannak a maga apró különbségei, és a Docker olyan környezetet biztosít, amely a fejlesztéstől a megjelenésig következetes, így a kód futtatása sokkal könnyebbé válik.
3. Fejlesztési hatékonyság javítása
Ez további előnyöket hoz: a Docker produktívabbá teszi a fejlesztőket. Ha részletesebb példát szeretnél látni, nézd meg Aater előadását a DevOpsDays Austin 2014-en vagy a DockerConon.
Különböző fejlesztői környezetekben mindannyian két dolgot szeretnénk jól csinálni. Először is, a fejlesztési környezetet a lehető legközelebb akarjuk tenni a termelési környezethez, másodszor pedig gyorsan szeretnénk felépíteni a fejlesztési környezetet.
Ideális esetben az első cél eléréséhez minden szolgáltatást külön virtuális gépben kell futtatnunk, hogy nyomon követjük a szolgáltatás állapotát a gyártásban. Viszont nem akarunk minden alkalommal hálózati kapcsolatra lenne szükségünk, és különösen problémás minden újrafordításkor távolról csatlakozni. Ezt különösen jól csinálja a Docker, a fejlesztői környezetben lévő gépek általában viszonylag kis memóriával rendelkeznek, és virtuális környezetben gyakran szükség van memóriát hozzáadni a fejlesztő környezetben lévő gépekhez, de most már a Docker könnyedén engedi tucatnyi szolgáltatást futtatni Dockerben.
4. Izolálni az alkalmazásokat
Számos oka lehet annak, hogy különböző alkalmazásokat futtatsz egy gépen, például a korábban említett forgatókönyvek a fejlesztési hatékonyság javítása érdekében.
Gyakran fontolóra kell vennünk a szerverkonszolidációt a költségek csökkentése érdekében, és egy monolitikus alkalmazás egyetlen, lazán összekapcsolt szolgáltatássá való szétválasztását. Ha meg akarod érteni, miért olyan fontosak a lazán összekapcsolt alkalmazások, nézd meg Steve Yege tanulmányát, amely összehasonlítja a Google-t és az Amazont.
5. Szerverek konszolidálása
Ahogyan több alkalmazás is integrálódik virtuális gépeken keresztül, úgy a Docker alkalmazások izolálási képessége lehetővé teszi, hogy több szervert konszolidáljon a költségek csökkentése érdekében. Mivel több operációs rendszer memóriája nélkül, és a kihasználatlan memóriát több példány között megoszthatjuk, a Docker jobb szerverkonszolidációs megoldást nyújthat, mint a virtuális gépek.
6. Hibakeresési képesség
A Docker sok olyan eszközt kínál, amelyek nem feltétlenül csak konténerekhez valók, de működnek a konténereknél. Számos funkciót kínálnak, többek között a konténerek ellenőrzőpontjainak beállítását, verziók beállítását, és a két konténer közötti különbségek megfigyelését, ami segíthet hibakeresésben. Erre példát találsz a Docker Save the World cikkben.
7. Többbérlős környezet
Egy másik érdekes felhasználási eset a Docker számára a többbérlős alkalmazások, amelyek elkerülhetik a kritikus alkalmazások újraírását. Egy konkrét példa erre a forgatókönyvre egy gyors, könnyen használható többbérlős környezet fejlesztése IoT alkalmazásokhoz. Ez a többbérlős alapkód bonyolult és nehezen kezelhető, és egy ilyen alkalmazás újratervezése idő- és pénzpazarlás.
A Dockerrel könnyű és olcsó izolált környezeteket létrehozni minden bérlő alkalmazásrétegének több példányához, köszönhetően a Docker környezetek sebességének és hatékony diff parancsaiknak.
Erről a helyzetről itt tudhat meg többet itt.
8. Gyorsan bevetésre
A virtuális gépek előtt több napba telik az új hardveres erőforrások bevezetése. A Docker virtualizációs technológiája ezt az időt percekre csökkenti, és a Docker egyszerűen létrehoz egy konténerfolyamatot anélkül, hogy elindítaná az operációs rendszert, ami másodperceket vesz igénybe. Pontosan ezt értékeli mind a Google, mind a Facebook.
Létrehozhatsz egy tönkretételi erőforrást az adatközpontodban anélkül, hogy aggódnál az újraindítás többletköltsége miatt. Általában az adatközpontok erőforrás-kihasználtsága csak 30%-kal rendelkezik, és a Docker használatával és a hatékony erőforrás-elosztással javítható. |