$30 off During Our Annual Pro Sale. View Details »

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年前、何をしていましたか?

    View Slide

  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)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  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が全滅する

    View Slide

  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のことを誰も知らないので、本採用できず…

    View Slide

  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

    View Slide

  11. All Rights Reserved. | CONFIDENTIAL
    ©︎2021 All Rights Reserved. | CONFIDENTIAL
    ©︎2021
    とは言え、この時点で
    Elixirは性能面としても、
    言語としても、完成していた
    その理由は…

    View Slide

  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が、割と少ない

    View Slide

  13. All Rights Reserved. | CONFIDENTIAL
    ©︎2021 All Rights Reserved. | CONFIDENTIAL
    ©︎2021
    なお2011年頃、生まれる前の
    Elixirは「オブジェクト指向言語」?
    https://www.youtube.com/watch?v=aZXc11eOEpI&t=507s

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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勉強会開催
    大量行動データ
    社内分析ツール
    を試験的に開発

    View Slide

  18. All Rights Reserved. | CONFIDENTIAL
    ©︎2021
    2017年:GCPがAWSよりも先にElixir対応してくる
    ● AWSは2018年のRe: inventで対応発表したが、その前年にGCP
    は対応してくれたので、その後、AWSよりもGCPを押すマンに
    (子会社分離後は大人しかったが、Distributed Cloudは期待)

    View Slide

  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

    View Slide

  20. All Rights Reserved. | CONFIDENTIAL
    ©︎2021
    2019年:他のElixirコミュニティが活発化+海外進出
    ● kokura.ex & Elixir |> College発足、Lonestar ElixirConf登壇
    ● 使い始めたライブラリ…LiveView、Broadway、Pelemay、Avrora、
    K8s、EctoJson、FastHtml、GoogleAPIYouTube、Scenic、Nerves

    View Slide

  21. All Rights Reserved. | CONFIDENTIAL
    ©︎2021 All Rights Reserved. | CONFIDENTIAL
    ©︎2021
    We jacked Kokura castle and had ElixitConf JP
    with over 100 “Alchemists”

    View Slide

  22. All Rights Reserved. | CONFIDENTIAL
    ©︎2021
    2020年:Elixir、遂にランキングトップ3入り!!
    ● Qiita Advent Calendar、プログラミング言語ランキング第2位!!

    View Slide

  23. 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

    View Slide

  24. 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

    View Slide

  25. All Rights Reserved. | CONFIDENTIAL
    ©︎2021
    2021年:20個目のElixirコミュニティは凄まじい勢い
    ● autoracex発足
    ○ 週2~3回の開催と、従来のElixirコミュニティに無い凄まじい
    スピード感(いつ行っても、やってる感じw)

    View Slide

  26. All Rights Reserved. | CONFIDENTIAL
    ©︎2021
    ●5/24、Elixir生誕10周年!!
    ○ ElixirConf EUのDJパーティ動画もどうぞ
    2022年:YouTubeライブやDJパーティで盛り上がる海外

    View Slide

  27. All Rights Reserved. | CONFIDENTIAL
    ©︎2021
    2022年:国内Elixirコミュニティはどの国よりも熱い!!
    朝ラジオ50回突破!! もくもく会100回突破!! 発足5周年記念!!
    世界最多のコミュニティ数 コミュニティが海外進出も支援

    View Slide

  28. 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
    ♦ ♦

    View Slide

  29. All Rights Reserved. | CONFIDENTIAL
    ©︎2021
    2022年:言語が流行る10年目に入門者向けのブースト②
    ● piyopiyo.ex:Elixirはじめての方にも分かりやすく実践ガイド

    View Slide

  30. 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

    View Slide

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

    View Slide

  32. All Rights Reserved. | CONFIDENTIAL
    ©︎2021
    That’s all for my talk
    Thank you very much

    View Slide