Költözik a céges infrastruktúra. Előfordul az ilyen. Sőt az is előfordul, hogy az adatbázis szerver típusa is változik. Jelen esetben MySQL-t cseréljük Postgresql-re. A váltásnak kismillió oka van, de erről majd máskor. Most arra vállalkozom, hogy bemutassam lépésről lépésre, hogyan lehet egy működő Drupal portált átköltöztetni ilyen feltételek mellett.
A hálózatok tervezése összetett feladat. Itt most csak egyetlen szemponttal, a biztonsággal foglalkozunk és csak a legfontosabb tudnivalók összefoglalására törekszünk. Ezen kívül fontos persze a teljesítmény, a skálázhatóság és a karbantarthatóság is. Ezekre majd visszatérünk később.
Egy AJAX alapú projekt tervezése közben merült fel a kérdés: milyen adatformátumban utazzanak az adatok a kliens és a szerver között? Ennek kapcsán megpróbálom összefoglalni a legelterjedtebb megoldásokat (XHTML, XML, JSON, SOAP) és bemutatni előnyüket, hátrányukat.
Habár a legnagyobb népszerűségnek a PHP nyelv örvend a web alkalmazások készítésekor, a Python legalább olyan hatékony nyelv lehet erre a feladatra. Külön öröm, hogy akárcsak a PHP esetén a Python nyelvhez is van Apache modul, ami lehetővé teszi, hogy egy beépített értelmezővel hajtassuk végre az alkalmazások. Ez a modul a ModPython. Ebben az írásban röviden bemutatom, hogyan lehet egyszerű web alkalmazásokat fejleszteni ennek az Apache modulnak a segítségével.
Kezem ügyébe került egy régi számítógép (Pentium III 700Mhz, 256MB RAM, 20GB IDE merevlemez). A gazdája kapott új, szebb, jobb gépet de ezt is szeretné használni alapvetően levelezési, böngészési célokra, viszont szeretne megszabadulni a vírusoktól, valamint szeretné ha gyorsabb is lenne gépe.
Némi tanakodás után úgy döntöttem, hogy az Ubuntuval próbálkozom. Sok jót hallottam róla. Azonnal kiderült azonban, hogy a Gnome felület kicsit több memóriát igényel, mint amennyi nekem van. Némi keresgélés után rátaláltam az Xubuntu változatra, ami a Gnome helyett az XFCE 4 rendszert használja, ami első közelítésben megfelel a kívánalmainknak. Nézzük, mit sikerült kihozni belőle.
Belelendültem a teljesítmény-tesztelésbe. Mivel nem találtam komolyabb összehasonlító táblázatot és konkrét benchmark programot sem authoritativ DNS-szerverekre, így az OpenBenchPack projekt keretében készítettem pár python programot erre a feladatra. Továbbá, ha már így alakult mérést is készítettem velük a Debian Sid terjesztésben elérhető összes DNS szerverrel és különféle backendekkel.
A minap jelent meg egy cikk a Slashdoton, amiben a szerző arra a kérdésre próbál választ kapni, hogy vajon a natív kódot generáló programozási környezetek, mint például a C, C++, Fortran, Ada stb. háttérbe fognak-e szorulni (ha már nincsenek is abban) az értelmezett (interpreter) nyelvekkel szemben. Különös tekintettel arra, hogy a JIT (Just-in-time) fordítók igen jó eredményeket tudnak felmutatni. A kérdéshez adalékként végeztem egy-két egyszerű teljesítmény tesztet az alábbi nyelvekkel: C, Java, python, php, perl, ruby.
Bevezető
BIND9 és az LDAP sdb
PowerDNS LDAP backenddel
LDAP DNS helyett
Az IT Infrastruktúra egyik meghatározó komponense a domainnév-szolgáltatás (DNS). Az eredeti célkitűzésnek megfelelően, az alábbiakban azt vesszük sorba, hogyan lehet és érdemes a DNS-kiszolgáló konfigurációs adatait névtárból (LDAP alapú adatbázis) venni. Megnézzük, hogy a legnépszerűbb DNS-kiszolgáló, a BIND 9, hogyan integrálható egy LDAP szerverrel, illetve megvizsgáljuk, milyen alternatív megoldások léteznek.
Bevezető
LDAP információs modell
LDAP séma
LDAP vs. SQL
Abban a pillanatban, hogy egy IT infrastruktúrában egynél több rendszerkomponens (számítógép, hálózati eszköz stb.) jelenik meg, amiken felhasználói azonosítást kell végezni, azonnal felmerül az igény, hogy ezt a feladatot központosított módon oldjuk meg. A központi nyilvántartás mindenképpen valamilyen adatbázisra kell, hogy épüljön, mely tartalmazni fogja a felhasználók természetes adatait (név, cím, telefonszám stb.), a biztonságos azonosításhoz szükséges adatokat (jelszó, publikus kulcs stb.) ill. néhány alkalmazás-specifikus paramétert. Vajon melyik a legalkalmasabb megoldás erre a feladatra?