• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Pyconpl2008 - Pogodzić Google App Engine z Django
 

Pyconpl2008 - Pogodzić Google App Engine z Django

on

  • 1,192 views

 

Statistics

Views

Total Views
1,192
Views on SlideShare
1,185
Embed Views
7

Actions

Likes
1
Downloads
1
Comments
0

2 Embeds 7

http://www.slideshare.net 6
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Pyconpl2008 - Pogodzić Google App Engine z Django Pyconpl2008 - Pogodzić Google App Engine z Django Presentation Transcript

    • Pogodzić Google App Engine z Django Rafał Jońca http:/jonca.vdl.pl/ PyConPL 2008 18-19 październik 2008
    • Zawartość  Google App Engine  Co to takiego? Jak działa?  Zalety, wady, ograniczenia, rynek  Django w App Engine  Jak? Co otrzymamy? Jakie wersje Django?  Projekty ułatwiające integrację  Jedna aplikacja, dwa podejścia  WebApp kontra Django GAE Helper  Testy w Django GAE Helper  Wnioski, wskazówki
    • Google App Engine  Platforma dla aplikacji internetowych  zapewniająca:  Łatwość konfiguracji i wdrożenia  Wolność od zadań stricte administracyjnych  Skalowalność  Integracja z kontami Google (uwierzytelnianie)  Obsługa danych statycznych  Środowisko deweloperskie  Bezpłatny startowy pakiet liczby odsłon i  przechowywanych danych
    • Architektura Żądanie/odpowiedź Interfejsy System tylko bezstanowe: do odczytu: zapytania HTTP, Proces biblioteki obrazy, maszyny wysyłka maili wirtualnej Pythona aplikacja Interfejsy memcache DataStore stanowe:
    • Możliwe zastosowania  Własna witryna domowa  Niewielkie witryny lub aplikacje tematyczne  Proste witryny dla przedsiębiorstw nie działających  w obszarze WWW  Tworzenie aplikacji wewnątrzfirmowych jako część  pakietu Google Apps* *  Skalowalne aplikacje internetowe *  ­ po okresie testowym
    • Wady GAE ● Brak relacyjnej bazy danych (złączeń, grupowania) ● Komunikacja ze światem zewnętrznym tylko przez  dostarczone API ● Zamknięte środowisko wykonawcze ● Ograniczenia rozmiarów danych ● Uzależnienie się od rozwiązań jednego dostawcy ● Brak długo działających procesów ● Odmienna architektura trudna do zaakceptowania  dla dużych, istniejących projektów
    • WebApp  GAE udostępnia bardzo prosty framework WebApp  zawierający:  obsługę żądań opartą o bibliotekę WebOb  mechanizm opisu modeli wzorowany na Django  system szablonów z Django 0.96  Dobry na start lub gdy tworzymy usługi sieciowe,  pełna swoboda  Brak wielu mechanizmów z innych frameworków,  wymyślanie koła od nowa
    • Django w App Engine  Użycie Django w GAE daje dostęp do:  elastycznego mechanizmu odwzorowania adresów  systemu luźno powiązanych aplikacji  wygodnej obsługi memcache na poziomie widoków i  * szablonów  rozbudowanego systemu obsługi formularzy  wielojęzyczności na poziomie statycznym  sesji*  testów funkcjonalnych wraz z obsługą danych  testowych*  wielu aplikacji pomocniczych gotowych do użycia 
    • Czego ze standardowego Django nie dostaniemy?  automatycznego panelu administracyjnego  przeglądarki danych (GAE Admin oferuje własną)  komentarzy  mechanizmu contenttypes  innych aplikacji wykorzystujących bazę danych  brak również dostępu do zewnętrznych aplikacji  Django stosujących bazę danych (np. Satchmo)
    • Django w GAE bez dodatkowego wspomagania  W Google App Engine jest Django 0.96  Wymaga zastosowania nieco bardziej złożonego  pliku main.py ­ dostępny na witrynie GAE  Użycie Django 1.0 wymaga większej liczby  dodatkowych kroków:  Najlepiej umieszczenia okrojonego Django w archiwum  ZIP  Usunięcia z pamięci wczytanego Django 0.96 i  dołączenia nowszego przez zmianę ścieżek importu
    • Można prościej!  Istnieją projekty wspomagające współpracę Django  i GAE, z czego najciekawsze są trzy:  http://code.google.com/p/django­gae­helpers  wykorzystamy go w dalszej części prezentacji  wspierany przez pracowników Google  http://code.google.com/p/app­engine­patch/  bardzo podobny do pierwszego  tworzony niezależnie  http://code.google.com/p/django­gae2django/  jeśli tworzyłeś aplikację django w GAE, dzięki temu  projektowi możesz jej użyć poza GAE, czyli w standardowym  Django z relacyjną bazą danych!
    • Google App Engine Helper for Django  wykonywanie poleceń GAE za pomocą manage.py  klasa User z Django dla użytkowników z kontami Google  obsługa testów i wczytywania danych testowych  obsługa wysyłania e­maili mechanizmem Django  przekierowania błędów do modułu logging  automatycznie usunięcie django wbudowanego w GAE i  zastąpienie dostarczonym jako django.zip  obsługa sesji w BigTable i memcache  obsługa cache  gotowe pliki app.yaml i main.py
    • Instalacja GAE Helpers  Pobierz kod z http://code.google.com/p/django­gae­ helpers  Po rozpakowaniu dołącz django.zip z Django 1.0  Opis przygotowań dostępny na  http://code.google.com/appengine/articles/django10_zipi mport.html  Zmodyfikuj plik app.yaml, podając własną nazwę  aplikacji  Od tego momentu masz dostęp do większości  elementów Django 1.0!
    • Przykładowa aplikacja w WebApp  Pobieramy App Engine SDK:  http://code.google.com/appengine/downloads.html  Tworzymy wymagane pliki i foldery  Demo...  Testujemy lokalnie  Demo...  Przesyłamy na serwery Google
    • ...i w Django GAE Helper  Wcześniejsza aplikacja napisana w Django  Demo...  Tworzenie testów i fixtures  Demo...  Aplikacja live
    • Warto czy nie warto?  Dla znających Django   Django GAE Helper i  znacznie bardziej  App Engine Patch to  przyjazne środowisko jednak spory monkey   Pomimo niezgodności  patching! modeli danych    Django GAE Helper nie  uzyskujemy wiele  jest dopracowany gotowych elementów i   Przesyłanie Django 1.0  dostęp do wielu  wraz z projektem dodatkowych aplikacji  Ułatwia migrację do   Łatwiejsze wyjście z  GAE tylko częściowo GAE
    • Przyszłość Django w GAE?  Raczej niezachwiana, choć na bezpośrednią obsługę  wersji 1.0 musimy jeszcze poczekać  Powstanie osobnego projektu GAEDjango?  Jest Gaengo, ale nierozwijane...  Modele zgodne z API ORM Django?  Całkiem możliwe dzięki QuerySet refactor!  Ale  nie  łudźmy  się  w  kwestii  uruchomienia  każdej  aplikacji  Django  bez  modyfikacji  modeli  ­  BigTable  to  wiele ograniczeń, potrzeba denormalizacji...  ... choć liczba zmian będzie znacznie mniejsza
    • Kilka rad na zakończenie  Używaj django.zip zamiast zwykłych plików  Folder locale z django umieść poza archiwum  ...to samo dotyczy szablonów  Użyj łatki z issue 94 dla Django GAE Helper  GAE automatycznie używa gzip    Jeśli to możliwe, używaj metod z QS zamiast GQL  Jeśli możesz, nie używaj sesji, ale signed cookies  ...ewentualnie sesji w memcache, ale są mniej pewne  SDK to nie live, korzystaj z wbudowanego stagingu
    • Dziękuję za uwagę! Pytania?