ニコニコ動画/ニコニコ生放送を支えるシステム Dwango Media Cluster (DMC)。 DMC とその周辺システムは主に Erlang/Elixir で開発されています。 今回はその設計・開発・運用や Erlang/Elixir の強みと、一方で実際に大規模運用する中で遭遇した想定外のヒヤリハットをお話します。。
ニコニコ動画/ニコニコ生放送を支えるシステム Dwango Media Cluster (DMC)。 DMC とその周辺システムは主に Erlang/Elixir で開発されています。 今回はその設計・開発・運用や Erlang/Elixir の強みと、一方で実際に大規模運用する中で遭遇した想定外のヒヤリハットをお話します。。
無効なURLです。 プログラム設定の反映待ちである可能性があります。 しばらく時間をおいて再度アクセスをお試しください。
If you spend any time around the Elixir community, it won’t be long before you come across mention of the state of deployments. As things stand at the start of 2017, they are a little on the rough side: My biggest issue with Elixir is that it’s hard to set up a proper CI/Deployment pipeline. It CAN be done and I’ve done it but nothing “just works” like it does with Node. Try dockerizing a phoenix
2017 年 4 月 1 日に行われた Elixir Conf Japan 2017 の発表者用のメモです。 この資料は公開してあります http://bit.ly/naze-erlang なぜあーらんです、なぜあーらん。 概要 Elixir の話は最初に触れるだけであとは Erlang/OTP の話です。またコードも出てきません。じゃぁ何を話すのかというと、実際にいろいろな分野で Erlang/OTP を利用してきた話をします。実際使ってみてどうだったのかというのも話をします。 ただ、残念ながら話ができる内容がかなり少ないため、事例は少ないです。今回紹介する事例は氷山の一角と思って頂ければ。 実際の事例はおきゃくさまから許可が出ているものだけお話しします。ただ中身のお話しは抑え気味でいきます。 また、 Erlang/OTP を全く知らない人向けには話をしません。すごいE本を読んでいて、E
ここ2年程のelixir人気に伴い, BEAM (つまりerlangとelixir) を使う人が増えました. しかし, let it crashという思想は誤解を残したまま世に広まったように感じています. 郷に入っては郷に従え. let it crashの思想をしっかり理解して実装していきたいものです. 前置き 大層なことを書きましたが, あくまでも個人的な見解であり, ポエムです. Erlang/OTPチームの見解とは異なる可能性がある点に気をつけてください. また, ご意見があればコメント欄に頂ければ幸いです. なお, Elixirのタグも付けていますが, 記事中のコードは全てErlangです. Elixirを書いている人にも知って欲しい, 「届けこの想い!」ということでタグは付けています. これらの点をご承知起きの上で読んで頂ければ幸いです.m(_ _)m let it crashの
Elixir Advent Calendar 2014 23日目です. 動的型付け言語である Erlang で,静的に型エラーをチェックするためのツール Dialyzer というものがあります. 日本語で Web 上に公開されている情報だと33. 型仕様とErlangが一番わかりやすいでしょう. この文章では Dialyzer を Elixir で使う方法をいくつか紹介すると同時に,Dialyzer がどんなものか雰囲気がつかめることを願って書いています. 手動で設定する Programming Elixir という Elixir を始めるとっかかりにするにはとても良い本があります. その中の Appendix 2 に Type Specifications and Type Checking という章があり,Elixir で Dialyzer を使う方法を紹介しています.試してみましょう
[翻訳] Elixirのプロセスアーキテクチャ または私は如何にして心配するのを止めてクラッシュを愛するようになったか にもあるように Elixir においては例外処理は、それを頑張ってなんとかしようとするのではなく、軽量プロセスのコンテキストでむしろすすんでクラッシュさせてしまえ、というのが良い作法である。 クイズ番組で ○ か × か答えを選んで壁に突っ込んだ先に、正解ならクッションが、不正解なら泥水があるという企画があるが、それに喩えるなら 泥水だろうが何だろうが躊躇せずダイブしろ! というのが Elixir 流 (俺調べ) である。 もとい、クラッシュさせてどうするのかというと Supevisor を使って、別プロセスから該当プロセスを監視しておいて、クラッシュしてもアプリケーション全体としては間違いなく動いている状態を保証するのが正しい。 カッとなってちょっとそのための例を書いて
Elixir では Stream モジュールを使って、遅延評価と無限リストを扱うことができるがそれによりエラトステネスのふるいを、Haskell と同じように無限リストを使った記述ができるか・・・というのが今回の試み。結果としては、カッとなれば、できる。 以下、Stream の解説も交えてお届けする。 Enumerable プロトコルと Enum および Stream Elixir の Enum モジュールには map/2 や filter/2 や zip/2 など、コレクション操作に必要な関数が多数実装されている。以下はそのドキュメントの例である。Functions のところに Enum の関数が列挙されているのが分かる。 ちなみにこのドキュメント閲覧は Dash の画面。自分は主に iOS 開発のドキュメント閲覧によく使っているが、見ての通り Elixir のドキュメント参照にも便利。
連絡先リストの役割を果たすJSON APIをビルドしてみましょう。ElixirとPhoenixを使って書きます。 Phoenix はElixirベースのフレームワークで、記述の高速化と、低遅延のWebアプリケーションをできる限り楽しく作成する目的で作られています。ElixirやPhoenixのインストール手順についてはここでは触れません。まず初めに Phoenixのガイド を読んでください。 なぜElixirとPhoenixなのか Erlangは、ポンコツの板金にくるまれたフェラーリのようなものです。ものすごいパワーを持っていますが、見た目が悪いと感じる人が多いのです。WhatsAppはこれを使って膨大な数の接続を処理していますが、見慣れないシンタックスとツールの不足のせいで多くの人が苦労しています。 Elixir はそこを改善したものです。Erlang上に構築されていますが、美しくかつ楽
あの Dave Thomas が書いた『Programming Elixir』を買ったのでぼちぼち読んでいる。 Chapter 1. に Elixir の特徴を巧みに表現した文章があってカッとなったので、引用しておきたい。 Object orientation is not the only way to design code Functional Programming need not be complex or mathematical. The foundations of programming are not assignments, if statements, and loops. Concurrency does not need locks,semaphores, monitors, and the like. Processes are not necessaril
Elixir/Erlang concurrency model is based on the actor pattern which runs on top of BEAM(Erlang Virtual Machine) instead of running directly on Operating System. The actor pattern’s actor is an “Elixir Process” in Elixir programming language. Anatomy of an actor (Elixir/Erlang Process)An Elixir/Erlang Processruns on top of BEAM (Erlang Virtual Machine)has an address (pid)is a completely isolated pr
It’s common that our first experience with debugging in a new language is by printing values to the terminal. Elixir isn’t different: we can use IO.puts/2 and IO.inspect/2. However, Elixir also provides other approaches to debugging. In this blog post, we’ll show you other 2 options: IEx.pry/0 and :debugger. IEx.pry The name “pry” is an old friend in the Ruby ecosystem but it has a different behav
Using with Elixir Specify your Mix dependencies as two-item tuples like {:plug, "~> 1.1.0"} in your dependency list, Elixir will ask if you want to install Hex if you haven't already. Using with Erlang Download rebar3, put it in your PATH and give it executable permissions. Now you can specify Hex dependencies in your rebar.config like {deps, [hackney]}. Getting started Fetch dependencies from Hex
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く