DjangoCongress JP 2019に参加しました。
18日に開催されたDjangoCongress JP 2019に参加してきました。
場所は、サイボウズさん。やっぱり部屋がきれいですね。
いくつかの登壇者の講演を聞くことができましたのでまとめました。
- Djangoで静的ファイルとうまくやる話 Room1
- 現場で使える Django のセキュリティ対策 Room1
- Djangoでのメール送信 - 設定からテストまで Room2
- Djangoアプリのデプロイに関するプラクティス Room1
- 自社サービスのDjango1.3サーバを1.11(LTS)にアップグレードするまでの道のり Room1
- まとめ
Djangoで静的ファイルとうまくやる話 Room1 ・・・tell-k
Djangoアプリを本番にデプロイしたら、JS/CSSが表示されなくて困った。collectstatic がイマイチなんのためにあるのか分からない。そんな経験をしたことありませんか? 本発表ではDjangoでJS/CSSなどの静的なファイル扱うために誰もが一度は迷ったり、つまづいたりするようなトピックを事例を交えながら初心者の人にもわかりやすいように発表いたします。
Djangoとは、動的コンテンツを生成し配信する のが主な役割で、公開前の本番サーバーにDjangoアプリをデプロイしたときの静的ファイルについての失敗談をお話されました。
メディアファイルについてはローカルでデバッグすることはなかったので設定方法とか聞けて勉強になりました。
現場で使える Django のセキュリティ対策 Room1・・・Akihito Yokose
待望のバージョン2系の LTS がリリースされ、ますます現場で Django が盛り上がることが予想されますが、導入検討の際にネックになるものの一つに「セキュリティ」への懸念があります。
Django にはデフォルトでセキュリティ対策も含まれていますが、そのあたりの理解が中途半端だと、リリースした Webアプリが攻撃者の格好の餌食になってしまいかねません。そうならないためにも、Django のセキュリティ事情については開発前から(もちろん開発中でも)きちんと把握しておきたいところです。
そこで本発表ではまず、Django におけるセキュリティ対策の基礎について概観します。そして CSRF などの重要な(そして重要な割にあまりよく理解されていない)ものについては、「CSRF(しーさーふ)って何?」というレベルの人にも分かるように基本から解説します。
- 資料
現場で使える Django のセキュリティ対策 / Django security measures for business (DjangoCon JP 2019) - Speaker Deck
Djangoを使う上でセキュリティ対策は重要だと思い聞きました。
とてもわかりやす資料で人に教えるのにわかりやすくまとめられて聞きやすかったです。
Djangoでのメール送信 - 設定からテストまで Room2 ・・・@thinkAmi
Djangoにはメール送信機能が標準で用意されています。そのため、settings.pyへ適切に設定を行うことで、簡単にメール送信機能を実現できます。
一方で、設定によっては、メール送信ができなかったり、本番環境の利用者宛にテストメールを誤配信してしまう等の問題が発生します。
本発表では、Django標準のメール送信機能と使い方を紹介します。また、管理者設定を使ったエラー通知・メールバックエンドの自作方法・メール送信まわりのテスト方法など、実際の開発現場で必要になる内容もお伝えします。
send_mail()以外にEmailMessage、EmailBackendもあって、細かいメール設定を実例で資料もあり、あとで読み直すこともできたり、お話も聞きやすかった印象です。
テストも参考になりますので実践しようと思います。
Djangoアプリのデプロイに関するプラクティス Room1 ・・・Masashi Shibata
Webアプリケーションのデプロイは、多くの開発者が悩んできたトピックかと思います。実行マシンの準備から、アプリケーションの構成管理、各種ミドルウェアの設定はもちろん、スケーリングやセキュリティ、SLIの選定や収集方法など考えるべき要素が多く存在し、ツールチェインの選択肢も幅広いものです。
本セッションではまずDjangoアプリケーションの非常にstandardなデプロイ構成を紹介し、そこで発生する問題とその解決方法を挙げていきます。主に扱うトピックはセキュリティ、スケーリング戦略、構成管理とコンテナ技術、モニタリングです。
手書きの図もあってとても新鮮でした。
WSGIサーバーの話で意識してなかったのですが、gunicornは、pure pythonででき、uWSGIは、基本的にC言語によって実装しているのを聞いて勉強になりました。
また、実行環境の構築方法でPackerを使い、実行環境をイメージ化するのも知らなかったのでそれも勉強になりました。
自社サービスのDjango1.3サーバを1.11(LTS)にアップグレードするまでの道のり Room1 ・・・Toshikazu Ohashi
弊社のプッシュ通知配信サービス「popinfo」は、私が入社当時Django1.3.7で動いていましたもちろんPythonも2系です。度重なる機能要望とバグフィックスに追われ、このレガシーを放置せざるを得ない状況でした。
しかしサポート切れソフトウェアを使う苦悩は無視できないレベルになり、2018年から私に技術返済の機会を与えられた私はチーム編成から既存機能の整理を経てなんとかDjango1.11への道のりを立てることができました。
今回の経験で得た、レガシーの苦悩とDjangoアップグレードによる恩恵についてお話したいと思います。
- 資料 (公開され次第URL貼ります)
Django 1.3のバージョンから2系、3系へと一気にバージョンを上げる際は、公式ページのRelease Noteを見てどこが更新されたかの内容は見やすいとのこと。
バージョンアップした際、デフォルト挙動は、動作させて見ないとわからないとのこと。やっぱりこまめバージョンアップしていくのは大事だなと感じました。
Django 2系から3系に自動的にアップできるツールがあるみたい。その後、Unit TESTをひたすら実行し修正していくことで完結できるみたいです。
自社サービスのDjango1.3サーバを1.11(LTS)にアップグレードするまでの道のり Room1 ・・・Toshikazu Ohashi
2013年のある日、長野のあるIT企業がビジネスモデルの転換のために採用したWebフレームワークが「Django」でした。
Webエンジニアゼロの状況から、現在はエンジニアの80%近くがWebアプリケーション開発に従事しています。
順風満帆な道のりではなくトライ&エラーの繰り返しでした。その過程で生まれた試みや教育プラン、「Django」の採用理由についての話しをします。
成功事例だけではなく、失敗事例も含めて今日に至ったお話を出来ればと思います。
経営層寄りのエンジニアの方、スキルシフト出来ずに悩んでいるエンジニアの方、地方のITを活性化したい方そんな方達に聞いてもらえればと思います。
長野で最もPythonを従事している会社は、日本システム技研(JSL) と言われるくらいに成長した会社の歴史を書いてあります。ご興味あり方は、資料を御覧ください。
まとめ
今回は日本システム技研(JSL)の中から登壇者が3名参加し、12の発表枠に3名とはすごいなと感じました。知らない人からも声をかけられたり、資料に弊社のユーザの名前がでたりと、コミニュケーションが生まれたりしていました。
Djnagoといえば、日本システム技研(JSL)という流れはとても良いと思いました。
スピーカーの方々、スタッフの方々、そして参加者の皆さま、ありがとうございました。
引き続きですが、自分の思いとしては、
- プレゼンテーション能力を磨こう。
- 英語ができるようにがんばろう。
これからもさらに勉強していきたいと思うようになりました。