• Home
  • Учебник по ExtJS
  • О сайте
  •  


    Великий день для Amazon EC2: Релиз, SLA, Windows и еще 4 новые опции

    Октябрь 24th, 2008

    Мы с моими коллегами почти неделю находились в предвкушении появления этой новости в Twitter. После того, как вы с ней ознакомитесь, я уверен, вы согласитесь, оно того стоило.

    Запах триумфа до сих пор витает в коридорах Amazon. На протяжении многих лет компания разрабатывала и воплощала в жизнь целую инфраструктуру веб-сервисов. Отрадно видеть, что их сервисы нашли признание у большого количества разработчиков: от мала до велика.

    Самые существенные на сегодня изменения:

    • Закончилось бета-тестирование Amazon EC2. Теперь это готовый для использования продукт.

    • Для EC2 разработано соглашение об уровне сервиса SLA (Service Level Agreement)

    • Теперь EC2 поддерживает в бета-варианте операционную систему Microsoft Windows.

    • Система управления базами данных Microsoft SQL Server теперь доступна в бета-версии на базе платформы EC2.

    • Планируется выпуск интерактивной консоли управления всем спектром сервисов AWS

    • Планируется разработка и выпуск нового механизма распределения нагрузки, автоматического масштабирования и мониторинга сервисов.

    Давайте остановимся на каждом из этих пунктов более подробно.

    Релиз – сегодня можно говорить о том, что после двухгодичного бета-тестирования Amazon EC2 готов к выходу в свет. За тестовый период команда Amazon обработала огромное количество пожеланий пользователей и добавила следующие функциональные возможности: зоны доступности (Availability Zones), подключаемое блочное хранилище (Elastic Block Storage), эластичные IP адреса (Elastic IP Addresses), поддержку множества типов виртуальных машин и операционных систем OpenSolaris и Windows, а так же (начиная с сегодняшнего дня) соглашение об уровне сервиса. Обычные пользователи EC2 могут запускать до 20 виртуальных машин одновременно. Как всегда можно оформить заявку на использование дополнительно сотен и даже тысяч серверов. Read the rest of this entry »




    Планы по развитию App Engine

    Октябрь 24th, 2008

    Разработчики платформы Google App Engine открыли карты и по многочисленным просьбам опубликовали список планируемых в течении следующих двух кварталов новых возможностей:

    • Сервис для хостинга больших файлов
    • Утилита, позволяющая выполнять импорт и экспорт данных хранилища, способная работать с огромными базами данных
    • Биллинг: наконец можно будет воспользоваться дополнительными платными ресурсами
    • Поддержка в платформе еще одного нового языка программирования
    • Сайт для мониторинга работоспособности приложений

    Компания Google исторически всячески избегала публикации каких-либо конкретных дат и сроков выхода новых продуктов, так как в отрасли разработки программного обеспечения традиционно сложно точно определить дату окончания проекта. Поэтому в этом списке не приведены сроки запуска тех или иных дополнительных возможностей, и они будут уточняться ближе к дате выхода. На сайте документации открыта новая страница, которая планируется периодически обновляться на основании свежих данных.

    Напомним, какие возможности были добавлены в проект после его публичного выхода:

    • 16.10.08 – Включена поддержка протокола HTTPS для доменов *.appspot.com
    • 14.10.08 – Журнал использования и фильтры регулярных выражений в Административной консоли
    • 18.10.08 – Детализация использования ресурсов CPU, поддержка модулей zipimport, zipserve
    • 22.08.08 – Пакетная запись и удаление множества объектов
    • 24.07.08 – Добавлена возможность экспорта логов, увеличено количество доступных приложений для одного разработчика
    • 28.05.08 – Стали доступны интерфейсы API Memcache и API работы с изображениями, открыта регистрация всех желающих
    • 15.05.08 – Анонсирован App Engine Launcher для Mac
    • 08.04.08 – Выход ограниченной тестовой версии App Engine

    Все дополнительные вопросы можно задать в группе Google проекта.




    Присоединяйтесь к чату с разработчиками App Engine

    Октябрь 21st, 2008

    Вы, наверное, давно хотели задать некоторые вопросы команде разработки Google App Engine?

    Начиная с этой недели, разработчики этой платформы будут периодически раз в две недели посвящать 1 час своего времени ответу на вопросы пользователей на IRC канале #appengine сервера irc.freenode.net. Если вы до сих пор не установили IRC клиента, то предлагаем выбрать подходящий и присоединиться к чату. Приветствуются любые вопросы, относящиеся к App Engine, и мы надеемся, что на многие из них будет получен ответ в течении выделенного часа. Планируются, что записи будут опубликованы в группе проекта, а перевод наиболее интересных из них ожидайте на нашем сайте.

    Первая конференция-чат будет проходить в эту среду в 20-00 по московскому времени. В дальнейшем планируются конференции каждую первую и третью среду месяца, чередуя их в американское утреннее и вечернее время (по московскому соответственно начало каждой из них будет в 20-00 и 6-00). В будущем время таких встреч может быть изменено.

    Список запланированных конференций (время московское):

    • Среда, 22 октября, с 20-00 до 21-00
    • Среда, 5 ноября, с 6-00 до 7-00
    • Среда, 19 ноября, с 20-00 до 21-00
    • Среда, 3 декабря, с 6-00 до 7-00
    • Среда, 17 декабря, с 20-00 до 21-00

    Присоединяйтесь! И помните, что вопросы на русском языке можно задавать в русскоязычной группе Google проекта, где мы постараемся ответить на них.




    Объектно-ориентированный дизайн ExtJS

    Октябрь 17th, 2008

    Одна из задач, которую ставили себе разработчики библиотеки ExtJS при ее проектировании, была возможность сосуществования с другими JavaScript-библиотеками и фреймворками. Для этого были добавлены удобные методы, помогающие разработчику создавать, наследовать и сопровождать код различных классов. Несмотря на то, что все они были специально созданы для работы с компонентами ExtJS, их можно использовать с любыми объектами JavaScript, в том числе в проектах, не задействующих визуальные компоненты.

    Ext.namespace

    Синтаксис: Ext.namespace( String namespace1, String namespace2, String etc ) : void

    В языке JavaScript пространство имен само является объектом, содержащим список определений других объектов. Правильное использование пространств имен гарантирует, что ваш код не будет конфликтовать с другими библиотеками. Однако, чем больше становится кода в библиотеке, тем глубже иерархия имен и такие классы как Ext.ux.graphing.GraphPanel перестают быть редкостью. В ExtJS существует метод Ext.namespace, который позволяет определить все пространства имен за один вызов, уменьшая не только затраты на поддержку кода, но и сокращая его размер.

    Традиционный код JavaScript, создающий иерархию пространства имен, выглядит следующим образом:

    var Ext = Ext || {}; Ext.ux = Ext.ux || {}; Ext.ux.graphing = Ext.ux.graphing || {}; Ext.ux.soundFx = Ext.ux.soundFx || {}; Ext.ux.maps = Ext.ux.maps || {};

    Того же результата можно достичь вызовом всего одного метода:

    Ext.namespace("Ext.ux.graphing", "Ext.ux.soundFx", "Ext.ux.maps");

    Ext.override

    Синтаксис: Ext.override( Object origclass, Object overrides ) : void

    JavaScript очень гибкий язык, и переопределение метода в нем выполняется простым переназначением его объекта другой функции: Read the rest of this entry »




    Поддержка HTTPS в доменах appspot.com

    Октябрь 17th, 2008

    Google анонсировал одну из самых нужных опций современных масштабируемых приложений – поддержку протокола HTTPS. Начиная с сегодняшнего дня, App Engine может обрабатывать входящие подключения по HTTPS с использованием настоящего сертификата для всех поддоменов из зоны appspot.com. Для его включения необходимо:

    • в файле app.yaml прописать новый атрибут secure в секции обработчика URL:
      - url: /accounts/.*
        script: admin.py
        login: admin
        secure: always

      Он может принимать значение always, optional или never (использовать всегда, по требованию или никогда – последнее по умолчанию) и определяет поведение при обработке HTTP и HTTPS запросов. Дополнительная информация скоро появится в документации.

    • HTTPS-запросы имеют отдельную квоту на пропускную способность, которая также учитывается в составе общей пропускной способности всего приложения. Отследить использование этой квоты можно в Административной консоли.

    Многие могут удивиться, что была добавлена поддержка безопасных соединений только для доменов appspot.com без возможности работы с доменами Служб Google. Однако на то есть простое объяснение – таковы фундаментальные ограничения самого протокола SSL, который не поддерживает работу виртуальных серверов. Команда разработки платформы App Engine в данный момент изучает возможные пути преодоления этого ограничения, в том числе вариант использования технологии SNI, которая поддерживается всеми современными браузерами.




    Ускоряем работу локального сервера в App Engine

    Октябрь 15th, 2008

    Скорее всего многие разработчики, отлаживающие большие проекты под локальным сервером разработки в App Engine, столкнулись с проблемой его однопоточности. Если на странице содержится куча внешних css, js файлов и картинок, ожидание ее загрузки может вывести из себя даже стойкого человека.

    Мы рассмотрим способ выноса статического содержимого приложения Django для обслуживания его сторонним сервером на базе пакета SimpleHTTPServer.

    Сначала создаем скрипт, который будет использован для старта обоих серверов:

    python simplehttpserver.py & dev_appserver.py -d --datastore_path="dev_appserver.datastore" .

    Создаем файл simplehttpserver.py со следующим содержимым:

    try:     import SimpleHTTPServer     import SocketServer     port = 9000     Handler = SimpleHTTPServer.SimpleHTTPRequestHandler     httpd = SocketServer.TCPServer(("", PORT), Handler)     httpd.serve_forever() except:     pass

    Исключение будет срабатывать в том случае, если порт уже занят (сервер запускается повторно). Далее напишем специальную функцию, которая будет принимать в своих параметрах объекты фреймворка Django HttpResponse и HttpRequest, и при необходимости перенаправлять браузер на сервер со статическим содержимым (если сервер запущен локально). Для повторного использования ее лучше вынести в отдельный файл (например, utils.py).

    def goFast(request,response):     developing = onDevelServer(request)     if developing:         for folder in ['images','css','js']:             dir = 'http://localhost:9000/%s/' % folder             response.content = response.content.replace('/%s/' % folder,dir)     return response def onDevelServer(request):     return request.META['SERVER_NAME'] == 'localhost'

    Этот код выполняет замену в ответе адрес ‘/images/homepage_logo.png’ на ‘http://localhost:9000/images/homepage_logo.png’. Ну и в завершении, модифицируем функцию render_to_response:

    from django.shortcuts import render_to_response as r2r from services.utils import goFast def render_to_response(template, ls):     return goFast(ls['request'], r2r(template,ls))

    Это все, теперь можно насладиться скоростью работы!




    Новая Административная консоль

    Октябрь 15th, 2008

    Разработчики платформы Google App Engine снова порадовали нас новыми изменениями в Административной консоли:

    Admin Logs (журнал работы администраторов): Это нововведение позволяет отобразить все действия, выполненные администраторами приложения. К примеру, щелкните по ссылке Admin Logs в разделе Administration левой навигационной панели. Здесь вы сможете просмотреть выполненные действия по настройке приложения, управлению его версиями и внесенными изменениями в хранилище данных. Просто выберите требуемое действие из выпадающего списка и нажмите кнопку Display.

    Regex Filtering in Logs (фильтрация по регулярным выражениям): Хотите найти все запросы, при обработке которых возникла определенная ошибка? Или нужна информация о запросах с заданными параметрами? Воспользуйтесь новым фильтром с поддержкой регулярных выражений, который позволяет отобрать нужные записи в журнале событий. Обратите внимание, что за один проход выполняется поиск только в 10000 записях, однако при нажатии на кнопку Next будет просмотрена следующая порция данных. Для удобства в результатах будет отображаться время создания последнего события, в котором производился поиск (а не которое удовлетворяет заданному фильтру!).

    URLы страниц просмотра событий теперь можно сохранять в закладках: Для этого в URL были добавлены дополнительные параметры смещения, которые позволяют точно вернуться в нужное место. Ну и напоследок стоит отметить, что кнопка Назад браузера также будет корректно функционировать при перемещении по страницам логов.




    Управление GoGrid с помощью Windows PowerShell

    Октябрь 14th, 2008

    Один из пользователей сервиса GoGrid Митч Денни создал расширение для Windows PowerShell для работы с GoGrid API. Для непосвященных: Windows PowerShell – это инструмент для командной строки и скриптовый язык, специально созданный для системных администраторов с целью помочь им автоматизировать рутиные задачи (подробнее можно прочитать на странице PowerShell). PowerShell работает на операционных системах Windows XP, Vista, Server 2003 и Server 2008.

    Для того чтобы познакомиться с системой, нужно:

    1. Создать аккаунт GoGrid (причем зарегистрировавшись сейчас, вы получите на счет $50). Затем необходимо перейти на портал GoGrid и сгенерировать специальный ключ для доступа к API.
    2. Загрузить с сайта Microsoft комплект Windows PowerShell. Убедитесь, что вы выбрали правильную версию для вашей операционной системы и установите это программное обеспечение.
    3. Загрузить PowerShell Snap-In for GoGrid со страницы проекта на сайте CodePlex (текущая версия «GoGrid 1.0 (BETA2)». На момент написания этой статьи некоторые Wiki-страницы документации проекта не содержали информации, однако мы надеемся, что в ближайшее время это будет исправлено. Ссылка для загрузки находится в верхнем правом углу страницы проекта.

    Мы настоятельно рекомендуем перед началом работы просмотреть скринкаст, записанный Митчем. В нем очень доходчиво объясняется, как создать балансировщик загрузки и два сервера, а также с каких команд можно начать управление системой.




    Семинар от rPath

    Октябрь 14th, 2008

    23 октября компания rPath в 21-00 по московскому времени проводит бесплатный семинар на английском языке The Pragmatist’s Guide to Cloud Computing.

    Семинар будет вести основатель и директор по стратегии компании rPath Билли Маршалл. К нему присоединятся Фрэнк Джиллетт из Forrester Research, Джефф Шнейдер из MomentumSI и Джефф Бар, главный евангелист Amazon WS. Разговор пойдет о рынке облачных вычислений, о том как это направление воспринимают большинство компаний и, как можно получить конкурентные преимущества, воспользовавшись архитектурными возможностями платформы.

    Если вы хотите принять участие в этом семинаре, не забудьте заранее зарегистрироваться.




    Amazon снижает цены на S3

    Октябрь 9th, 2008

    В прошлом квартале использование сервиса Amazon S3 достигло своего пика и составило более 29 миллиардов хранимых объектов, что больше на 7 миллиардов, чем квартал назад.

    Учитывая уменьшение постоянных затрат компания Amazon пошла на приятный для многих разработчиков шаг: с 1 ноября 2008 снижаются цены на хранение данных в Amazon S3. Новые расценки как и раньше учитывают объемы услуг и предоставляют оптовые скидки.

    Ниже приведена таблица стоимости в зависимости от используемого датацентра:

    Объем США Европа Описание
    0-50 TB $0.150 $0.180 Использование первых 50 TB за месяц
    50-100 TB $0.140 $0.170 Использование следующих 50 TB за месяц
    100-500 TB $0.130 $0.160 Использование следующих 400 TB за месяц
    500+ TB $0.120 $0.150 Все что свыше 500 TB

    Планируется, что калькулятор стоимости AWS Calculator будет также обновлен сразу же после вступления новой ценовой модели в силу.