もた日記

くだらないことを真面目にやる

cookiecutter-djangoで使用しているサービス/ライブラリを調べてみる

cookiecutterというツールを使用するとPythonパッケージやDjangoなどのプロジェクトの雛形を作成することができる。 cookiecutter-djangoはWebアプリケーションフレームワークDjango用の雛形だが、色々なサービス/ライブラリを使用しているようなので調べてみる。

wonderwall.hatenablog.com

github.com


基本

REAMDEで特徴として挙げられていた項目の中で見慣れない項目を見ていく。

django-environ

github.com

django-environは環境変数を管理するライブラリ。Twelve-Factor Appにインスパイアされたらしい。

django-allauth

github.com

django-allauthは認証ライブラリ。ソーシャルログインも簡単に実装可能とのこと。

PythonAnywhere

Host, run, and code Python in the cloud: PythonAnywhere

PythonAnywhreはPythonアプリをデプロイできるクラウドサービス。Djangoアプリも動かすことができ、ここにデプロイ方法が書かれている。

f:id:wonder-wall:20170920231812p:plain

Anymail

github.com

django-anymailはMailgun, Mailjet, Postmark, SendGrid, SparkPostなどに対応しているEmailバックエンド。デフォルトでは下記のMailgunを使用。

Mailgun

Transactional Email API Service For Developers | Mailgun

Mailgunは開発者向けのAPIベースのメール配信サービス。

f:id:wonder-wall:20170920231133p:plain


オプション

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を使うのがよいらしい。

f:id:wonder-wall:20170921222040p:plain

MailHog

github.com

MailHogは開発環境でメール送受信のテストをするときに使えるツール。下図のようにWeb UIから操作したり、APIで操作できる。

f:id:wonder-wall:20170920224201p:plain

Sentry

Sentry | Error Tracking Software — JavaScript, Python, PHP, Ruby, more

Sentryはエラートラッキングサービス。アプリケーションからエラーログを送信して、Sentryでエラーログを収集して表示する。ちなみにSentryは見張り(番)、番兵、衛兵という意味。

f:id:wonder-wall:20170920224802j:plain

Opbeat

Opbeat

Opbeatはパフォーマンス管理サービス。検索すると「アプリケーション用検索エンジンのElasticがOpbeatを買収してアプリケーションパフォーマンス管理に進出」というニュースが引っかかる。

OpbeatはJavascriptで書かれているアプリケーションをモニタするが、それだけでなく本番アプリケーションの問題点を直接、その原因であるソースコードに対応付ける。そのためコードの森をハントして問題領域を見つける努力をしなくても、容易に問題をフィックスできる。

f:id:wonder-wall:20170920225233p:plain

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 などの使い慣れたサーバーでデプロイおよびスケーリングするための、使いやすいサービスです。

f:id:wonder-wall:20170920225646p:plain

Django Compressor

github.com

Django CompressorはJavaScript, CSSファイルを圧縮するライブラリ。