Понравилась презентация – покажи это...
Слайд 0
App EngineCloud Computing платформа от Google
Петр Чардин, Михаил Дайчик
Апрель 2009
Слайд 1
Cloud Computing
Cloud computing – технологический тренд, суть которого состоит в переносе программного обеспечения для личного и корпоративного пользования в интернет. Он объединяет такие концепции как software as a service, infrastructure as a service и platform as a service.
Слайд 2
Cloud Computing
Слайд 3
Cloud Computing
Слайд 4
Мотивация
Создавать масштабируемые веб-приложения тяжело. Особенно для небольших групп разработчиков.
- Типичный LAMP-стек требует нетривиальной конфигурации и последующего администрирования.
- LAMP-приложения требуют дополнительной инфраструктуры для решения таких проблем как балансировка, репликация данных и мониторинг.
- Такие приложения тяжело масштабировать. Нередко приходится менять архитектуру приложения с ростом нагрузки.
Все эти проблемы решаются снова и снова.
Слайд 5
Мотивация
У Google тоже имеется богатый опыт создания масштабируемых приложений. Наши приложения используют миллионы пользователей по всему миру.
Мы потратили много сил для создания удобной и надежной инфраструктуры для разработки веб-приложений.
Google App Engine это платформа которая позволяет использовать нашу инфраструктуру для создания и хостинга своих приложений.
Слайд 6
App EngineCloud Computing платформа от Google
Платформа отвечает за автоматическую масштабируемость и балансировку нагрузки
Платформа предоставляет динамический веб-сервер с поддержкой многих распространенных веб-технологий
Хранилище данных на основе Big Table
Простая интеграция с аккаунтами Google через API.
Слайд 7
Как работает App Engine
Node 1
Node 2
Node 3
Node N
Google
Cluster1
Node 1
Node 2
Node 3
Node N
Google
Cluster N
Node 1
Node 2
Node 3
Node N
Datastore
Cluster1
Node 1
Node 2
Node 3
Node N
Datastore
Cluster M
Python web server
Persistent Layer
HTTP Request
HTTP Response
Слайд 8
Разработка приложений с помощью App Engine
App Engine SDK
Веб-сервер
dev_appserver.py
Утилита для загрузки приложений
appcfg.py
Локальная реальзация DataStore
App Engine APIs
Слайд 9
Разработка приложений с помощью AppEngine
Слайд 10
Конфигурация приложения - app.yaml
application: helloworldversion: 1runtime: pythonapi_version: 1handlers:- url: /.*script: helloworld.py
yaml (yet another markup language) - Deployment Descriptor for the Application
Maps URLs to the handlers
Слайд 11
URL
Python Handlers
/*.html
HtmlHandler
/*.form
FormHandler
app.yaml (deployment descriptor)
WebApp Framework
(Google’s Web framework)
Django Framework
(Third Party)
WebOb Framework
(Third Party)
Mail APIs
Users APIs
MemCache API
Data
Store APIs
Python Runtime
Runtime-компоненты приложения, развернутого на App Engine
Слайд 12
Request Handler - helloworld.py
Слайд 13
App Engine DataStore
Мощное не реляционное распределенное хранилище данных
Поддержка SQL-образного языка GQL
DataStore API
Слайд 14
Объекты и их свойства
В хранилище данных хранятся сущности (Entities)
У каждой сущности есть набор свойств, заданного типа (например User, IM, Link, Rating, GeoPt, PhoneNumber и тд)
Сущности имеют Возможность ссылаться на другие сущности (many to one relationships)
Entity
Properties
has
Слайд 15
Ключи
У каждой сущности (Entity) есть ключ, являющийся ее уникальным идентификатором
Ключ состоит из трех частей (1) типа сущности, (2) пути определяющего его положение относительно предка и (3) уникального имя или числового идентификатора.
Слайд 16
Группы сущностей
Root Entity
Группы сущностей хрянятся в одном узле распределенного хранилища
Группа сущностей определяет рамки одной транзакции
Слайд 17
DataStore - Runtime компоненты
Слайд 18
App Engine DataStore
Entity
from db.Model
Persisting
An
Entity
Слайд 19
GQL
GQL
Слайд 20
Обработка запроса к App Engine
Слайд 21
Тестирование и развертывание сервиса на App Engine
Локальное тестирование
dev_appserver.py helloworld/
Развертывание
appcfg.py update helloworld/
Приложение «в облаке»
http://<application-id>.appspot.com
Слайд 22
Некоторые API для AppEngine
Слайд 23
Обеспечение безопасности: Sandbox
Слайд 24
Полезные ресурсы
Документация и SDK:
http://code.google.com/appengine/
Список рассылки:
http://groups.google.com/group/google-appengine/