Platforma ca serviciu - Google App Engine


 21 Oct, 2014  doru  721  
google-app-engine platfoma-ca-serviciu pcs paas python java go php

Google App Engine (GAE) este produsul Google care îți dă posibilitatea să rulezi propriile aplicații web pe infrastructura gigantului în serviciile de căutare. Adică propria ta aplicație web / sait rulează pe serverele Google prin intermediul GAE. Astfel de produse sunt numite azi în țările anglofone, Platform as a service (PaaS) adică Platforma ca serviciu (Pcs). GAE nu este singura Pcs, mai sunt: Heroku, Microsoft a dezvoltat propria sa platformă cloud - Windows Azure, Amazon are Amazon Web Services (AWS), RedHat are OpenShift etc.

Beneficiile Pcs sunt evidente, unul dintre cele mai importante fiind scalabilitatea - dacă saitul tău are mâine, brusc, un milion de vizitatori nu ți se prăbușește și nici nu trebuie să alergi după servere în plus: în mod automat sunt alocate servere de către Google (în cazul GAE) care să facă față traficului. Deci tu, ca dezvotator al aplicației web, niciodată nu o să ai probleme de administrare a hardware-ului și de configurare a software-ului de pe acesta: te poți dedica în întregime dezvoltării propriei aplicații. Iar dintre părțile neplăcute de menționat ar fi: serviciile restânse sau nepotrivite pentru aplicațiia ta, oferite de respectiva Pcs sau constrângerea de a-ți dezvolta aplicația într-un anume limbaj de programare (dar majoritatea Pcs îți dau posibilitatea să alegi între cel puțin două limbaje).

Momentan poți dezvolta aplicații pentru GAE în patru limbaje de programare: Pyhton, Java și - încă în fază experimentală - în Go și PHP. Evident, aceste limbaje se folosesc pe partea de server (back-end). Orice Pcs îți pune la dispoziție diverse servicii pe care le poți folosi în propria aplicație importând anumite module, funcții sau clase (adică prin intermediul unei Interfețe de programare a aplicațiilor (Ipa), în engleză, Application Programming Interface, pe scurt API) ; GAE îți pune la dizpoziție: o Ipa pentru mail - poți trimite și primi email-uri, o Ipa pentru discuții (chat) online (XMMP), o Ipa pentru acțiuni care trebuie să aibă loc în mod repetat și automat la anumite intervale de timp (cron jobs), o Ipa pentru a trimite și primi SMS-uri, o Ipa pentru a prelucra imaginile și multe altele.

Pentru a facilita dezvoltarea saiturilor dinamice și pentru a ușura munca dezvoltatorilor web au fost create softuri-cadru pentru dezvoltarea aplicațiilor web (web application frameworks). Acestea se ocupă cu acțiunile repetitive și necesare unei aplicații/sait dinamic web: administrarea sesiunilor de utilizator (sessions), accesul la baza de date (database access), crearea unui sistem de șablonare (template engine) care să fie folosit pe partea de client a saitului pe care îl dezvolți, rutarea (routing), adică conectarea URI-urilor (sau URL-urilor) cu funcțiile (scrise de tine!) care trebuie să le administreze, etc.

În cadrul GAE se pot folosi mai multe astfel de softuri-cadru pentru dezvoltarea aplicatiilor web.

În Python: webapp2 care este implicit, Django, CherryPy, Pylons, web.py, web2py, Flask, Pyramid, Bottle și mai nou Ferris2.

În Java: Struts, Play, Sitebricks, JAX-RS cu Freemarker.

în PHP: Drupal, Laravel, Silex și CodeIgniter (pe lângă faptul că se poate rula și Wordpress).

Pentru cei care vor să teseze GAE vestea bună e că o pot face gratis, ba chiar pot rula un sait cu funcționalitate reală pe GAE ani de zile fără să plătească un ban - asta atâta timp cât nu depășesc cotele gratuite (pentru un sait mic, ba chiar spre mediu aceste cote sunt cam suficiente - iar, dacă le depășești, comandă-ți o bere: (aproape) ai dat lovitura! :) ). Documentația GAE și diverse tutoriale (în engleză) se găsesc aici (iar dacă stai mai prost cu engleza anunță-ne printr-un comentariu la acest articol și promitem că vom posta mai multe despre GAE, poate chiar o mică aplicație demonstrativă). (ro)cod cu spor! :)