Немного про PSGI
Спецификация PSGI стала очень важным(переломным) моментом в мире разработки Perl веб-приложений. По сути, произошло отделение протокола взаимодействия с веб-сервером от API фреймворка, что позволило запускать PSGI приложения в любом окружении(возможно стоит про это написать отдельный пост :) ). Все современные фреймворки поддерживают PSGI. Как выглядит PSGI приложение?
sub app { my $env = shift; return [ '200', [ 'Content-Type' => 'text/plain' ], [ "Hello World" ], # or IO::Handle-like object ]; }
Если хотите попробовать, то установите себе Plack c cpan и запустите:
plackup -e 'sub {my $env=shift; return [200, [Content-Type => "text/plain"], ["Welcome home, $env->{QUERY_STRING}"]] }'Затем откройте в браузере http://localhost:5000/?Dude
Приложения на базе Mojolicious и Dancer умеют работают в режиме PSGI.
Теперь ближе к сабжу - разворачиваем наше приложение
Dotcloud - это платформа для развертывания ваших приложений. C Dotcloud Вы можете забыть про настройку веб-сервера. Просто выполняем "dotcloud deploy myapp" и приложение готово к использованию :). Для примера, возьмем приложение c поста - "Пример приложения на Mojolicious ( не Lite )". ( Предварительно необходимо завести себе аккаунт на dotcloud.com и установить клиент - sudo easy_install dotcloud. )Вытягиваем себе приложение с github:
git clone git://github.com/koorchik/FastNotes-Proto.git ~/FastNotes-Proto
Создаем наше приложение mynotes(можете выбрать другое имя) на dotcloud:
dotcloud create mynotes
Добавляем сервис "www" (можете выбрать другое имя):
dotcloud deploy --type perl mynotes.www
Разворачиваем и запускаем наше приложение
dotcloud push mynotes.www ~/FastNotes-Proto
Готово, теперь ваше приложение развернуто и доступно для использования по адресу http://www.mynotes.dotcloud.com/
Требования к приложению
- Это должно быть PSGI-приложение.
- Исполняемый файл PSGI-приложения должен лежать в самом корне и иметь имя app.psgi. Для FastNotes-Proto я просто создал симлинк app.psgi -> script/fastnotes.pl
- Должен быть Makefile.PL для определения завимостей приложения.
Использование базы данных(допустим mysql)
Просто добавляем новый сервис:dotcloud deploy -t mysql mynotes.dbИ смотрим параметры подключения:
dotcloud info mynotes.db
Использование собственного доменного имени
Если у Вас есть собственное доменное имя, то можете использовать егоНужно к сервису добавить алиас
dotcloud alias add mynotes.www www.mynotes.com
В ответ получите что-то типа:
Ok. Now please add the following DNS record: www.mynotes.com. IN CNAME gateway.dotcloud.com.Просто добавляете предложенную DNS запись.
Что еще поддерживает Dotcloud?
Для просмотра поддерживаемых типов сервисов выполните:dotcloud deploy -h You can chose among the following services: java host any Java servlet (also Clojure, Play!, and much more) mongodb scalable, high-performance, document-oriented database mysql the world's most popular open source database nodejs run JavaScript processes (including web apps) perl host any Perl/PSGI web app: Plack, Mojolicious, Dancer... php host any PHP web app: Drupal, WordPress... php-worker run background PHP processes postgresql the world's most advanced open source database python host any Python/WSGI web app: Django, Pylons, Web2py... python-worker run background Python processes rabbitmq AMQP message queue server redis advanced key-value store ruby host any Ruby/Rack web app: Rails, Sinatra... ruby-worker run background Ruby processes smtp authenticated SMTP relay to send e-mails reliably static host static HTTP content
Если что-то пошло не так
Можно просмотреть логи:dotcloud logs mynotes.wwwИли зайти в облако по ssh:
dotcloud ssh mynotes.www
PS: Cам я узнал про dotcloud с твиттера Себастьяна Риделя(автора Mojolicious) так же у него есть пост на эту тему.
4 коммент.:
круто, спасибо.
давно хотелось там что-нибудь развернуть, даже инвайт получил.
>> давно хотелось там что-нибудь развернуть, даже инвайт получил.
а как инвайт получить?
я отправил запрос, но вот сутки не приходит ответа.
Мне инвайт тоже не сразу пришел. В течении недели возможно придет.
что такое PSGI понятно. А вот где хоститься с ним можно не понятно.
Отправить комментарий
Не забудьте добавить себя в постоянные читатели и включить уведомления о новых комментариях, либо воспользуйтесь RSS каналом ;)