Erlangelixir

Erlang & Elixir

Fest 2019

開催日201961日(土)

永田町 JA共済ビルMAP

#elixirfest

日程
2019年6月1日(土)
開場: 10:00 開演: 10:30
閉会: 19:30
会費(昼食、懇親会費込み)
一般: 6,000円 学生: 3,000円

Erlang & Elixir Fest 2019 に応募する

講演者
KEYNOTE SPEAKER

任天堂 ネットワークシステム部 渡邉大洋

私たちは、家庭用ゲーム機 Nintendo Switch (TM) 向けに、プッシュ通知のシステム「Nintendo Push Notification Service (NPNS)」を開発・運用しています。
NPNS には常に1000万台超のデバイスが接続していますが、日々安定してさまざまな通知を送り続けています。

NPNS の全体像およびインフラ面の構成については別の機会にお話ししたことがありますが、今回の Erlang and Elixir Festでは、特に NPNS の常時接続部分の基盤技術として採用している Erlang/OTP、およびその上で動作する OSS である ejabberd に重点を置いて説明します。

具体的には、NPNS に求められる要件に対して、
・Erlang/OTP および ejabberd を選定するに至った理由
・事前の負荷試験/障害試験を受けて行った NPNS ならではのカスタマイズ
・実運用上で直面した課題とその分析・対策の内容
などをお話しします。
NPNS で対応してきた課題の多くはWebシステム開発において普遍的なものですのでErlang/OTP になじみが無い方にも参考になる内容があると考えております。

なお NPNS は現在、企画・開発・運用をすべて社内のメンバーで行っていますので、任天堂のネットワークサービス開発における考え方や実際の開発の雰囲気の一端を皆様に感じとっていただける機会になれば幸いです。

セッション一覧
Sessions

超並列高速実行処理系 Hastega 〜 Lonestar ElixirConf 凱旋帰国

山崎 進

Qiitaで連載され,論文も複数本数発表され,さらには Lonestar ElixirConf でセンセーショナルな世界デビューを果たした超並列高速実行処理系 Hastega の凱旋帰国講演です!

しかもおそらく本イベントのある6月までには,ファーストリリースバージョンを公開できるか,秒読みに入るのではないかと予測しています。

Hastega は,可読性に優れる Enum.map とパイプライン演算子を組み合わせた有限長のリスト処理を,SIMD命令やマルチコア,GPUを駆動するネイティブコードに変換して高速実行する処理系です。プロトタイプ実装では,純粋なElixirコードの4〜8倍にも及ぶ実行速度向上を達成しています。

本発表では,瞬時にわかる Hastega プログラミングのやり方を紹介し,動作原理や内部構造を紹介し,将来展望を示します。厨二病の血が騒ぐ発表に仕上げていきたいと思います。

Nervesが開拓する「ElixirでIoT」の新世界

高瀬 英希

Nervesってご存知でしょうか?
"Craft and deploy bulletproof embedded software in Elixir"のスローガンのもと,ElixirでIoTデバイスの開発を実現できるフレームワークです.Raspberry PiやBeagleBoneなどを対象として,数十MB程度の省メモリでElixirアプリの駆動を可能とします.mixツールに統合されたビルドシステム,GPIOやI2CなどIoTデバイス制御のための豊富なデバイスドライバ・ライブラリ,NervesHubを介したクラウド経由のセキュアなファームアップデート,Phoenixと連携したリアルタイム通信とデータ可視化と,そのエコシステムの完成度は目を見張るものがあります.本発表では,IoTシステム開発のライブデモを交えながら,Nervesの概要ならびに現状と目指しているところを紹介します.

発表者はLonestar ElixirConf 2019に参加してきました.Nervesのコア開発者からTrainingを直接受講してきて,多くのNerves技術者の発表を聴講して議論してきて,その動向に大いに衝撃を受けました.Austinで得てきたこれらの知見と経験について,日本の全てのElixir技術者の皆さまとこの技術を共有したいと思います.

工場の制御をElixirで 〜ラダー・ロジックを実行する〜

菊池 豊

ラダー・ロジックに代表される工業制御用の組込技術とクラウドに代表されるICT技術の融合を考えています。これらが融合することでいわゆる IoT 環境の成長の加速が見込まれます。一方で工業制御の背景とクラウド技術の背景はかなり異なっており、融合を加速する手法が必要です。
Erlang VM をベースとする Elixir は多数の軽量プロセスを容易にかつ安全に生成して並行動作させることが可能です。これはハードウェアとソフトウェアの中間の概念を構成するのに都合が良く、工業制御エンジニアとクラウドエンジニアの双方が理解可能な技術的な層を実現することが可能と考えています。
今回は、ラダー・ロジックで表現した制御プログラムを Elixir プログラムに変換して実行する技術を披露したいと思います。

Elixir プロセス 入門

幾田 雅仁

Elixir の強み「プロセス」の基礎を解説いたします。
Elixir 初学者がつまづきやすいポイントですが、わかりやすく解説したいと思います。

またお昼休みに Elixir 入門者向けのハンズオンセッションがあります。
ハンズオンセッションにスムーズに入れるようにお伝えしていきます。
ぜひ、他の言語とは大きく異なる Elixir の強み「プロセス」をご体験ください。

※ハンズオンセッションの中でも、Elixir 入門者に向けたサポートは手厚く用意されております。

ElixirでやるDDD (ドメイン駆動設計)short session

ne_Sachirou

ここ数年でElixirの利用事例も増え、Erlang/Elixirでのconcurrencyの設計法は以前よりよく知られるようになってきました。
Elixirは関数型言語でもあります。Elixirのconcurrencyの肝であるmessage passingは、message queueの処理やデータのコピーがパフォーマンスの足枷になりやすく、多くの計算を行うシステムではmessage passingに頼り過ぎない設計を行う必要があります。
プロセスに頼らない関数型言語としてElixirを見ると、「大域的な状態を持たない」「データが不変」「再代入が明示的」であるという、よい性質を持ちます。しかしこれらの性質は、複雑かつ拡張されてゆくシステムを作るときに壁になります。というのも、そういった設計法は従来OOPの文脈で考察され、大域的な状態を持ち暗黙的にデータが変更されるという前提で議論されてきたからです。
本発表では私が2年間Elixirで開発してきた経験から見つけ出した、拡張されてゆくシステムを関数型Elixirで作るときの設計法をお伝えします。

Phoenix1.4とVueによるサービス構築のノウハウshort session

山口 強

スポーツ関連事業のプロダクトにおいて、Phoenix1.4とVueを用いた管理ツール、およびモバイルアプリ内で使用するWebviewの構築を行いました。
管理ツールでは、Digestによるファイルのハッシュ化、Plugによるスネークケースとキャメルケースの自動変換、CircleCIによるDialyzerの定時実行の仕組みを構築しています。またWebviewではPhoenix1.4から採用されたWebpackによるJS/CSSファイルサイズの最適化、PhoenixテンプレートビューからVueへの値の受け渡しの仕組みなどを構築しています。
これら、PhoenixとVueを用いた際のノウハウについて共有したいと思います。

Protocol Buffers(proto3) を Elixir で実装するshort session

にく

gRPCがデフォルトで利用しているシリアライズ形式Protocol Buffersは、シリアライズの形式を工夫することで、よく利用する値ほどサイズが小さくかつ解析が容易になっています。

このProtocol Buffersの実装を通じて、Elixirによる1バイトより小さいビット操作の具体例やそのデータを扱いやすく利用するためにEctoへとマッピングする方法などを示し、参加者が独自のプロトコルを実装するときの参考にできるような発表を行います。

4才から24才までプログラミングを教えた結果、高校生にElixirを教えるに至った気付きshort session

YOSUKENAKAO.me

小学校プログラミング必修化を踏まえて、低学年から学べるプログラミング学習教材PETSを作って、プログラミングを教え出した、その後、下は4才から、高学年へMicrobitを利用したJavascript、高校生にC言語と教え、昨年は、新入社員研修でJavaを教えて気が付いた。

小学生プログラミング教育のゴールが15年前の研修と同じでいいのか?

今、教えるべきは未来へ繋がる教育では?そのことから関数型言語を教える教育カリキュラムの検討をし、Elixirを採用。

高校生にElixirを教える授業をして、手応えを感じ、2019年に正式なカリキュラムへ展開することに決めた。

日本のプログラミング教育への懸念と、その解決策としてElixirの素晴らしさを学習コストと高校生に感じた手応えの観点からお話しします。

Designing a (soft) realtime digital events platform for scaleshort session

Ravi Chandra Padmala

In this talk, I will walk through the design and architecture decisions taken while building a digital events platform that can scale up to 1M users. We will go through Umbrella Apps, Supervisor trees and designing GenServer interactions. On umbrella apps, I will talk about how to decide where boundaries must be drawn. When discussing supervisor trees, I will walk through how the tree can be designed to allow for easy process management. And when discussing GenServer interactions, I will talk about the practical considerations of deciding between a call, cast and a info message; process registration and how that affects process interactions amongst other things.

XFLAG × スポーツ × Elixir

村山 寛明

株式会社ミクシィのスポーツ事業でElixirを用いたアプリケーション開発を行っており、protobufを使ったAPIの自動生成やk8sを利用したアーキテクチャや所感などを紹介をします。なおこのアプリケーションは発表時には公開されていない可能性があるのでサービス内容には言及できない可能性があります。

Serverless BEAM with FaaS

大原 常徳

Webサービスの基盤となるアーキテクチャは、クラウド、コンテナ、そしてサーバーレスと年々進化しています。Webサービスのプログラミングパラダイムをサーバーレスにする事で大きなパラダイムチェンジが起こります。
今回のセッションではAWS LambdaとPhoenixのWebアプリ作成の開発を例に以下のトピックについて紹介します。

1) サーバーレスアーキテクチャの進化と歴史
2) サーバーレスアーキテクチャの長所と短所
3) Elixirをサーバーレス環境で動かす方法
4) サーバーレスElixirに足りないもの
5) サーバーレスElixirアプリの運用
6) まとめ

このセッションは以下の方を対象としています。

・Serverlessで開発を行いたいElixirエンジニア
・Elixirアプリを運用するインフラエンジニア
・開発効率を上げたいWebアプリケーション開発者

ロマサガRS における Elixir サーバー開発実践 〜生産性を上げてゲームの面白さに注力

梶原 星平/関山 友輝

「ロマンシング サガ リ・ユニバース」( ㈱スクウェア・エニックスより配信)は、Elixir でサーバーを開発しました。アカツキとして Elixir でゲームをリリースするのは初めてでしたが、ETS を用いたオンメモリデータや、Dialyzer による型チェック、加えて Erlang VM の高い並列性を活用することで、安全な作りと高速なレスポンスタイムを担保しながら機能開発をスピーディに進めることができ、ゲームの面白さに注力することができました。

本セッションでは、ロマサガRSのアプリケーション構成や開発フローなどを話し、Elixir で安心してモバイルゲームのサーバーを開発できることを示します。また、アーキテクチャやインフラ運用にも触れ、プロダクションで運用するポイントを紹介します。最後に、Elixir で大規模負荷に対応する中で遭遇した、ややディープな問題解決の Tips を共有します。

Erlang/OTP で作るリアルタイムサーバー

清水 佑吾

主にスマホアプリが利用する, 常時接続型の Pub/Sub サーバーを Erlang/OTP で開発・運用するにあたっての設計・考慮事項などをご紹介します.

Erlang/OTP で WebRTC と QUIC

voluntas

Erlang/OTP を利用した WebRTC パッケージ製品についてお話します。QUIC も実装しているのでおまけで。

ハンズオン : 昼食休憩中メインホールにて

Erlang & Elixir Fest 2019 に応募する

ライトニングトークについて
Lightning Talk

  • KISS からはじまる Elixir on Kubernetes
    Takanori Ishikawa
  • Erlang in Anger を有志で翻訳した話
    mookjp
  • Mix ProjectのConfigとmix release
    松澤 有
  • Elixir黒魔術入門
    tamanugi
  • Phoenix LiveViewで結婚式用Twitterを作った話
    古賀 祥造
  • Enum.mapから始めるElixirデータサイエンス
    piacere
  • Elixir でのゲーム開発事例
    熱田 亮
  • ElixirでFPGAハードウェアが作れちゃう,かも!!?
    高瀬 英希
ライトニングトークに応募する
Lightning Talk

地図
Map

スポンサーについて
Sponsors

GOLD SPONSORS

access

akatsuki

dricom

gumi

mixi

SILVER SPONSORS

dwango

Powered by

スポンサーについてご興味を持たれた企業様はメール(elixirfestjp@gmail.com)にてお問い合わせお願いします。