English post is here.
К своему удивлению недавно узнал что на облачном хостинге Heroku теперь можно пускать приложения на (почти) любой веб-платформе. Делается это с помощью технологии называемой buldpacks. По идее это сделано чтобы можно было "потюнить" платформу/окружение - использовать новую версию Node.js или Ruby или что нибудь в этом роде. Но народ быстро смекнул в чем дело и нашлепал билдпаков на любой вкус и цвет - для C/Erlang/PHP/Go/Scala/etc - ну и конечно для Perl, причем один из них сделал самвеликий и ужасный :) Miyagawa - heroku-buildpack-perl. Им я и воспользовался чтобы перетащить свой Plusfeed.pl на Heroku со Stackato (где уже кончился триал). Теперь он живет на http://perlfeed-pl.herokuapp.com - заодно я пофиксил один неприятный баг из-за которого у сообщения менялся id при добавлении комментария или +1 - соответсвенно оно всплывало в ленте. :(
Вкратце я опишу как это делается.
1. Пишем стандартный Makefile.PL для своего приложения (можно использовать формат Build.PL) - вот мой -
use strict;
use warnings;
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'plusfeed.pl',
VERSION => '0.05',
AUTHOR => 'Denis Zhdanov',
EXE_FILES => ['app.psgi'],
PREREQ_PM => {
'Google::Plus' => '0.004',
'XML::RSS' => '1.49',
'XML::Atom::SimpleFeed' => '0.86',
'Plack::App::Path::Router' => '0',
'Plack::App::File' => '0',
'Plack::Builder' => '0',
'Path::Router' => '0.11',
'CHI' => '0.5',
'Starman' => '0.3',
},
test => {TESTS => 't/*.t'}
);
2. Добавляем свое приложение на сайт с помощью кастомного билдпака -
git init
git add .
git commit -m "Initial version"
heroku create --stack cedar --buildpack \ http://github.com/miyagawa/heroku-buildpack-perl.git
git push heroku master
К своему удивлению недавно узнал что на облачном хостинге Heroku теперь можно пускать приложения на (почти) любой веб-платформе. Делается это с помощью технологии называемой buldpacks. По идее это сделано чтобы можно было "потюнить" платформу/окружение - использовать новую версию Node.js или Ruby или что нибудь в этом роде. Но народ быстро смекнул в чем дело и нашлепал билдпаков на любой вкус и цвет - для C/Erlang/PHP/Go/Scala/etc - ну и конечно для Perl, причем один из них сделал сам
Вкратце я опишу как это делается.
1. Пишем стандартный Makefile.PL для своего приложения (можно использовать формат Build.PL) - вот мой -
use strict;
use warnings;
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'plusfeed.pl',
VERSION => '0.05',
AUTHOR => 'Denis Zhdanov
EXE_FILES => ['app.psgi'],
PREREQ_PM => {
'Google::Plus' => '0.004',
'XML::RSS' => '1.49',
'XML::Atom::SimpleFeed' => '0.86',
'Plack::App::Path::Router' => '0',
'Plack::App::File' => '0',
'Plack::Builder' => '0',
'Path::Router' => '0.11',
'CHI' => '0.5',
'Starman' => '0.3',
},
test => {TESTS => 't/*.t'}
);
2. Добавляем свое приложение на сайт с помощью кастомного билдпака -
git init
git add .
git commit -m "Initial version"
heroku create
git push heroku master
Вся магия содержится в строке с buildpack. После этого видим что то хохожее -
-----> Heroku receiving push
-----> Fetching custom buildpack... done
-----> Perl/PSGI app detected
-----> Installing dependencies
-----> Installing Starman
Starman is up to date. (0.3000)
-----> Discovering process types
Procfile declares types -> (none)
Default types for Perl/PSGI -> web
-----> Compiled slug size is 6.8MB
-----> Launching... done, v7
http://plusfeed-pl.herokuapp.com deployed to Heroku
(было много строк со сборкой cpanm и всех зависимостей, но только в первый раз, при обновлении этого не требуется).
Все пользуемся приложением и радуемся. :)
Комментариев нет:
Отправить комментарий