https://2021.pycon.jp/time-table/?id=273396
Webアプリ開発とデータベースマイグレーションには密接な関係があり、Pythonでよく採用されるDjangoやSQLAlchemyには、DBのスキーマを変更するマイグレーション機能があります。一般的に、プログラムを実装するときはリポジトリでブランチを作りそれぞれのブランチで実装作業を進めます。Webアプリの開発でも同様ですが、各ブランチでDBスキーマを変更する場合には注意が必要です。例えば、複数のブランチで同じテーブルのカラムを追加して使いたい場合や、DBスキーマの変更が競合する場合は、ブランチのマージ時に競合してしまいます。多くの機能を並行開発したり、マージするまでの期間が長い場合には、このような競合が増えてしまいます。
このトークでは、Djangoを例に、データベースマイグレーションの仕組みから、実際の開発現場で発生したトラブルとその解決方法について紹介します。
Migration strategies for parallel development of web applications
https://2021.pycon.jp/time-table/?id=273396
Webアプリ開発とデータベースマイグレーションには密接な関係があり、Pythonでよく採用されるDjangoやSQLAlchemyには、DBのスキーマを変更するマイグレーション機能があります。一般的に、プログラムを実装するときはリポジトリでブランチを作りそれぞれのブランチで実装作業を進めます。Webアプリの開発でも同様ですが、各ブランチでDBスキーマを変更する場合には注意が必要です。例えば、複数のブランチで同じテーブルのカラムを追加して使いたい場合や、DBスキーマの変更が競合する場合は、ブランチのマージ時に競合してしまいます。多くの機能を並行開発したり、マージするまでの期間が長い場合には、このような競合が増えてしまいます。
このトークでは、Djangoを例に、データベースマイグレーションの仕組みから、実際の開発現場で発生したトラブルとその解決方法について紹介します。
Migration strategies for parallel development of web applications
This document summarizes a microservices meetup hosted by @mosa_siru. Key points include:
1. @mosa_siru is an engineer at DeNA and CTO of Gunosy.
2. The meetup covered Gunosy's architecture with over 45 GitHub repositories, 30 stacks, 10 Go APIs, and 10 Python batch processes using AWS services like Kinesis, Lambda, SQS and API Gateway.
3. Challenges discussed were managing 30 microservices, ensuring API latency below 50ms across availability zones, and handling 10 requests per second with nginx load balancing across 20 servers.
This document summarizes a microservices meetup hosted by @mosa_siru. Key points include:
1. @mosa_siru is an engineer at DeNA and CTO of Gunosy.
2. The meetup covered Gunosy's architecture with over 45 GitHub repositories, 30 stacks, 10 Go APIs, and 10 Python batch processes using AWS services like Kinesis, Lambda, SQS and API Gateway.
3. Challenges discussed were managing 30 microservices, ensuring API latency below 50ms across availability zones, and handling 10 requests per second with nginx load balancing across 20 servers.
8. TCPデータ
インターネットはなぜ遅いのか?
クライアント サーバ
ネットワークA
R R R
ネットワークB ネットワークC ネットワークD
2点間の距離が遠い場合は、ackの応答に時間がかかり、ネットワークリソースを十分に活かしきれません
TCPデータ
TCPデータ
TCPデータ
使い切れていない
ネットワークリソース
ack
ack
ack
ack
きたぞー
送ったぞー
9. インターネットはなぜ遅いのか?
海外にアクセスしようものなら、ackの応答時間(Round Trip Time)に10倍以上もの差が出ることもしばしば
US カリフォルニア州
166ミリ秒15ミリ秒
yahoo.co.jp
さくら
インターネット
RTT= RTT=
大阪
東京
KDDI
Softbank
Telecom
yahoo.com
海底ケーブル
(恐らくJapan-US経由)
R
R
R
R
R
R
R
R
R
R
R
R
R
R R
R
R
R
R
R
R
R
R
R
35ミリ秒
100ミリ秒
6ミリ秒 6ミリ秒
6ミリ秒 3ミリ秒
一定タイミングごと(一様乱数で少しズラした)にtracerouteを実行し、1週間分のRTTの平均値。
※各ノードについて、L2トンネリングは配慮しないものとする。
25ミリ秒
12. インターネットはなぜ遅いのか?
クライアント サーバ
ネットワークA
R R R
ネットワークB ネットワークC ネットワークD
TCP接続開始時はいまのところ、RTTがそのままクリティカルパスとなり改善されていません
いいよー
TCP接続
するよ?
じゃ
開始して!
syn
syn
syn
syn
ack
ack
ack
ack
ack
ack
ack
ack
TCPデータ
TCPデータ
※注:APPENDIX-1も参考のこと
89. 1. High Performance Browser Networking - Ilya Grigorik (O’Reilly Media)
http://chimera.labs.oreilly.com/books/1230000000545
2. Mobile Analysis in PageSpeed Insights (Google Developers)
https://developers.google.com/speed/docs/insights/mobile
3. Kokusai Cable Ship Co.,Ltd
http://www.k-kcs.co.jp/english/topic_unity.html
4. WebPagetest.org
http://www.webpagetest.org/
5. modern.IE Site Scan
http://modern.ie/ja-jp/
6. W3C WEB PERFORMANCE WORKING GROUP
http://www.w3.org/2010/webperf/
7. Evaluating network performance
https://developer.chrome.com/devtools/docs/network
8. Hello HTTP/2, Goodbye SPDY
http://blog.chromium.org/2015/02/hello-http2-goodbye-spdy-http-is_9.html
9. rniwa from Apple just joined the Web Performance WG
https://lists.w3.org/Archives/Public/public-web-perf/2015Jan/0055.html
Reference