Upgrade to Pro — share decks privately, control downloads, hide ads and more …

7年前から振り返るElixirテクノロジーの変遷【ElixirImp#21】

 7年前から振り返るElixirテクノロジーの変遷【ElixirImp#21】

piacerex

June 15, 2022
Tweet

More Decks by piacerex

Other Decks in Technology

Transcript

  1. All Rights Reserved. | CONFIDENTIAL ©︎2021 All Rights Reserved. |

    CONFIDENTIAL ©︎2021 7年前、何をしていましたか?
  2. All Rights Reserved. | CONFIDENTIAL ©︎2021 7年前の「世間の技術トレンド」と「Elixir技術の状況」 • 世間の技術トレンド ※当時の海外トレンドは二次会にでも

    ◦ クラウド…AWSやGCPが新規事業で使われ始めて一巡した頃 (大手企業のインフラ更改でも議論軸に) ◦ コンテナ…Dockerがメジャー、Kubernetesは出たばかり ◦ BigData …Redshiftが使われ始め、BigQueryは出たばかり ◦ フロント…jQuery全盛、知る人ぞ知るReact、未知のVue.js ◦ サーバ …国内はほぼJava/PHP、Railsが知られ始める • Elixir技術の状況 ◦ Elixir…国内:ナニソレ? 海外:脱Rails → Go?Rust? ◦ Phoenix…1.0が出たばかり、ElixirでWeb開発できるの? ◦ ライブラリ…Ecto、Postgrex、Timex、HTTPoisonが誕生 ◦ その他…Erlangライブラリ使わないとマトモに開発できない EctoはDSLが無かったのでSQL直接実行(TдT)
  3. All Rights Reserved. | CONFIDENTIAL ©︎2021 All Rights Reserved. |

    CONFIDENTIAL ©︎2021 7年前、触ってた技術をコメントどうぞ (非技術者なら、ご職業や何年生だったか)
  4. All Rights Reserved. | CONFIDENTIAL ©︎2021 All Rights Reserved. |

    CONFIDENTIAL ©︎2021 どんな時代だったか思い出しました? 思った以上に、今が進化していたり、 様変わりしてて、驚きますね…
  5. All Rights Reserved. | CONFIDENTIAL ©︎2021 All Rights Reserved. |

    CONFIDENTIAL ©︎2021 当時、職業エンジニア歴18年※ だった私が、Elixirに出会い、 fukuoka.exを発足する前からのお話 ※ちなみに個人開発エンジニア歴としては33年
  6. All Rights Reserved. | CONFIDENTIAL ©︎2021 ElixirImp #21 Wednesday, Jun.

    15, 2022 7年前から振り返る Elixirテクノロジーの変遷 ~何故、私はElixirに魅了され、7年間ずっとElixirだったのか?~ Let's look back together at the transformation of Elixir technologies over the past 7 years - Why continue the Elixir? Jun. 14, 2022 ver 0.9 created Happy Elixir 10th Anniversary
  7. All Rights Reserved. | CONFIDENTIAL ©︎2021 All Rights Reserved. |

    CONFIDENTIAL ©︎2021 my favotite technologies & implements Twitter/NeosVR:@piacere_ex Github/Qiita:@piacerex I've been a programmer for 40 years. I can write 158 programming languages. And I met Elixir 7 years ago. I own 3 companies that develepment software, and I’m a tech advisor at 2 other companies. I founded DigiDock Consulting Ltd, a consulting and development company specializing in Elixir last year. In all of them, I make heavy use of Elixir and Phoenix. Masakazu Mori / piacere “piacere” is an Italian word, means “Joy” == == Real Online VR / AR
  8. All Rights Reserved. | CONFIDENTIAL ©︎2021 2015年春:Elixirに出会うきっかけは7年前のGW消滅で • 「国民1/4級」という膨大な需要を持つ大規模基盤のリプレイス ◦

    性能要件:平時30,000tps、最大60,000tps、SLA300msec ◦ 認証や課金DB更新も含む業務系のため、NoSQLは適用不可 • 従来基盤がJavaで構築されていたため、引き続きJavaによる構築 ◦ オンプレサーバ中心で下記スケール構成 ▪ OAuth基盤:300台 ▪ OpenID基盤:100台 ▪ OpenAPI基盤:50台 ※AWSを入れて大変な目にあったのは別途 • DB周りの改修のみで対応できる目算だったが… ◦ 蓋を開ければ、ラッシュはスレスレ、ヒートランFGC連発… ◦ APIはメモリリーク無だが、性能不足でAPIが履けず、リーク と同様の事象が発生し、JVMが死に、筐体のAPIが全滅する
  9. All Rights Reserved. | CONFIDENTIAL ©︎2021 2015年:Elixirの素晴らしい性能…だが大企業は採用不可 • 何十日にも渡るヒートランテスト+Flight Recorderによる地道

    なメモリデバッギングにより、他チーム提供共通部品に甘い箇所 が5件あり、この改修で2日間相当のヒートランはギリ乗り切った ◦ そもそも、更改前は1日1回リブート運用だったところ、何を 血迷ったか「2日に1回リブートにする」と偉い人が技術根拠 の無い約束をしたことが原因の単なる自滅事案だった… • とは言え、JVMのシステムアーキテクチャに不信を覚え、元々知 っていたErlangのGC周りを調べ、言語仕様にうげぇとなってい た最中にElixirと出会う(出会った時点では怪しいと思った) • 性能検証は検証ミスかと思うほどの結果が…何者なんだElixir? ◦ OAuth基盤300台をElixir PC10台で収容できるサイジングに! ◦ ただし、Elixirのことを誰も知らないので、本採用できず…
  10. All Rights Reserved. | CONFIDENTIAL ©︎2021 2015年:それからの1年近く、たった独りでElixirもくもく • 数少ない国内情報と英語コラムで何とかキャッチアップ ◦

    Twitterは未だで、周りに知る人もゼロ…今では信じられない https://www.slideshare.net/ohr486/shibuyaex-1-elixir https://qiita.com/advent-calendar/2015/elixir-lang
  11. All Rights Reserved. | CONFIDENTIAL ©︎2021 All Rights Reserved. |

    CONFIDENTIAL ©︎2021 とは言え、この時点で Elixirは性能面としても、 言語としても、完成していた その理由は…
  12. All Rights Reserved. | CONFIDENTIAL ©︎2021 なぜElixirは誕生からたった3年でこうも完成してたのか? • ErlangVMの存在 ◦

    電話交換機でのプロダクション利用の積み上げの結果、大量 のアクセスを捌く構造と改善が完成しており、Elixirは巨人の 肩に乗って生まれた ◦ 実はJavaよりも歴史が古く、1986年製!! ▪ Java/JavaVMは、1995年デビューなので、9歳も年下w • 言語仕様が、1.1の頃には現在のものに近くなっていた ◦ 言語仕様そのものがシンプルで大きな変更が発生していない ◦ Enum/Mapモジュールも、1.0の前から割と充実していた ◦ DictやSet等のDeprecatedが、1.2になる前に整理済だった • Elixirの開発自体、洗練されていた ◦ Elixir 1.1.1以降の中核機能に対するBugfixが、割と少ない
  13. All Rights Reserved. | CONFIDENTIAL ©︎2021 All Rights Reserved. |

    CONFIDENTIAL ©︎2021 なお2011年頃、生まれる前の Elixirは「オブジェクト指向言語」? https://www.youtube.com/watch?v=aZXc11eOEpI&t=507s
  14. All Rights Reserved. | CONFIDENTIAL ©︎2021 2016年:ElixirにWebと並行/並列の革命が訪れた年 • 現在の主流であるWebFW「Phoenix」が、プロダクション利用 に耐え得るクオリティとなった

    ◦ ただし、脱Railsした1.3で、フォルダ構成やコマンド体系が 大幅に変わったため、1.2でガッツリ開発していたら、きっと しんどかったと思う(お試しレベルだったので助かった) • Ectoも、2016年頭頃にはDSLがマトモに使えるようになった ◦ なお、この頃のEco 1.x系ではSQLiteが標準で使えていたが、 2.x系以降は使えなくなり、Phoenix 1.6が出る2021年までの 5年間、封印されていた… • Elixir創始者José Valimが、「ElixirLive 2016」でElixirの革命と なる並行&並列ライブラリ「Flow」と「GenStage」を発表 https://www.youtube.com/watch?v=9K5yIPx-JFE
  15. All Rights Reserved. | CONFIDENTIAL ©︎2021 2016年:大手の性能番長を降りスタートアップに賭けた • Elixirとのファーストコンタクトと手応えを感じてから数ヶ月後 ◦

    Elixirが活用できる場へと軸足を移す…それはスタートアップ • Phoenixが、1.2でイイ感じの使い物になり、ElixirをAPI利用や 自前Webでは無い「マトモなWeb開発」で使う機会も訪れた ◦ カスタマーサポートが使う社内向けの大量行動データ分析ツ ールをElixirで試験実装し、Railsには無いクイックフィールと 凄まじい開発速度を得た ◦ その後、Javaで5分かかる数GBの大量行動データを変換する 中核部分に試し、Elixirは20秒で終わった…ヤベェよElixir!! • 使い始めたライブラリ…Phoenix 1.2、PhoenixPubsub、Xlsxir、 EctoMnesia、Flow、Goth、GoogleMaps、TypeClass、Algae、 NimbleCSV、Quixir、Abacus
  16. All Rights Reserved. | CONFIDENTIAL ©︎2021 2017年:Elixirに本腰を入れる & 仲間集めも始める •

    毎晩の社内Elixir勉強会を開始→後にfukuoka.exスライドに転用 • 6/8、fukuoka.ex発足!! ◦ Twitter開始、大原さんに見つかるw • Elixirが「Erlangライブラリ無いと マトモに開発できない」から巣立った 初めての年に思えた程、ライブラリや エコシステムが強力なものへと進化 • 使い始めたライブラリ…Phoenix 1.3、Swoosh、Mox、FastGlobal、 Manifold、Memoize、GoogleAPIStorage、Elasticachex、Avaroex、 ExHashRing、Deque、Dataloader、Download、LoggerSentry、 Distillery、CloudWatch、LoggerJson、Rustler
  17. All Rights Reserved. | CONFIDENTIAL ©︎2021 2017年:本格的にElixirプロダクション採用開始 2015年 2016年 2017年

    2018年 2019年 2020年 2021年 国民の1/4が利用する 60,000tps大規模基盤 でJVM300台FGC連発 ↓↓↓ Elixir10台で収容成功 LiveView導入案件 x 3 ・動画配信SaaS ・EC SaaS ・DM送付SaaS Elixirを実験する助走期間 Elixirプロダクション採用 Elixirプロダクション採用 Elixirエッジサーバ開発 x 2 ・3D点群ゴミ取りサーバ ・IoTデータ収集サーバ 2022年 スマホアプリ案件用APIサーバ x 2 fukuoka.ex発足 kokura.ex発足 autoracex発足 LiveView JP発足 Esuna:データ分析PF x 3 Vue.js/React/Angularアプリ案件用サーバ x 3 介護者応対GoogleHome連携用APIサーバ ElixirImp Vue.js/React/Angularアプリ案件用サーバ x 2 工場内カメラIoT開発 DD.Acadmy ※Eixir教材提供も その他自社プロダクト 社内Elixir勉強会開催 大量行動データ 社内分析ツール を試験的に開発
  18. All Rights Reserved. | CONFIDENTIAL ©︎2021 2017年:GCPがAWSよりも先にElixir対応してくる • AWSは2018年のRe: inventで対応発表したが、その前年にGCP

    は対応してくれたので、その後、AWSよりもGCPを押すマンに (子会社分離後は大人しかったが、Distributed Cloudは期待)
  19. All Rights Reserved. | CONFIDENTIAL ©︎2021 2018年:福岡アルケミストを全国区に知ってもらう • 福岡エンジニア50名と福岡アルケミストのインタビューコラム •

    使い始めたライブラリ…Phoenix 1.4、Jason、EctoSql、Matrex、 LibCluster、ExMatrix、OpenidConnect、GoogleAPIBigQuery、Grpc、 Protobuf、EctoGss、GoogleApi.Gax、Horde、GcsSignedUrl、 RedshiftEcto、EctoJob、、StreamData、ExProgress、PrometheusEx
  20. All Rights Reserved. | CONFIDENTIAL ©︎2021 2019年:他のElixirコミュニティが活発化+海外進出 • kokura.ex &

    Elixir |> College発足、Lonestar ElixirConf登壇 • 使い始めたライブラリ…LiveView、Broadway、Pelemay、Avrora、 K8s、EctoJson、FastHtml、GoogleAPIYouTube、Scenic、Nerves
  21. All Rights Reserved. | CONFIDENTIAL ©︎2021 All Rights Reserved. |

    CONFIDENTIAL ©︎2021 We jacked Kokura castle and had ElixitConf JP with over 100 “Alchemists”
  22. All Rights Reserved. | CONFIDENTIAL ©︎2021 2020年:自社/他社問わず、アルケミスト育成に集中 • toB向け専用にElixir自習教材(DVD、e-learning)をリリース ◦

    ポータルサイトもGigalixir+Sphereで約3日の短期間で構築 • 使い始めたライブラリ…Phoenix 1.5、Websockex、Cassandrax、 LiveDashboard、WebDriverClient、ElixirXmlToMap、MockMe、 Benchee、PelemayFp
  23. All Rights Reserved. | CONFIDENTIAL ©︎2021 2021年:ElixirのAI・ML元年…遂にゲームチェンジ開始 • ElixirのAI・ML革命となる下記ツールチェーンがリリース ◦

    Nx ◦ Axon ◦ EXLA / Torchx ◦ Livebook ※Chris McCordがFly.ioでLivebook SaaSリリース ◦ Explorer ◦ Scidata などなど • ElixirConf US 2021に日本人アルケミストが4名新たにデビュー • 使い始めたライブラリ…Phoenix 1.6、phx_gen_auth、Nx、Axon、 Exla、Torchx、Tailwind、Livebook、Esbuild、MixCmake、 Dispenser、LimitedQueue
  24. All Rights Reserved. | CONFIDENTIAL ©︎2021 2021年:20個目のElixirコミュニティは凄まじい勢い • autoracex発足 ◦

    週2~3回の開催と、従来のElixirコミュニティに無い凄まじい スピード感(いつ行っても、やってる感じw)
  25. All Rights Reserved. | CONFIDENTIAL ©︎2021 2022年:言語が流行る10年目に入門者向けのブースト① • エンジニアなら誰もが知る「WEB+DB PRESS」にPhoenix特集

    ◦ 平積みは完売、Amazon1位獲得、記念イベントも大盛況 ♦ • 使い始めたライブラリ…Kino、VegaLite、Scidata、Explorer、 EctoSqlite3、LiveData、Ethereumex、ExW3、Wasmex、SaslAuth、 PropertyTable、LiveJson、PhoenixLiveEditable、ElixirDesktop、 AxonOnnx、Ecto3Mnesia ♦ ♦
  26. All Rights Reserved. | CONFIDENTIAL ©︎2021 2023年予測:Elixirエンジニア、1,000万円オーバー続出!! • StackOverflow TopPayment

    第3位を全世界同様、日本でも再 現 https://insights.stackoverflow.com/survey/2021#section-top-paying-technologies-top-paying-technologies
  27. All Rights Reserved. | CONFIDENTIAL ©︎2021 All Rights Reserved. |

    CONFIDENTIAL ©︎2021 この続き(Elixirの今後10年編)は… • 再来週6/28(火)19:30、LiveView JP#7でお話します • 「LiveView JP」でググって、申し込み、遊びに来てください(残り8席)