no act on actmod_perlvspsgi apache/mod_perl slow memoryfootprint deploymentrelatedcode psgi...

56
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . No Act on ACT Stefan Hornburg (Racke) 2016-09-21

Upload: others

Post on 08-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

No Act on ACT

Stefan Hornburg (Racke)

2016-09-21

Page 2: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

YAPC::EU 2008 in Copenhagen

Page 3: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

PerlDancer for Perlers (FOSDEM 2011)

Sawyer’s presentation

Page 4: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Perl Dancer Conference 2014

http://act.perl.dance/eic2014/

Page 5: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Using ACT in 2013/2014

▶ Managed software▶ Listed in other conferences (Marketing)▶ User database

Page 6: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Modern Perl for web applications

▶ PSGI / Plack▶ Web application framework (Dancer2)▶ Web framework (Bootstrap, Jquery)▶ DBIx::Class▶ Moo and friends▶ Testing

Page 7: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

mod_perl vs PSGI

▶ Apache / mod_perl▶ slow▶ memory footprint▶ deployment related code

▶ PSGI▶ runs on any webserver supporting PSGI▶ fast (Nginx)▶ simple configuration (Nginx)▶ no deployment related code

Page 8: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Apache version

Apache/1.3.42 (Unix) mod_perl/1.31

more than 6 years old

Page 9: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Dancer2 Advantages

▶ Clean OO interface▶ Routes▶ Hooks▶ Engines▶ Multiple Applications

▶ Web application▶ REST API▶ Admin interface

Page 10: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Manual SQL vs DBIx::Class

▶ Manual SQL▶ error prone▶ compatibility problems▶ less secure

▶ DBIx::Class▶ Business logic▶ works on dozens of RDBMS▶ usually faster▶ more secure

Page 11: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

More Reasons for ”No act on ACT”

▶ Single Point of Failure▶ Development▶ Responsiveness▶ No https://

Page 12: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Single Point of Failure

▶ Baltimore Perl Workshop▶ Eventbrite

Page 13: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Development

▶ Last commit on ACT: July 2015https://github.com/book/Act

▶ Last commit on ACT in the box: September 2015

Page 14: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Hackathon in Lyon

Page 15: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Responsiveness

Figure: Picture by Guillaume Brocker, CC BY-SA 3.0

Page 16: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Perl Dancer Conference Website

https://github.com/interchange/Perl-Dancer-Conference

Page 17: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Web Application Features

▶ Maps with Leaflet▶ Cropping Photos▶ Administration▶ SEO / Modern Design▶ Dancer2::Debugger

Page 18: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Maps with Leaflet

▶ Venue on Frontpage▶ Leaflet library▶ Leaflet code▶ User map

Page 19: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Venue on Frontpage

Page 20: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Leaflet Library

Leaflet Javascript library

Page 21: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Leaflet Code

var map = L.map('map').setView([48.20078,16.36826], 13);L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}', {attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',maxZoom: 18,id: 'petermottram.mp1dpak2',accessToken: 'pk.eyJ1IjoicGV0ZXJtb3R0cmFtIiwiYSI6IjE1NWI5NjRjN2IxNjNkYTM1MzI3YzY5M2E0YjZjMDc0In0.T0bpnZGXCQBSW_SOv_nWHA'

}).addTo(map);var marker2 = L.marker([48.18246, 16.38075]).addTo(map);marker2.bindPopup("<b>Hotel Schani Wien</b><br>Karl-Popper-Straße 22<br>Conference Venue<br>21/22 Oct");$("#marker2").click(function(){

marker2.openPopup();return false;

});

Page 22: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

User Map

Figure: User Map

Page 23: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Cropping photos

You can drag and drop or uplad your photo and crop it in ourwebsite.

Page 24: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Current photo

Figure: /profile/photo

Page 25: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Ballerina

Page 26: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Cropping I

Page 27: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Cropping II

Page 28: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Final Result

Page 29: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Jcrop Library

Jcrop - jQuery Image Cropping Plugin

Page 30: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

SEO / Modern Web Design

▶ Secure site with HTTPS▶ Speaking links

Page 31: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Secure site with HTTPS

▶ More secure and gives users more confidence▶ Small ranking boost with Google▶ Free certificates with Let’s Encrypt

Page 32: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Speaking Links I

Figure: No act on ACT

Page 33: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Speaking Links II

ACT http://act.yapc.eu/ye2016/talk/6780PDC https:

//www.perl.dance/talks/40-no-act-on-act

Page 34: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Administration

▶ Users▶ Talks▶ Tickets▶ Events▶ News

Page 35: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Navigation

Page 36: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Dancer2::Debugger

Dancer2::Debugger Presentation

Page 37: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

DBIx::Class Techniques

▶ Set Based DBIx::Classhttp://www.perladvent.org/2012/2012-12-21.html

▶ Truth of ResultSet▶ Chaining▶ Relationship traversal▶ Predefined searches

▶ Hashref Inflation

Page 38: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Truth of ResultSet

This doesn’t execute SQL:

my $talks = $schema->resultset('Talk')->search(...);

This does:

my $first_talk = $schema->resultset('Talk')->search(...)->first;

Page 39: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Chaining

my $talks = $schema->resultset('Talk')->search({-bool => 'accepted'})->search({conferences_id => 1})->search({room => { '!=' => '' }),->search({start_time => {

'>=' => '2015-10-22 00:00:00''<=' => '2015-10-23 00:00:00'}}),

);

Page 40: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Relationship Traversal

# countries dropdown$tokens->{countries} = [

$users->search_related('addresses',{

type => 'primary',},

)->search_related('country', undef,{

columns => [ 'country_iso_code', 'name' ],distinct => 1,order_by => 'country.name',

})->hri->all

];

Page 41: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Hashref Inflator

# countries dropdown$tokens->{countries} = [

rset('Country')->search( undef,{ columns => [ 'country_iso_code', 'name' ],

order_by => 'name' } )->hri->all

];unshift @{ $tokens->{countries} },

{ country_iso_code => undef, name => "Select Country" };

Page 42: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Predefined Searches

User class:

sub last_conference_attended {my $self = shift;my $conference = $self->conferences->search({}, {

order_by => { -desc => 'start_date' },})->first;

}

Web application:

my $conference = $user->last_conference_attended;

;

Page 43: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Dancer2

▶ Code structure▶ Hooks▶ Plugins▶ Plack::Middleware

Page 44: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Code Structure

▶ Main module▶ Multiple modules for routes

Page 45: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Main Module

use Dancer2;

use PerlDance::Routes::Account;use PerlDance::Routes::Admin;use PerlDance::Routes::Data;use PerlDance::Routes::PayPal;use PerlDance::Routes::Profile;use PerlDance::Routes::Survey;use PerlDance::Routes::Talk;use PerlDance::Routes::User;use PerlDance::Routes::Wiki;

Page 46: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Route module I

use Dancer2 appname => 'PerlDance';

use Dancer2::Plugin::Auth::Extensible;use Dancer2::Plugin::DataTransposeValidator;use Dancer2::Plugin::DBIC;use Dancer2::Plugin::Email;use Dancer2::Plugin::Deferred;use Dancer2::Plugin::Interchange6;use Dancer2::Plugin::TemplateFlute;

prefix '/profile';

Page 47: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Route module II

get '/talk/create' => sub {my $tokens = {

title => "New Talk",};

$tokens->{form} = form('create-update-talk');$tokens->{form}->reset;$tokens->{form}->fill( duration => 40 );

add_durations_token($tokens);

template 'profile/create_update_talk', $tokens;};

Page 48: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Hooks used

hook 'before_template_render' => sub {my $tokens = shift;

if ( my $user = logged_in_user ) {$tokens->{logged_in_user} = schema->current_user;

}

$tokens->{conference_name} = setting('conference_name');};

Page 49: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Plugins used

Dancer2::Plugin::Auth::Extensible User AuthenticationDancer2::Plugin::DataTransposeValidator Form validationDancer2::Plugin::DBIC DBIx::Class WrapperDancer2::Plugin::Deferred Flash messages after redirectDancer2::Plugin::Email Sending emailsDancer2::Plugin::Interchange6 Cart and other business functionsDancer2::Plugin::TemplateFlute Form handling

Page 50: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Plack Middleware

Joy of PSGI middleware

Page 51: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Cross-site request forgery (CSRF/XSRF)Plack::Middleware::XSRFBlock# bin/app.psgi

use Plack::Builder;use PerlDance;my $app = PerlDance->to_app;

builder {enable 'Session';enable 'XSRFBlock',cookie_name => 'PerlDance-XSRF-Token',meta_tag => 'xsrf-meta',cookie_options => { httponly => 1, };

enable 'XForwardedFor',trust => [qw( 127.0.0.1 10.0.0.0/8 172.16.0.0/20 192.168.0.0/16 )];

$app;}

Page 52: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Summary

▶ Modern Perl▶ Missing features▶ Perl Dancer Conference 2016▶ Call for developers▶ Ask questions

Page 53: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Missing features

▶ Multilingual GH #8▶ Drag and drop schedule tool▶ Multisite▶ Multiple speakers GH #104

Page 54: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Perl Dancer Conference 2016

Page 55: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Call for developers

https://github.com/interchange/Perl-Dancer-Conference

Page 56: No Act on ACTmod_perlvsPSGI Apache/mod_perl slow memoryfootprint deploymentrelatedcode PSGI runsonanywebserversupportingPSGI fast(Nginx) simpleconfiguration(Nginx

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Questions

Questions?