Webシステム開発入門 - Perl&Mojolicious

PerlとMojoliciousを使ったWebシステム開発入門

Webシステム開発入門は、MojoliciousというPerlのWebフレームワークを使ったWebシステム開発の入門講座です。

Perlには、MojoliciousというWebアプリケーションを簡単に柔軟に作れるWebフレームワークがあります。

Mojoliciousを使うと、開発効率とパフォーマンスを両立させたWebシステムを構築することができます。

Mojoliciousの特徴

Mojoliciousの特徴

組み込みの開発用サーバー

Mojoliciousは、Linux環境で起動できる開発用Webサーバーを持っています。開発用Webサーバーを使うと、Webアプリケーションをローカルの環境で実行できるので、開発作業を早く繰り返すことができ、開発効率を高めます。

プリフォーク+非同期I/Oの本番用サーバー

Mojoliciousは、Linux環境で起動できるパフォーマンスに最適化された本番用のWebサーバーを持っています。プリフォーク+非同期I/Oで、本番サーバーを起動します。

子プロセスをプリフォークすることによって、あらかじめHTTPリクエストが来るのに備えます。プリフォークでは、並列にリクエストを待つことができます。

それぞの子プロセスが非同期I/Oで、HTTPリクエストを受け取ります。非同期I/Oは、同時接続が1万をこえても、アーキテクチャーが耐える、スケーラブルな実装です。

ホットデプロイメント

ホットデプロイメントは、本番サーバーで、サーバーを完全に止めることなく、サーバーを再起動するための技術です。HTTPリクエストの喪失が起こらないように、サーバーは再起動されます。

テンプレート

Mojoliciousは、HTMLの出力に使うテンプレートを持っています。テンプレートの中で、Perlのコードを使って、動的に出力することが可能です。

JSONサポート

MojoliciousのAPIは、JSONをサポートしています。AJAXでのJSONの受け取りや、JSONの描画も簡単です。

Web層に機能が限定

MojoliciousはWeb層に機能が限定されたWebフレームワークです。データベースへアクセスは、Webフレームワークの機能として含んでいません。

データベースアクセスモジュール(例:DBIx::Custom)は自由に選んで使えます。

非同期I/OのHTTPクライアント

Mojoliciousは、非同期I/OのHTTPクライアントを含んでいます。外部サービスにHTTPリクエストを投げる場合に、ブロッキングすることなくHTTPリクエストを送信できます。

小さなWebアプリ

Mojolicious::Liteと呼ばれるMojoliciousに含まれているモジュールを使うと、3行で、Webアプリを作成できます。

use Mojolicious::Lite;
get '/' => sub { shift->render(text => 'Hello') };
app->start;

これは、画面にHelloと表示する一番小さなWebアプリケーションです。

互換性は高く、セキュリティ的にも安全

Mojoliciousは、継続的にメンテナンスされており、セキュリティ問題が発生すると、すぐに修正されます。時々、互換性を壊れることがありますが、原則的には後方互換性は高く、アップグレードも簡単です。Perl自体も後方互換性が非常に高いです。

PerlのGCと相性が良い

Perlは、リファレンスカウントGCと呼ばれる平均応答速度に最適化されたGCを持っています。

これは、Mojoliciousの非同期I/OのWebサーバーと相性が良いです。

非同期I/Oでは、平均待ち時間が小さいことが、パフォーマンスをよくするために非常に重要ですが、Perlは、平均応答速度に最適化されています。

Perl&MojoliciousでWebシステム開発を始めませんか?

Perl&MojoliciousでWebシステム開発を始めまてみませんか?

PerlとMojoliciousの組み合わせは、Webシステム開発ととても相性が良いです。

簡潔な記述で高い開発効率、プリフォーク+非同期I/Oによる高い実行性能。

他の手法とぜひ比較してみてください。