cookiecutter-djangoで使用しているサービス/ライブラリを調べてみる
cookiecutterというツールを使用するとPythonパッケージやDjangoなどのプロジェクトの雛形を作成することができる。 cookiecutter-djangoはWebアプリケーションフレームワークDjango用の雛形だが、色々なサービス/ライブラリを使用しているようなので調べてみる。
基本
REAMDEで特徴として挙げられていた項目の中で見慣れない項目を見ていく。
django-environ
django-environは環境変数を管理するライブラリ。Twelve-Factor Appにインスパイアされたらしい。
django-allauth
django-allauthは認証ライブラリ。ソーシャルログインも簡単に実装可能とのこと。
PythonAnywhere
Host, run, and code Python in the cloud: PythonAnywhere
PythonAnywhreはPythonアプリをデプロイできるクラウドサービス。Djangoアプリも動かすことができ、ここにデプロイ方法が書かれている。
Anymail
django-anymailはMailgun, Mailjet, Postmark, SendGrid, SparkPostなどに対応しているEmailバックエンド。デフォルトでは下記のMailgunを使用。
Mailgun
Transactional Email API Service For Developers | Mailgun
Mailgunは開発者向けのAPIベースのメール配信サービス。
オプション
cookiecutter-djangoで下記項目は[y/n]で選択できるオプションだが見慣れない項目を見ていく。
$ cookiecutter https://github.com/pydanny/cookiecutter-django ・・・ use_whitenoise [y]: use_celery [n]: use_mailhog [n]: use_sentry_for_error_reporting [y]: use_opbeat [n]: use_pycharm [n]: windows [n]: use_docker [n]: use_heroku [n]: use_elasticbeanstalk_experimental [n]: use_compressor [n]:
WhiteNoise
WhiteNoise — WhiteNoise 3.3.0 documentation
WhiteNoiseは静的ファイルを配信するライブラリ。
Celery
Homepage | Celery: Distributed Task Queue
Celery(野菜のセロリと同じスペル)は説明によると分散タスクキュー。Pythonで非同期処理をする場合はCeleryを使うのがよいらしい。
MailHog
MailHogは開発環境でメール送受信のテストをするときに使えるツール。下図のようにWeb UIから操作したり、APIで操作できる。
Sentry
Sentry | Error Tracking Software — JavaScript, Python, PHP, Ruby, more
Sentryはエラートラッキングサービス。アプリケーションからエラーログを送信して、Sentryでエラーログを収集して表示する。ちなみにSentryは見張り(番)、番兵、衛兵という意味。
Opbeat
Opbeatはパフォーマンス管理サービス。検索すると「アプリケーション用検索エンジンのElasticがOpbeatを買収してアプリケーションパフォーマンス管理に進出」というニュースが引っかかる。
OpbeatはJavascriptで書かれているアプリケーションをモニタするが、それだけでなく本番アプリケーションの問題点を直接、その原因であるソースコードに対応付ける。そのためコードの森をハントして問題領域を見つける努力をしなくても、容易に問題をフィックスできる。
AWS Elastic Beanstalk
AWS Elastic Beanstalk (クラウドでアプリケーションをデプロイ & 管理) | AWS
AWS Elastic Beanstalkの説明は下記。cookiecutter-djangoでは実験的サポートとのこと。ちなみにBeanstalkは豆の木という意味(だから説明図が豆の木っぽいのね)。
AWS Elastic Beanstalk は、Java、.NET、PHP、Node.js、Python、Ruby、Go および Docker を使用して開発されたウェブアプリケーションやサービスを、Apache、Nginx、Passenger、IIS などの使い慣れたサーバーでデプロイおよびスケーリングするための、使いやすいサービスです。
Django Compressor
Django CompressorはJavaScript, CSSファイルを圧縮するライブラリ。