====== Internetes megjelenés technikai hátterének költöztetése ====== Ez a kis iromány megpróbálja összefoglalni a tennivalókat egy képzeletbeli cég komplex internetes megjelenésének (azaz: weblapjának és levelezésének) technikai költöztetése szempontjából. A dokumentumban található összes cégnév és cím csak a fantázia szüleménye, a valósággal való bárminemű egyezésért a szerző nem vállal felelősséget! ===== A környezet ===== Tételezzük fel az alábbi helyzetet: * A cég neve: //Cég Kft.// * Honlapja: //www.ceg.hu // * Email címei: //munkatars1@ceg.hu//, //munkatars2@ceg.hu//, stb... A //Cég// részére a //GagyiHosting Bt.// (//gagyihosting.hu//) a következő szolgáltatásokat nyújtja: * Web szerver: //10.0.0.1// vagy //www.ceg.hu // * Ezen belül: Apache HTTP szerver, MySQL adatbázis szerver, aktív weblapok * Mail szerver: //10.0.0.2// vagy //mx.ceg.hu // vagy //mx.gagyihosting.hu// * Ezen belül: IMAP, POP3 szolgáltatott mailboxok a teljes levelezéssel * Elsődleges DNS szerver: //10.0.1.1// vagy //ns1.gagyihosting.hu// * Másodlagos DNS szerver: //10.0.2.1// vagy //ns2.gagyihosting.hu// A //Cég// részére a //NetSzolgáltató Kft.// (//netszolgaltato.hu//) nyújtja az irodai internet szolgáltatást: * Kimenő levelező SMTP szerver: //10.0.3.1// vagy //smtp.netszolgaltato.hu// A //Cég// birtokában levő //ceg.hu// domain regisztrátora a //Regisztrátor Kft.// ==== Megjegyzések ==== * Jelen dokumentum nem fedi le azt az esetet, mikor a //Cég// a saját névszerverét üzemelteti, vagyis a névszerver címe pl. //ns1.ceg.hu//. * Nem számít, hogy a fenti IP címek esetleg a valóságban azonosak, valójában a címekhez kapcsolódó szolgáltatások számítanak jelen dokumentum szempontjai szerint. * Jelen dokumentum külön nem foglalkozik azzal az esettel, mikor a //Cég// kimenő leveleit nem a //NetSzolgáltató// fogadja, hanem a //GagyiHosting//. Ez általában nem jelent külön nehézséget, mivel a két szolgáltatás, vagyis az, hogy a //GagyiHosting// és a //ProfiHosting// is fogadja a kimenő leveleket, egy ideig párhuzamosan is üzemelhet minden fennakadás nélkül. * Nem kezeljük külön azt az esetet, mikor a dinamikus weblap a különböző változó adatokat (pl. rendelések, stb...) nem egy SQL adatbázisban, hanem például saját formátumú fájlokban vagy más módon tárolja. Ebben az esetben a változó adatok kezelése gyakorlatban megegyezik a dokumentumban az adatbázis kezelése során leírtakkal. ===== A feladat ===== A //Cég// megunta a //GagyiHosting// szerencsétlenkedését és eldöntötte, hogy minden szolgáltatását lemondva átköltözik a //ProfiHosting Kft.//-hez. Ennek eredményeképp az alábbi helyzetet kívánja előállítani, az **összes szolgáltatás kiesésének minimalizálásával**: A //Cég// részére a //ProfiHosting// (//profihosting.hu//) a művelet végén következő szolgáltatásokat nyújtja: * Web szerver: //10.10.0.1// vagy //www.ceg.hu // * Ezen belül: Apache HTTP szerver, MySQL adatbázis szerver, aktív weblapok * Mail szerver: //10.10.0.2// vagy //mx.ceg.hu // vagy //mx.profihosting.hu// * Ezen belül: IMAP, POP3 szolgáltatott mailboxok a teljes levelezéssel * Elsődleges DNS szerver: //10.10.1.1// vagy //ns1.profihosting.hu// * Másodlagos DNS szerver: //10.10.2.1// vagy //ns2.profihosting.hu// A //NetSzolgáltató// és //Regisztrátor// feladatköre változatlan marad. ===== Előkészületek ===== ==== 1. DNS szolgáltatás ==== A költöztetés kritikus része a DNS szerverek átírása, mivel a DNS architektúra működése és a szerverek osztott adminisztrációja miatt itt lehet legnagyobb késleltetésre számítani. Mindenképp jó előkészület a //ceg.hu// DNS tartomány (zóna) frissítési idejének csökkentése. A gyors átírás érdekében az alábbi beállításokat érdemes életbe léptetni, általában a költözés előtt 1-2 héttel, de legalább pár nappal: * **TTL** - a time to live érték határozza meg, hogy egy adott zónára vonatkozó kérések eredményeit mennyi ideig lehet gyorsítótárban tárolni más névszervereken. A TTL érték alapértelmezésben, mint az összes többi beállítás is, másodpercben értendő. A 0 érték jelentése //elvileg// a gyorsítótárazás kikapcsolása, de ezt nem minden szerver fogja figyelembe venni. Érdemes 5-10 perces értékre állítani az alapértelmezett 1-2 nap helyett. * **refresh** - ez az érték szabályozza, hogy a másodlagos (slave) DNS szerverek milyen gyakran frissítsék saját zónafájljukat az elsődleges (master) névszerver adatai alapján. Célszerűen érdemes 5-10 perces értékre állítani, bár a master általában értesítést küld a slave szervereknek, ha a zóna megváltozott. A többi zóna beállítást alapértéken lehet hagyni, arra azonban különösen figyelni kell, hogy a **serial** értéke minden esetben növekedjék, mikor valamit módosítunk. === Teendők === A DNS szerverek módosítása, ahogy ez már említésre került, a költözés egyik kritikus lépése, mivel a legtöbb késlekedést és kiesést ez okozhatja. A //Cég//nek el kell döntenie, milyen stratégiát alkalmaz a DNS zónák frissítésével kapcsolatban a művelet során. Mindenképp célszerű, ha a költöztetést végző személyzet azonnali és közvetlen befolyással bír a zóna fájlokra. Ezzel kapcsolatban az alábbi megfontolások és teendők érvényesülnek. == Ha a ceg.hu névszervere a GagyiHosting == Az egyik lehetséges eset, hogy a //Cég//, vagyis a //ceg.hu// zóna DNS szervereit a //GagyiHosting// üzemelteti. Ez a helyzet általában, ha a névszerverek neve pl. //ns1.gagyihosting.hu//, ilyenkor érdemes lehet először előkészületként a DNS szolgáltatást átköltöztetni a //ProfiHosting//hoz, úgy, hogy a zónák tartalma, vagyis a nevekhez tartozó IP címek egyelőre változatlanok maradjanak. Az így előállt új helyzet a következő lesz: A //Cég// részére a //GagyiHosting Bt.// (//gagyihosting.hu//) a következő szolgáltatásokat nyújtja: * Web szerver: //10.0.0.1// vagy //www.ceg.hu // * Ezen belül: Apache HTTP szerver, MySQL adatbázis szerver, aktív weblapok * Mail szerver: //10.0.0.2// vagy //mx.ceg.hu // vagy //mx.gagyihosting.hu// * Ezen belül: IMAP, POP3 szolgáltatott mailboxok a teljes levelezéssel A //Cég// részére a //ProfiHosting// (//profihosting.hu//) a művelet végén következő szolgáltatásokat nyújtja: * Elsődleges DNS szerver: //10.10.1.1// vagy //ns1.profihosting.hu// * Másodlagos DNS szerver: //10.10.2.1// vagy //ns2.profihosting.hu// A helyzet kialakításához szükséges lépések: * A zóna beállításához szükség lehet a //GagyiHosting// által tárolt adatokra is a //ProfiHosting// számára. Ezek kiszolgáltatása nem mindig megy zökkenőmentesen. * A //ProfiHosting// elvégzi a //ceg.hu// zóna technikai beállítását, majd megadja a //Cég// számára az új technikai adatokat. * Mivel a //ceg.hu// a //Cég// tulajdona, adminisztratív úton (levél, fax) neki kell kezdeményeznie a //Regisztrátor//nál a zóna technikai adatainak módosítását. * A //Regisztrátor// módosítja a zóna delegáció adatait és visszajelez a //Cég// és a //ProfiHosting// számára. * A //ProfiHosting// érvénybe lépteti a már említett **TTL** és **refresh** beállításokat. Mivel a két hosting szolgáltatón kívül a //Regisztrátor// közreműködésére is szükség lesz a helyzet átalakításához, az átfutási idő nagyon változó, de kb. 1 hetes időtartammal érdemes számolni. == Ha a ceg.hu névszervere a Cég saját szervere == Ezt az esetet jelen dokumentumban nem fedjük le, ez inkább a szerver IP cím változtatás témakörébe tartozik. ==== 2. Mail környezet ==== A levelezési környezet költöztetésének előkészülete a következő lépésekből áll: * A //Cég// átadja a //ProfiHosting// számára a levelezési címek és hozzájuk tartozó mailboxok listáját. * A //ProfiHosting// beállítja saját levelező szerverét (//mx.profihosting.hu//), hogy fogadja és helyezze a megfelelő mailboxokba a //ceg.hu// domainre érkező leveleket, pl. a //munkatars1@ceg.hu//, //munkatars2@ceg.hu//, stb... címzésű levelek kerüljenek a számukra dedikált mailboxba. * A //ProfiHosting// átadja az új mailboxok elérési adatait a //Cég// számára. * A //Cég// beállítja és konfigurálja az új mailboxokat az összes munkatársnál * A //Cég// utasítja a //GagyiHosting//ot, hogy a //ceg.hu// címeire érkező összes levelet másolatban továbbítsa az //mx.profihosting.hu// szerverre. Innentől párhuzamos működés áll fenn, minden levél duplán érkezik meg, egyszer az //mx.gagyihosting.hu// és egyszer az //mx.profihosting.hu// gépre. * A //Cég// teszteli az új mailboxokat, a párhuzamos működés idején kezeli a levélduplikátumokat. * A //Cég// utasítja a //GagyiHosting//ot, hogy a //ceg.hu// címeire érkező összes levelet továbbítsa az //mx.profihosting.hu// szerverre (ezt nevezik "mail relay" szolgáltatásnak). Innentől a levelek már csak az //mx.profihosting.hu// gépre érkeznek meg, de még áthaladnak az //mx.gagyihosting.hu// gépen is. ==== 3. Web környezet ==== A webes környezet költöztetésének előkészületei: * A //Cég// és a //GagyiHosting// folyamatos technikai hozzáférést ad a //ProfiHosting//nak a //www.ceg.hu // kiszolgálójaként működő HTTP és adatbázis szolgáltatás adataihoz és konfigurációjához a //10.0.0.1// című gépen. * A //ProfiHosting// létrehozza az átadott információ alapján a //10.10.0.1// című gépen a //www.ceg.hu // honlap másolatát, a hozzá tartozó adatbázissal együtt a //Cég// technikai szakembereinek segítségével. * A //Cég// teszteli, az egyelőre csak más néven (pl. //ceg.profihosting.hu//) elérhető, előzetes honlapot. ===== A költöztetés ===== ==== 1. Mail környezet ==== A levelezési környezet előkészítése magába foglalta a //Cég// részéről a tesztelést, a //GagyiHosting// részéről pedig már megszűnt a levelek helyi mailboxba történő kézbesítése, csak továbbító szerepet lát el. Ezek alapján az összes teendő: * A //ProfiHosting// részéről a //ceg.hu// DNS zóna módosítása, az //mx.gagyihosting.hu// cím lecserélése //mx.profihosting.hu//-ra. * A //ProfiHosting// részéről a régi levelek átmásolása az //mx.gagyihosting.hu// gépről az új, //mx.profihosting.hu// levelező szolgáltatóra. (Ez a lépés történhet az előkészítés részeként is, a "mail relay" szolgáltatás beállítása után.) * A //GagyiHosting// részéről az első lépés végrehajtásától számított kb. 1 hét várakozás után a saját levelezési rendszeréből a //ceg.hu// konfigurációjának eltávolítása. A fenti lépések segítségével a levelező szolgáltatás kiesése teljesen elkerülhető. ==== 2. Web környezet ==== A web környezet költöztetése szempontjából kritikus pont az adatbázis (pl.: MySQL) szerver adatintegritásának megőrzése. Dinamikus weblapok költöztetése esetén két esetet különböztethetünk meg: === A webes környezet írási műveletei felfüggeszthetők === Ez alatt azt értjük, hogy azok a műveletek, amik az adatbázis módosításával járnak, például új rendelések feladása, látogatottsági naplók készítése, stb... egy időre (1-2 óra) teljesen megszüntethetők, például az adminisztrációs felület, vagy a bejelentkezés kikapcsolásával. Ebben az esetben az alábbiakban említett "felfüggesztett időszak" a honlap korlátozott elérhetőségét jelenti. === A webes környezet írási műveletei NEM felfüggeszthetők === Értelem szerűen az előző ellentéte. Ebben az esetben az alábbiakban említett "felfüggesztett időszak" a honlap teljes elérhetetlenségét jelenti. === Lépések === * A //ProfiHosting// a változó adatokat szinkronizálja a még aktív //10.0.0.1// és az új //10.10.0.1// gép között. * A //ProfiHosting// "felfüggesztett időszakot" kezdeményez a //GagyiHosting// //10.0.0.1// számítógépén és az új, //10.10.0.1// című gépen. * A //ProfiHosting// módosítja a //www.ceg.hu // DNS rekordját, hogy az az új, //10.10.0.1// című gépre mutasson. Ez az a lépés, ami miatt a DNS **TTL** és **refresh** értékek megfelelő beállítása kiemelten fontos. * A //ProfiHosting// a változó adatokat újra szinkronizálja a még aktív //10.0.0.1// és az új //10.10.0.1// gép között. * A //ProfiHosting// megszünteti a "felfüggesztett időszakot" az új, //10.10.0.1// című gépen. A régi, //10.0.0.1// című gép felfüggesztése végleges marad! * A //GagyiHosting// az előző lépés végrehajtásától számított kb. 1 hét várakozás után a saját webes rendszeréből a //www.ceg.hu // weblap konfigurációját eltávolítja. A fenti lépések követése esetén a weblap felhasználók által tapasztalt "felfüggesztett időszak" a (második) adatbázis újra-szinkronizáció és a megváltoztatott DNS rekordok elterjedéséhez szükséges idő összege, az adatbázis másolásához szükséges idő függvényében ez általában 1-5 órát jelent. ==== 3. DNS szolgáltatás ==== A DNS szolgáltatás gyakorlatilag már az előkészítés során a //ProfiHosting// kiszolgálóira költözik, így nincs más teendő, mint a //GagyiHosting// oldalán megszüntetni a kiszolgálást. Ezt természetesen csak az előző lépések problémamentes végrehajtása után célszerű megtenni.