Slide 1

Slide 1 text

Copyright © ABEJA, Inc. All rights reserved. Takanori Ishikawa @ ABEJA Platform Developer Elixir in ABEJA

Slide 2

Slide 2 text

Copyright © ABEJA, Inc. All rights reserved. ⽯川尊教 Takanori Ishikawa @takanori_is ❤ Elixir &

Slide 3

Slide 3 text

Copyright © ABEJA, Inc. All rights reserved. 職務経歴書

Slide 4

Slide 4 text

Copyright © ABEJA, Inc. All rights reserved. 2004年 ドリコム

Slide 5

Slide 5 text

Copyright © ABEJA, Inc. All rights reserved. 2008年 なぜか Python をやっていた暗黒時代 N E E T

Slide 6

Slide 6 text

Copyright © ABEJA, Inc. All rights reserved. 6 2009 Barack Obama by Gage Skidmore (CC BY-SA 2.0)

Slide 7

Slide 7 text

Copyright © ABEJA, Inc. All rights reserved. 2009年 mixi

Slide 8

Slide 8 text

Copyright © ABEJA, Inc. All rights reserved. 8 2017 donald-trump-foreign-policy (CC BY 3.0 US)

Slide 9

Slide 9 text

Copyright © ABEJA, Inc. All rights reserved. 2017年 ABEJA

Slide 10

Slide 10 text

Copyright © ABEJA, Inc. All rights reserved. アメリカ合衆国⼤統領が変わるタイミングで転職

Slide 11

Slide 11 text

Copyright © ABEJA, Inc. All rights reserved. という話ではなく…

Slide 12

Slide 12 text

Copyright © ABEJA, Inc. All rights reserved. 12

Slide 13

Slide 13 text

Copyright © ABEJA, Inc. All rights reserved. 13

Slide 14

Slide 14 text

Copyright © ABEJA, Inc. All rights reserved. ⼊社したすべての会社が Elixir を採⽤ ※なお、どのプロジェクトにも⽯川は関わっておりません

Slide 15

Slide 15 text

Copyright © ABEJA, Inc. All rights reserved. もちろん ABEJA でも採⽤

Slide 16

Slide 16 text

Copyright © ABEJA, Inc. All rights reserved.

Slide 17

Slide 17 text

Copyright © ABEJA, Inc. All rights reserved. どんなところに Elixir を使ってる?

Slide 18

Slide 18 text

Copyright © ABEJA, Inc. All rights reserved. 横断的な処理をしているところ • TensorBoard / Notebook のプロキシ (HTTP / WebSocket) • ユーザーや各種リソースの認証 • API 呼び出しのルーティング • リソース利⽤量の計測 • 契約プランと課⾦ • 社内管理ツール

Slide 19

Slide 19 text

Copyright © ABEJA, Inc. All rights reserved. つまり、いろいろ

Slide 20

Slide 20 text

Copyright © ABEJA, Inc. All rights reserved. 何⼈くらいで開発してる?

Slide 21

Slide 21 text

Copyright © ABEJA, Inc. All rights reserved. ONLY ONE 21

Slide 22

Slide 22 text

Copyright © ABEJA, Inc. All rights reserved. だったのが、最近は増えてきて • レビューしてくれたり、 • Pull Request を書いてくれたり • 勉強してくれたり

Slide 23

Slide 23 text

Copyright © ABEJA, Inc. All rights reserved. マジ感謝

Slide 24

Slide 24 text

Copyright © ABEJA, Inc. All rights reserved. Elixir のここが良い

Slide 25

Slide 25 text

Copyright © ABEJA, Inc. All rights reserved. 正常ケースのみを処理できるので コードの⾒た⽬がスッキリ with 式と action_fallback

Slide 26

Slide 26 text

Copyright © ABEJA, Inc. All rights reserved. 正常ケースのみを処理できるので コードの⾒た⽬がスッキリ with 式と action_fallback

Slide 27

Slide 27 text

Copyright © ABEJA, Inc. All rights reserved. マクロ 定型コードのテンプレートを
 簡単かつ安全に挿⼊

Slide 28

Slide 28 text

Copyright © ABEJA, Inc. All rights reserved. 定型コードのテンプレートを
 簡単かつ安全に挿⼊ マクロ

Slide 29

Slide 29 text

Copyright © ABEJA, Inc. All rights reserved. ドキュメンテーション 充実した内容のリファレンスと スッキリした⾒やすいデザイン

Slide 30

Slide 30 text

Copyright © ABEJA, Inc. All rights reserved. 変数や制御構造も使えるので コードを反映したドキュメントを⽣成できる ドキュメンテーション

Slide 31

Slide 31 text

Copyright © ABEJA, Inc. All rights reserved. あと、速い

Slide 32

Slide 32 text

Copyright © ABEJA, Inc. All rights reserved. 他にも⾊々ありますが… • ⼤量のプロセスでメッセージ・パッシングとか • プロセスの Supervision Tree とか • Immutable なデータ構造とか • OTP のすばらしさとか • …ググったらいっぱい出てくるので省略

Slide 33

Slide 33 text

Copyright © ABEJA, Inc. All rights reserved. Elixir のここが困る

Slide 34

Slide 34 text

Copyright © ABEJA, Inc. All rights reserved. ⽐較的マイナーなため • メジャーな⾔語に⽐べるとライブラリなどのエコシステムは弱い • IaaS/SaaS の SDK 実装がなかったり、機能が不⾜してたり… • 積極的に PR を書く • コンパイル時間が⽐較的⻑い • コンパイル待ちで Slack を⾒てしまう • Docker on Mac はけっこうつらい

Slide 35

Slide 35 text

Copyright © ABEJA, Inc. All rights reserved. 今やろうとしていること

Slide 36

Slide 36 text

Copyright © ABEJA, Inc. All rights reserved. Kubernetes への移⾏ • EC2 から移⾏ • Kubernetes 上で Elixir クラスタ構築 • WebSocket によるプッシュ • グローバルキャッシュ • Live View

Slide 37

Slide 37 text

Copyright © ABEJA, Inc. All rights reserved. We’re Hiring https://www.wantedly.com/companies/abeja 37