SIG-NetworkSystem#8 ツイートまとめ

下記イベントのツイートまとめです https://techplay.jp/event/666753
0
neguse @neguse

共通基盤をElixirで作ってる話 #sig_ns

2018-05-12 14:35:18
黒河優介(YusukeKurokawa) @wotakuro

なぜPythonからElixirへ? きっかけはElixirカンファレンスでCTOが突如発言した事。 無茶ぶりだと思ったが、正当な理由がいくつかあった。 djangoがPython2がサポートされなくなる2020年問題。 Python3への移行なのか、別にいくかで悩んでいた #sig_ns

2018-05-12 14:35:58
黒河優介(YusukeKurokawa) @wotakuro

Elixir 関数型言語、軽量プロセスによる並行プログラミング、耐障害性 #sig_ns

2018-05-12 14:37:08
neguse @neguse

How Discord Scaled Elixir to 5,000,000 Concurrent Users blog.discordapp.com/scaling-elixir… #sig_ns

2018-05-12 14:38:34
黒河優介(YusukeKurokawa) @wotakuro

Elixirでマクロ使える。 が、Macroつらい問題がある… #sig_ns

2018-05-12 14:40:41
neguse @neguse

ElixirのWAF、Phoenix useを使うとコードの理解が難しくなるのでつらい 書く量は少ないが読む量は多くなる #sig_ns

2018-05-12 14:41:28
黒河優介(YusukeKurokawa) @wotakuro

なので、Phoenixがそれだった。 書く量が少ない代わりに、読む量が多い… #sig_ns

2018-05-12 14:41:56
黒河優介(YusukeKurokawa) @wotakuro

DBは垂直分割(機能分割)。 さらに機能毎に分けた後に水平分割。 シャーディングに対応することが必須だった #sig_ns

2018-05-12 14:43:37
Seizan Shimazaki @seizans

ウチも Yacto 使わせてもらってる #sig_ns

2018-05-12 14:44:43
neguse @neguse

ゲームのバックエンドではDBのWriteが多く、Writeはキャッシュできないので問題になりがち DBを分割するとよいが、垂直分割、水平分割が必要 ElixirのDBライブラリEctoではシャーディングに対応していない、マイグレーションがDBごとにしかできないなどがあったので、ライブラリを作った #sig_ns

2018-05-12 14:44:47
neguse @neguse

[Yacto] Ecto のマイグレーションを自動化したり水平分割するためのライブラリを作った qiita.com/melpon/items/5… #sig_ns

2018-05-12 14:44:58
黒河優介(YusukeKurokawa) @wotakuro

もっと詳しい内容を知りたい人は、発表者のElixir一人Advent Calendar に色々あるのでこちらをー qiita.com/advent-calenda… #sig_ns

2018-05-12 14:45:31
neguse @neguse

use問題は、Phoenixのコードを理解することで解消 Phoenixに詳しい人を一人用意して対応した クリティカルなところだけ自作して、それ以外は既存のものを使わせてもらうのがよい #sig_ns

2018-05-12 14:47:05
黒河優介(YusukeKurokawa) @wotakuro

Python時代の開発… テンプレートとなるプロジェクトからforkして開発していた 基盤チームがメンテ不可能。ヤバい… #sig_ns

2018-05-12 14:47:45
Seizan Shimazaki @seizans

Ecto そのままだとスキーマファイルとマイグレーションファイルと両方をメンテせなあかんのがつらいので Yacto #sig_ns

2018-05-12 14:47:55
黒河優介(YusukeKurokawa) @wotakuro

テンプレート止めました。ライブラリ化しました ちゃんとバージョンニングしてメンテ可能に #sig_ns

2018-05-12 14:48:31
Seizan Shimazaki @seizans

Phoenix の use はまあ気持ち悪いんだけど、動くコード書く分には気にしなければいいんじゃないですかね。詳しい人を1人つくって聞けばいいかなと。ウチは Phoenix 使わなかったけど。 #sig_ns

2018-05-12 14:49:58
neguse @neguse

フレームワークをライブラリ化してバージョン管理 開発環境はdocker-composeを使ってバージョンを揃えている #sig_ns

2018-05-12 14:50:16
黒河優介(YusukeKurokawa) @wotakuro

チャットサポートしてたけど、はやいレスを求められて高負荷ツライ… わかる… #sig_ns

2018-05-12 14:51:49
Seizan Shimazaki @seizans

あと use 自体は最初イラッとしたけど、共通処理をやらせたいときには普通に便利なので、最小範囲で使えば良いモノだと思う。使いたがるのはアカン。 #sig_ns

2018-05-12 14:52:29
黒河優介(YusukeKurokawa) @wotakuro

言語を変えるだけのつもりだったけど、チームの体制やつくりなどいろいろ見直す良い機会だった #sig_ns

2018-05-12 14:52:37
neguse @neguse

Elixir質問を受け付けるチャットルームを用意 即時回答が求められるので担当者がつらい StackOverflowを導入するのを検討 #sig_ns

2018-05-12 14:52:41
黒河優介(YusukeKurokawa) @wotakuro

Elixirを選んだ理由 Erlang VMを使った実績があり、Erlang VM上で動くので、これが理由 #sig_ns

2018-05-12 14:55:39