Elixir in ABEJA
by
Takanori Ishikawa
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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