任天堂 ネットワークシステム部 わたなべ たいよう 渡邉 大洋 私たちは、家庭用ゲーム機 Nintendo Switch (TM) 向けに、プッシュ通知のシステム「Nintendo Push Notification Service (NPNS)」を開発・運用しています。 NPNS には常…
Using Elixir for Factory Automation - how to execute ladder logic
Agenda • 言語の紹介 – Erlang/Elixirの紹介 –エコシステムについて – 環境構築 • 弊社広告事業部での使われ方 – 利用モジュール – サービスの構成 • 所感 – 良い/悪い所 – ハマった所 • まとめ Erlangの紹介 • 平行処理指向のプログラミング言語 • 分散化された環境 •障害耐性(フォルトトレラント) • (ある程度の)リアルタイム性 • 無停止稼動(ホットスワップ) • ActorModel(Shared Nothing Artchitecture) • OTP(Open Telecom Platform) • 超軽量プロセス/メッセージング • GCはプロセスレベルで実行 • Prologチックなsyntax • Immutableな変数 • 単一代入変数(1回しか値を代入できない) • パターンマッチを多用(メッセージパッシングでは特に)
[翻訳] Elixirのプロセスアーキテクチャ または私は如何にして心配するのを止めてクラッシュを愛するようになったか にもあるように Elixir においては例外処理は、それを頑張ってなんとかしようとするのではなく、軽量プロセスのコンテキストでむしろすすんでクラッシュさせてしまえ、というのが良い作法である。 クイズ番組で ○ か × か答えを選んで壁に突っ込んだ先に、正解ならクッションが、不正解なら泥水があるという企画があるが、それに喩えるなら 泥水だろうが何だろうが躊躇せずダイブしろ! というのが Elixir 流 (俺調べ) である。 もとい、クラッシュさせてどうするのかというと Supevisor を使って、別プロセスから該当プロセスを監視しておいて、クラッシュしてもアプリケーション全体としては間違いなく動いている状態を保証するのが正しい。 カッとなってちょっとそのための例を書いて
(注記:6/9、いただいた翻訳フィードバックを元に記事を修正いたしました。) 今回の記事は毎秒300万ものリクエストを処理できるほど強力で高性能なWebクラスタの構築についてのパート1になります。まず初めに、あまり多くはありませんが、私がこれまで使用したことのあるロードジェネレータツールをいくつか紹介します。私のようにてこずって時間をかけてしまわないよう、今回の記事が理解の手助けになれば幸いです。 ロードジェネレータはテストを目的とした数種類のトラフィックを発生させるプログラムです。それによって高負荷においてサーバがどのように動いているか、そのサーバの弱点はどこなのか、などが見えてきます。負荷テストを通じてサーバの限界を知ることは、サーバのレジリエンシーを測定する最適な方法であり、あらゆる問題に対する準備の手助けにもなります。 ロードジェネレータツール 負荷テストをする際に頭に入れておくべ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Lau Taarnskovさんの2015年4月19日付のブログ記事、Elixir - The next big language for the webの翻訳です。 ElixirはErlangのVM上で走る、Rubyにちょっと似た(というのも作者(José Valim)がRuby on Railsのcoreチームメンバーなので)関数型言語です。 2012年に登場していてQiitaでもAdvent Calendarなどが既にあるようですがまだあまり知られていないですね。ElixirとPhoenix Frameworkを組み合わせたものがマ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く