Sokan kértetek, hogy írjak erről, mert egy óriás cuccain futtatni a sajátot izgis dolog és olyan, mintha egy könnyű cloud computing megoldásunk lenne. Azonban sajnos nincs személyes tapasztalatom, de nagyon sok helyen olvastam róla és remélem, hogy az összeszedett információmorzsák érdekesek lesznek.
A legfontosabb, hogy egyelőre csak Python nyelven lehet rá írni, a következő pedig valószínűleg a Java lesz, mert a Google általában ezekben fejleszt, van is rá valamilyen szabályzatuk: Python, Java, C++, JavaScript.
PHP belátható időn belül (mondjuk 1-2 év) valószínűleg nem lesz, ha egyáltalán. Ahhoz ugyanis nagyon másmilyen infrastruktúra kell, messze nem úgy van, hogy szimplán apt-get-elnek a Linuxra egy PHP-t, bár a Google (marketing) állítása szerint az egész nyelvfüggetlenül lett kialakítva... de ezt nem tudom elhinni. Persze jó lenne. (Asszem a Rails-re is hiába vártok.)
Szóval az AppEngine egy szoftverszolgáltatás ahol a bent lévő eszközöket kell használnod és felejtsd el mondjuk a root jelszót, ez nem hosting, még csak nem is virtuális szerver, hanem ismételjük mégegyszer, szoftverszolgáltatás (Software as a Service). Cserébe robusztusságot és felfelé skálázódást kapsz, gyakorlatilag egy felhőbe fejlesztesz, miközben nem kell a felhőben futó példányokkal foglalkozni.
Kész framework-ök vannak, nem egy üres Python. Az AppEngine saját, rá jellemző környezettel bír, az oda írt dolgaid nem lesznek portábilisak (mondjuk hova is vinnéd). Van saját user authentication, templating, szerver-kérés kezelő és még jónéhány framework. A user authentication persze arra van kihegyezve, hogy használd a Google felhasználóbázisát, a Google account-okat, ki hitte volna.
Az ingyenes részben 500 mega tárhely és 5 millió pageview van, ez magyarra fordítva: nem sok tárhely (arra használj valami mást), a pageview pedig itt nem "igazi" pageview, hanem minden egyes kérés a szerver felé egy pageview-nak számít, az AJAX-os kérések is természetesen.
Példa: ha a webes alkalmazásod átlagosan 10 kérésből rak össze egy oldalt és egy látogatás átlagosan 4 oldal megnézéséből áll, akkor egy egyedi látogatót 40 pageview-nak kell számolni, ami havi 125 000 látogatás, vagyis napi 4 167. (Átlag 2 kérésnél persze 20e fölé csúszol, ám az mégsem nagyságrendekkel több.) Tehát ha sikeres lesz a szolgáltatásod, akkor az AppEngine valamelyik fizetős csomagjába fogsz becsúszni, de ez nem csoda, játszani meg ingyen lehet rajta.
A legnagyobb korlátozás nem a Python, hanem az AppEngine-ben lévő adatbázis-kezelő, a Datastore. Ez nem olyan, mint a MySQL vagy bármelyik általad ismert, főiskolán/egyetemen oktatott relációs adatbázis-kezelő, mert ő nem relációs adatbázis-kezelő.
Az adatokat nem rekordokban és azon belül mezőkben, hanem inkább objektumokban és azok tulajdonságaiban tárolja. Nemis táblákat kell definiálni, hanem objektum-modelleket. Ez abban jobb a hagyományoshoz képest, hogy bármelyik tárolt objektumhoz bármikor hozzápasszinthatsz egy új tulajdonságot (értéket), a relációs adatbázisban viszont ilyenkor egy új mezőt kell felvenni a táblában, ami macerásabb.
A gáz a lekérdezésekben van, messze nem olyan rugalmas, mint a relációs ügy. Ennyit tudsz mindössze: SELECT * FROM objektumtípus WHERE feltétel [AND feltétel...] ORDER BY valami ASC/DESC [valami ASC/DESC...] LIMIT offset, count OFFSET offset.
Nincs GROUP BY, nincs táblákat kapcsolunk össze (több FROM), nincs JOIN, nincs SUM, AVG, COUNT és egyebek! Nincs LIKE sem, csak teljes szavakra lehet keresni, szótöredékekre nem... Nyugodtan elfelejtheted az igazi SQL-t, a normalizálást és egyebeket, amiket a suliban tanítottak (illetve ne felejtsd el, de kezeld a helyén).
Arra ne nagyon számíts, hogy ezek a lehetőségek majd később úgy igazán bővülni fognak, mert a Datastore a BigTable-re épül: amit az nem tud mert más a filozófiája, a Datastore sem fogja tudni. Egyébként skálázódik szépen, de ő sem villámgyors, ezért van az AppEngine-ben Memcache API.
Azért ne búslakodj, jónéhány dologra kiváló az AppEngine, de a blogodat vagy egy céges oldalt nem ide fogsz rakni.
iMect means internet, media and other cool things. iMect is a small company near lake Velence, Hungary. We’ve a big footer on every page where you can discover what we do and what happens with us.
Az iMect jelentése: internet, média és egyéb király dolgok. Egy kis cég vagyunk közel a Velencei-tóhoz. Minden oldalon van egy nagy lábléc, ahol felfedezheted, hogy mivel foglalkozunk.