Udi Google Dev Day


Published on

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Udi Google Dev Day

  1. 1. Real life experience from AppEngine & Django Udi h Bauman Google Developers Day Israel 08
  2. 2. About me  SW architect and developer  Expertise in BI and Semantic Web  Using Python, Django, AppEngine & EC2 for daily work
  3. 3. About my company  We develop and automate Value Creation Processes and by that enable enterprises to maximize their profits.  Our solution is Django based & considered one of the largest & most complex enterprise products developed in Django.  Our CEO is Orr Mendelson, a top expert in Value Creation  We are in Beta stage in several enterprises
  4. 4. My experience in web applications
  5. 5. Great Web Technologies Pain!  CGI  ASP  ColdFusion  Servlets  JSP  EJB  .Net  Open-Source Java frameworks  AJAX frameworks  PHP  Ruby  Rails
  6. 6. Lesson #1 is the best Web technology today.
  7. 7. Django Example  Web site for Visualizing time differences around Daylight Saving Time events − http://daylight-savings-time.info
  8. 8. Using Django  Data model takes minutes to define  Django builds the DB based on the data model  Django generates the back-office administration screens  Django provided the I18N layer  The logic written in Python is OO, simple & succinct, so both dev & maintenance are extra fast  I could focus only on the logic  I kept it simple
  9. 9. Is it mature enough? Does it scale?  Dev technology is really tested when the project passes a certain level of size & complexity  Some technologies, optimized for rapid development, don't scale beyond that point: they don't allow the flexibility & power to grow in complexity & scale, without compromising features & simplicity  After working for 2 years, building a very large & complex enterprise product, I can truly say Django is mature enough & scales extremely well
  10. 10. Still have to take care of:  Deployment − Configuring Apache, DB, Virtual hosting, Prod & Staging environments, &c  Specific application requirements: − Traffic peaks − DB clustering & extreme scalability
  11. 11. Using AppEngine  AppEngine is based on Django, & solves the 1 pain left when using it - it just takes from you all the worries & boring work on: − deployment − hosting − scalability − DB management
  12. 12. Lesson #2 is awesome!
  13. 13. AppEngine Demo  Alex Arshavski & me made a small Demo of using AppEngine for a previous developers event at Google  It took us 2 cafe meetings  Try application at: − http://ppl-search.appspot.com  Download source code: − http://code.google.com/p/ppl-search
  14. 14. How come we could build it so fast?  Because AppEngine (& Django) let's you focus just on the business logic, & do it simply  Because we used of components & Web- Services, that we just needed to mash-up  Because the documentation is extremely good, & you can get an answer to any problem you encounter
  15. 15. What's the catch?  Experienced people always think long-term & manage risks  So their main concern is vendor locking – being tied to Google for ever with their application  It turns out Google had to make some modifications to Django, so writing for AppEngine, isn't like writing pure Django (which can run anywhere)
  16. 16. Tip  Always use the AppEngine Django Helper
  17. 17. Using the Django helper  Let's you write regular Django application, and adapts them to AppEngine  Abstracts some of the Google API's  Allows you to take your site to other cloud/hosting services with only minor changes  To use it: − Create an app using the AppEngine SDK − Replace the content of the folder created with the content of the helper − Rename the app in the app.yaml file
  18. 18. Is AppEngine production ready?  Make sure to be familiar with the quota of the service − Requests are limited to 10s − Throughput is limited  Note that its not yet production ready, mainly in the aspects of uptime SLA & support.  Subscribe to the outage announecement Google group to get notifications on Up-Time − There's also a great monitoring dashboard of cloud services: http://cloudstatus.com
  19. 19. BTW, about Amazon EC2  The main difference is that EC2 just provides the cloud infrastructure, but not the application stack, so you still have the headaches of deployment, configuration &c  The good thing is that it's completely flexible, & can run any technology / legacy application
  20. 20. Criticism on Django  “Why I hate Django” - hilarious keynote from DjangoCon, by Cal Henderson (Flickr's Architect): − http://tinyurl.com/hatedjango  Extremely funny..
  21. 21. Thank you ! Udi h Bauman http://twitter.com/dibau_naum_h DibauNaumH@gmail.com