Slide 1

Slide 1 text

All Rights Reserved. | CONFIDENTIAL ©︎2021 All Rights Reserved. | CONFIDENTIAL ©︎2021 7年前、何をしていましたか?

Slide 2

Slide 2 text

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)

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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