SlideShare uma empresa Scribd logo
1 de 83
Baixar para ler offline
a reviravolta do
desenvolvimento web
Wallace Reis

YAPC::BR - São Paulo/2012
eu
@wreis - wallace@reis.me
vitória.pm
yelster digital
123people.com - frontend lead-dev
123pages.fr
reporama.com
eu
@wreis - wallace@reis.me
vitória.pm
yelster digital
123people.com - frontend lead-dev
123pages.fr
reporama.com
eu
@wreis - wallace@reis.me
vitória.pm
yelster digital
123people.com - frontend lead-dev
123pages.fr
reporama.com
caótico!
...de escrever...
Catalyst

Tripletail

Noe

Maypole

Konstrukt

Schenker

Mason

Reaction

Tatsumaki

Mojo

Jifty

Amon

Sledge

Cyclone3

Apache2::WebApp

Spoon

WebGUI

Web::Simple

PageKit

OpenInteract

Apache2::REST

AxKit

Squatting

SweetPea

Egg

Dancer

Hydrant

Gantry

CGI::Application

Titanium

Continuity

Nanoa

CGI.pm

Solstice

Ark

Mojolicious

Angelos
...de executar...
CGI
FastCGI
mod_perl
standalone HTTP
CGI.pm
Jifty, CGI::Application, Spoon...
mod_perl
Mason, Sledge, PageKit...
com adaptadores
Maypole, Catalyst, Squatting...
HTTP::Engine
PSGI
Internet
PSGI
Perl Web Server Gateway Interface
Tatsuhiko Miyagawa
WSGI (Python) e Rack (Ruby)
PSGI
Perl Web Server Gateway Interface
Tatsuhiko Miyagawa
WSGI (Python) e Rack (Ruby)
PSGI
Perl Web Server Gateway Interface
Tatsuhiko Miyagawa
WSGI (Python) e Rack (Ruby)
my $app = sub {
my $env = shift;
return [
200,
[‘Content-Type’ => ‘text/plain’],
[‘Hello World’]
];
};
my $app = sub {
my $env = shift;
return [
200,
[‘Content-Type’ => ‘text/plain’],
[‘Hello World’]
];
};
my $app = sub {
my $env = shift;
return [
200,
[‘Content-Type’ => ‘text/plain’],
[‘Hello World’]
];
};
my $app = sub {
my $env = shift;
return [
200,
[‘Content-Type’ => ‘text/plain’],
[‘Hello World’]
];
};
my $app = sub {
my $env = shift;
return [
200,
[‘Content-Type’ => ‘text/plain’],
[‘Hello World’]
];
};
my $app = sub {
my $env = shift;
return [
200,
[‘Content-Type’ => ‘text/plain’],
[‘Hello World’]
];
};
my $app = sub {
my $env = shift;
return [
200,
[‘Content-Type’ => ‘text/plain’],
[‘Hello World’]
];
};
Streaming e/ou
non-blocking?
my $app = sub {
my $env = shift;
return sub {
my $respond = shift;
# ... delegar
$respond->(
[$status, $headers, $body]
);
};
};
my $app = sub {
my $env = shift;
return sub {
my $respond = shift;
my $w = $respond->([$status, $headers]);
$w->write($body);
...
$w->close;
};
};
PSGI

...
PSGI

SPDY?
Plack?
Plack?

PSGI toolkit
HTTP::Server::PSGI
Plack::Component
Plack::(Request|Response)
Plack::Middleware
220+ Middleware
my $app = sub {
my $env = shift;
return [ $status, $headers, $body ];
};
my $mw = sub { ... };
my $mw = sub {
my $env = shift;
# ...faz algo com (ou no) $env
my $res = $app->($env);
# faz algo com a (ou na) $res
return $res;
};
package My::Middleware;
use
use
use
use

strict;
warnings;
Plack::Request;
parent ‘Plack::Middleware’;

sub call {
my ( $self, $env ) = @_;
# ...faz algo com (ou no) $env
# my $req = Plack::Request->new($env);
my $res = $app->($env);
# faz algo com a (ou na, ou nova) $res
# my $res = $req->new_response;
return $res;
}
1;
Plack::Util::response_cb
$ plackup app.psgi
HTTP::Server::PSGI: Accepting connections
at http:/
/0:5000/
$ plackup -s $SERVER app.psgi
$ plackup -s FCGI app.psgi
$ plackup -s Starman app.psgi
use Plack::Builder;
my $app = MyApp->psgi_app; # ->to_psgi; ->to_app; >as_psgi; etc
builder {
enable ‘Static’, ...;
enable_if {
$_[0]->{'PATH_INFO'} =~ m{^/admin}
} 'Auth::Htpasswd', ...;
};

$app;
Plack::App
Plack::App::File
Plack::App::Directory
Plack::App::Proxy
Plack::App::FCGIDispatcher
Plack::App::URLMap
use Plack::Builder;
my $app = MyApp->psgi_app; # ->to_psgi; ->to_app; ->as_psgi; etc
builder {
enable ‘Static’, ...;
enable_if {
$_[0]->{'PATH_INFO'} =~ m{^/admin}
} 'Auth::Htpasswd', ...;
mount ‘/foo’ => $foo_app;
mount ‘http:/
/www.example.com/’ => builder {
enable ‘AccessLog’, ...;
$bar_app;
};
};

mount ‘/’ => $app;
Plack::App::CGIBin
Plack::App::WrapCGI
Plack::App::FakeApache
Plack::Test
Test::WWW::Mechanize::PSGI
25+ Frameworks e
Toolkits
35+ Webservers e
Handlers
25+ Frameworks e
Toolkits
35+ Webservers e
Handlers
CGI

Plack::Handler::CGI
mod_perl

Plack::Handler::Apache(1|2)
FastCGI
Plack::Handler::FCGI
::FCGI::EV
::FCGI::Async
::AnyEvent::FCGI
fastpass
FastCGI
Plack::Handler::FCGI
::FCGI::EV
::FCGI::Async
::AnyEvent::FCGI
fastpass
FastCGI
Plack::Handler::FCGI
::FCGI::EV
::FCGI::Async
::AnyEvent::FCGI
fastpass
Servidores HTTP
autônomos
HTTP::Server::PSGI
HTTP::Server::Simple::PSGI
Starman
Starlet
Servidores HTTP
autônomos
HTTP::Server::PSGI
HTTP::Server::Simple::PSGI
Starman
Starlet
Servidores HTTP
autônomos
HTTP::Server::PSGI
HTTP::Server::Simple::PSGI
Starman
Starlet
Servidores HTTP
autônomos
HTTP::Server::PSGI
HTTP::Server::Simple::PSGI
Starman
Starlet
Servidores HTTP
autônomos (async)
Feersum
Twiggy
Perlbal::Plugin::PSGI
mod_psgi
nginx_mod_psgi
Mongrel2
Obrigado! Perguntas?
Wallace Reis @wreis
wallace@reis.me

YAPC::BR::2012

https:/
/metacpan.org/module/PSGI
http:/
/plackperl.org/
http:/
/blog.plackperl.org/
IRC#plack

Mais conteúdo relacionado

Mais procurados

Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with PerlDave Cross
 
Operation Oriented Web Applications / Yokohama pm7
Operation Oriented Web Applications / Yokohama pm7Operation Oriented Web Applications / Yokohama pm7
Operation Oriented Web Applications / Yokohama pm7Masahiro Nagano
 
Web Apps in Perl - HTTP 101
Web Apps in Perl - HTTP 101Web Apps in Perl - HTTP 101
Web Apps in Perl - HTTP 101hendrikvb
 
The worst Ruby codes I’ve seen in my life - RubyKaigi 2015
The worst Ruby codes I’ve seen in my life - RubyKaigi 2015The worst Ruby codes I’ve seen in my life - RubyKaigi 2015
The worst Ruby codes I’ve seen in my life - RubyKaigi 2015Fernando Hamasaki de Amorim
 
Inside Bokete: Web Application with Mojolicious and others
Inside Bokete:  Web Application with Mojolicious and othersInside Bokete:  Web Application with Mojolicious and others
Inside Bokete: Web Application with Mojolicious and othersYusuke Wada
 
Selenium sandwich-3: Being where you aren't.
Selenium sandwich-3: Being where you aren't.Selenium sandwich-3: Being where you aren't.
Selenium sandwich-3: Being where you aren't.Workhorse Computing
 
Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with PerlDave Cross
 
Plack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and serversPlack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and serversTatsuhiko Miyagawa
 
Webrtc mojo
Webrtc mojoWebrtc mojo
Webrtc mojobpmedley
 
Web Development in Perl
Web Development in PerlWeb Development in Perl
Web Development in PerlNaveen Gupta
 
Perl in the Internet of Things
Perl in the Internet of ThingsPerl in the Internet of Things
Perl in the Internet of ThingsDave Cross
 
Modern Perl Web Development with Dancer
Modern Perl Web Development with DancerModern Perl Web Development with Dancer
Modern Perl Web Development with DancerDave Cross
 
Building a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQueryBuilding a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQueryTatsuhiko Miyagawa
 
Asynchronous programming patterns in Perl
Asynchronous programming patterns in PerlAsynchronous programming patterns in Perl
Asynchronous programming patterns in Perldeepfountainconsulting
 

Mais procurados (20)

Intro to PSGI and Plack
Intro to PSGI and PlackIntro to PSGI and Plack
Intro to PSGI and Plack
 
Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with Perl
 
Operation Oriented Web Applications / Yokohama pm7
Operation Oriented Web Applications / Yokohama pm7Operation Oriented Web Applications / Yokohama pm7
Operation Oriented Web Applications / Yokohama pm7
 
Mojo as a_client
Mojo as a_clientMojo as a_client
Mojo as a_client
 
Web Apps in Perl - HTTP 101
Web Apps in Perl - HTTP 101Web Apps in Perl - HTTP 101
Web Apps in Perl - HTTP 101
 
Plack at YAPC::NA 2010
Plack at YAPC::NA 2010Plack at YAPC::NA 2010
Plack at YAPC::NA 2010
 
The worst Ruby codes I’ve seen in my life - RubyKaigi 2015
The worst Ruby codes I’ve seen in my life - RubyKaigi 2015The worst Ruby codes I’ve seen in my life - RubyKaigi 2015
The worst Ruby codes I’ve seen in my life - RubyKaigi 2015
 
Inside Bokete: Web Application with Mojolicious and others
Inside Bokete:  Web Application with Mojolicious and othersInside Bokete:  Web Application with Mojolicious and others
Inside Bokete: Web Application with Mojolicious and others
 
Selenium sandwich-3: Being where you aren't.
Selenium sandwich-3: Being where you aren't.Selenium sandwich-3: Being where you aren't.
Selenium sandwich-3: Being where you aren't.
 
Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with Perl
 
Plack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and serversPlack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and servers
 
Webrtc mojo
Webrtc mojoWebrtc mojo
Webrtc mojo
 
Web Development in Perl
Web Development in PerlWeb Development in Perl
Web Development in Perl
 
Perl in the Internet of Things
Perl in the Internet of ThingsPerl in the Internet of Things
Perl in the Internet of Things
 
About Data::ObjectDriver
About Data::ObjectDriverAbout Data::ObjectDriver
About Data::ObjectDriver
 
PSGI/Plack OSDC.TW
PSGI/Plack OSDC.TWPSGI/Plack OSDC.TW
PSGI/Plack OSDC.TW
 
Lies, Damn Lies, and Benchmarks
Lies, Damn Lies, and BenchmarksLies, Damn Lies, and Benchmarks
Lies, Damn Lies, and Benchmarks
 
Modern Perl Web Development with Dancer
Modern Perl Web Development with DancerModern Perl Web Development with Dancer
Modern Perl Web Development with Dancer
 
Building a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQueryBuilding a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQuery
 
Asynchronous programming patterns in Perl
Asynchronous programming patterns in PerlAsynchronous programming patterns in Perl
Asynchronous programming patterns in Perl
 

Destaque

6 tips on perfect security camera system
6 tips on perfect security camera system6 tips on perfect security camera system
6 tips on perfect security camera systemBill Medrano
 
Presentation劉思竹v4.2 10122608
Presentation劉思竹v4.2 10122608Presentation劉思竹v4.2 10122608
Presentation劉思竹v4.2 10122608思竹 劉
 
Open Source Software and Free Software
Open Source Software and Free SoftwareOpen Source Software and Free Software
Open Source Software and Free SoftwareDhurjati Borah
 
Higiene y seguridad industrial
Higiene y seguridad industrialHigiene y seguridad industrial
Higiene y seguridad industrialKarlozz Martinez
 
Case study questions_6
Case study questions_6Case study questions_6
Case study questions_6professorsrb
 
Windows 8 Presentation for Mobile 101 - Thinslices
Windows 8 Presentation for Mobile 101 - ThinslicesWindows 8 Presentation for Mobile 101 - Thinslices
Windows 8 Presentation for Mobile 101 - ThinslicesBujdea Bogdan
 
Week10_networking_2
Week10_networking_2Week10_networking_2
Week10_networking_2ispkosova
 
Minhyul bae Design Portfolio 2013
Minhyul bae Design Portfolio 2013Minhyul bae Design Portfolio 2013
Minhyul bae Design Portfolio 2013Minhyul Bae
 
Diapositivas sobre los origenes d ela universidad
Diapositivas sobre los origenes d ela universidadDiapositivas sobre los origenes d ela universidad
Diapositivas sobre los origenes d ela universidadNancy Diazgranados
 
European union: a quick explaination
European union: a quick explainationEuropean union: a quick explaination
European union: a quick explainationStefan van der Weide
 
Influence of Mobile Money on Transactions in Africa; Focus East Africa
Influence of Mobile Money on Transactions in Africa; Focus East AfricaInfluence of Mobile Money on Transactions in Africa; Focus East Africa
Influence of Mobile Money on Transactions in Africa; Focus East AfricaKelvin Kizito Kiyingi
 
Miguel s anchez
Miguel s anchezMiguel s anchez
Miguel s anchezJa'r R'oz
 
Elasticsearch Quick Introduction
Elasticsearch Quick IntroductionElasticsearch Quick Introduction
Elasticsearch Quick Introductionimotov
 
Windows Phone 8 - What's new
Windows Phone 8 - What's newWindows Phone 8 - What's new
Windows Phone 8 - What's newBujdea Bogdan
 
Monetary_Policy_Target_Audience_Expanding_Reach_through_Tailored_Form_Content
Monetary_Policy_Target_Audience_Expanding_Reach_through_Tailored_Form_Content Monetary_Policy_Target_Audience_Expanding_Reach_through_Tailored_Form_Content
Monetary_Policy_Target_Audience_Expanding_Reach_through_Tailored_Form_Content Kelvin Kizito Kiyingi
 

Destaque (20)

6 tips on perfect security camera system
6 tips on perfect security camera system6 tips on perfect security camera system
6 tips on perfect security camera system
 
Presentation劉思竹v4.2 10122608
Presentation劉思竹v4.2 10122608Presentation劉思竹v4.2 10122608
Presentation劉思竹v4.2 10122608
 
Open Source Software and Free Software
Open Source Software and Free SoftwareOpen Source Software and Free Software
Open Source Software and Free Software
 
My Presentation
My PresentationMy Presentation
My Presentation
 
vida saludable
vida saludablevida saludable
vida saludable
 
Higiene y seguridad industrial
Higiene y seguridad industrialHigiene y seguridad industrial
Higiene y seguridad industrial
 
Case study questions_6
Case study questions_6Case study questions_6
Case study questions_6
 
Windows 8 Presentation for Mobile 101 - Thinslices
Windows 8 Presentation for Mobile 101 - ThinslicesWindows 8 Presentation for Mobile 101 - Thinslices
Windows 8 Presentation for Mobile 101 - Thinslices
 
Actividad 1
Actividad 1Actividad 1
Actividad 1
 
Week10_networking_2
Week10_networking_2Week10_networking_2
Week10_networking_2
 
Minhyul bae Design Portfolio 2013
Minhyul bae Design Portfolio 2013Minhyul bae Design Portfolio 2013
Minhyul bae Design Portfolio 2013
 
Diapositivas sobre los origenes d ela universidad
Diapositivas sobre los origenes d ela universidadDiapositivas sobre los origenes d ela universidad
Diapositivas sobre los origenes d ela universidad
 
European union: a quick explaination
European union: a quick explainationEuropean union: a quick explaination
European union: a quick explaination
 
H6 het parlement
H6 het parlementH6 het parlement
H6 het parlement
 
Influence of Mobile Money on Transactions in Africa; Focus East Africa
Influence of Mobile Money on Transactions in Africa; Focus East AfricaInfluence of Mobile Money on Transactions in Africa; Focus East Africa
Influence of Mobile Money on Transactions in Africa; Focus East Africa
 
Miguel s anchez
Miguel s anchezMiguel s anchez
Miguel s anchez
 
Elasticsearch Quick Introduction
Elasticsearch Quick IntroductionElasticsearch Quick Introduction
Elasticsearch Quick Introduction
 
Windows Phone 8 - What's new
Windows Phone 8 - What's newWindows Phone 8 - What's new
Windows Phone 8 - What's new
 
Prelims
PrelimsPrelims
Prelims
 
Monetary_Policy_Target_Audience_Expanding_Reach_through_Tailored_Form_Content
Monetary_Policy_Target_Audience_Expanding_Reach_through_Tailored_Form_Content Monetary_Policy_Target_Audience_Expanding_Reach_through_Tailored_Form_Content
Monetary_Policy_Target_Audience_Expanding_Reach_through_Tailored_Form_Content
 

Semelhante a A reviravolta do desenvolvimento web

Psgi Plack Sfpm
Psgi Plack SfpmPsgi Plack Sfpm
Psgi Plack Sfpmsom_nangia
 
Psgi Plack Sfpm
Psgi Plack SfpmPsgi Plack Sfpm
Psgi Plack Sfpmwilburlo
 
Mojolicious. Веб в коробке!
Mojolicious. Веб в коробке!Mojolicious. Веб в коробке!
Mojolicious. Веб в коробке!Anatoly Sharifulin
 
Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)
Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)
Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)Dotan Dimet
 
Marvel of Annotation Preprocessing in Java by Alexey Buzdin
Marvel of Annotation Preprocessing in Java by Alexey BuzdinMarvel of Annotation Preprocessing in Java by Alexey Buzdin
Marvel of Annotation Preprocessing in Java by Alexey BuzdinJava User Group Latvia
 
Curscatalyst
CurscatalystCurscatalyst
CurscatalystKar Juan
 
Creating Responsive Experiences
Creating Responsive ExperiencesCreating Responsive Experiences
Creating Responsive ExperiencesTim Kadlec
 
I put on my mink and wizard behat (tutorial)
I put on my mink and wizard behat (tutorial)I put on my mink and wizard behat (tutorial)
I put on my mink and wizard behat (tutorial)xsist10
 
Asynchronous Programming FTW! 2 (with AnyEvent)
Asynchronous Programming FTW! 2 (with AnyEvent)Asynchronous Programming FTW! 2 (with AnyEvent)
Asynchronous Programming FTW! 2 (with AnyEvent)xSawyer
 
Perl web app 테스트전략
Perl web app 테스트전략Perl web app 테스트전략
Perl web app 테스트전략Jeen Lee
 
Ten modules I haven't yet talked about
Ten modules I haven't yet talked aboutTen modules I haven't yet talked about
Ten modules I haven't yet talked aboutacme
 
Secure Coding with WordPress - WordCamp SF 2008
Secure Coding with WordPress - WordCamp SF 2008Secure Coding with WordPress - WordCamp SF 2008
Secure Coding with WordPress - WordCamp SF 2008Mark Jaquith
 
Socket applications
Socket applicationsSocket applications
Socket applicationsJoão Moura
 
Forget about index.php and build you applications around HTTP!
Forget about index.php and build you applications around HTTP!Forget about index.php and build you applications around HTTP!
Forget about index.php and build you applications around HTTP!Kacper Gunia
 
Intro to Php Security
Intro to Php SecurityIntro to Php Security
Intro to Php SecurityDave Ross
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesLindsay Holmwood
 
Mojolicious - A new hope
Mojolicious - A new hopeMojolicious - A new hope
Mojolicious - A new hopeMarcus Ramberg
 
How to build a High Performance PSGI/Plack Server
How to build a High Performance PSGI/Plack Server How to build a High Performance PSGI/Plack Server
How to build a High Performance PSGI/Plack Server Masahiro Nagano
 

Semelhante a A reviravolta do desenvolvimento web (20)

Psgi Plack Sfpm
Psgi Plack SfpmPsgi Plack Sfpm
Psgi Plack Sfpm
 
Psgi Plack Sfpm
Psgi Plack SfpmPsgi Plack Sfpm
Psgi Plack Sfpm
 
Mojolicious. Веб в коробке!
Mojolicious. Веб в коробке!Mojolicious. Веб в коробке!
Mojolicious. Веб в коробке!
 
Perl Web Client
Perl Web ClientPerl Web Client
Perl Web Client
 
Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)
Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)
Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)
 
Marvel of Annotation Preprocessing in Java by Alexey Buzdin
Marvel of Annotation Preprocessing in Java by Alexey BuzdinMarvel of Annotation Preprocessing in Java by Alexey Buzdin
Marvel of Annotation Preprocessing in Java by Alexey Buzdin
 
Curscatalyst
CurscatalystCurscatalyst
Curscatalyst
 
Creating Responsive Experiences
Creating Responsive ExperiencesCreating Responsive Experiences
Creating Responsive Experiences
 
I put on my mink and wizard behat (tutorial)
I put on my mink and wizard behat (tutorial)I put on my mink and wizard behat (tutorial)
I put on my mink and wizard behat (tutorial)
 
Asynchronous Programming FTW! 2 (with AnyEvent)
Asynchronous Programming FTW! 2 (with AnyEvent)Asynchronous Programming FTW! 2 (with AnyEvent)
Asynchronous Programming FTW! 2 (with AnyEvent)
 
Perl web app 테스트전략
Perl web app 테스트전략Perl web app 테스트전략
Perl web app 테스트전략
 
Ten modules I haven't yet talked about
Ten modules I haven't yet talked aboutTen modules I haven't yet talked about
Ten modules I haven't yet talked about
 
Secure Coding with WordPress - WordCamp SF 2008
Secure Coding with WordPress - WordCamp SF 2008Secure Coding with WordPress - WordCamp SF 2008
Secure Coding with WordPress - WordCamp SF 2008
 
Blog Hacks 2011
Blog Hacks 2011Blog Hacks 2011
Blog Hacks 2011
 
Socket applications
Socket applicationsSocket applications
Socket applications
 
Forget about index.php and build you applications around HTTP!
Forget about index.php and build you applications around HTTP!Forget about index.php and build you applications around HTTP!
Forget about index.php and build you applications around HTTP!
 
Intro to Php Security
Intro to Php SecurityIntro to Php Security
Intro to Php Security
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
 
Mojolicious - A new hope
Mojolicious - A new hopeMojolicious - A new hope
Mojolicious - A new hope
 
How to build a High Performance PSGI/Plack Server
How to build a High Performance PSGI/Plack Server How to build a High Performance PSGI/Plack Server
How to build a High Performance PSGI/Plack Server
 

Último

Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...marcuskenyatta275
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfUK Journal
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastUXDXConf
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessUXDXConf
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPTiSEO AI
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform EngineeringMarcus Vechiato
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...CzechDreamin
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimaginedpanagenda
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsLeah Henrickson
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024Stephen Perrenod
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon
 

Último (20)

Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 

A reviravolta do desenvolvimento web