StreamProcessingでAlertingを出すために、Riemannを使い始めました。最近のインフラはDocker上で構築するようにしているので監視対象ホストもDockerコンテナです。StreamProcessingを記述する場合は、ClojureやScalaの関数型言語が適切です。
The New Stack Makers: Adrian Cockcroft on Sun, Netflix, Clojure, Go, Docker and Moreに、
A lot of the best programmers and the most productive programmers I know are writing everything in Clojure and swearing by it, and then just producing ridiculously sophisticated things in a very short time.
とコメントがあります。最近は会社でも10倍の生産性が話題ですが、Productive Programmer
になるにはClojureもマスターしないと。
Dockerオフィシャルのclojure
オフィシャルイメージのclojureを使います。
GitHubのリポジトリは、Quantisan/docker-clojureです。
プロジェクトを作成します。
$ mkdir ~/docker_apps/clojure |
ビルドするだけのDockerfileを作成します。
FROM clojure |
イメージをビルドします。
$ docker build -t masato/clojure . |
コンテナを起動します。
$ docker run -it --rm --name clojuredev masato/clojure /bin/bash |
Leiningen
Leiningenの確認です。Leiningen 2.4.3
が入っています。
$ which lein |
REPLでClojureのバージョンを確認します。Clojure 1.6.0
が入っています。
$ lein new hello-world |
今後の方針
データ分析の環境もそろそろリアルタイムストリーム分析を考えないといけないです。
とりあえずEmacsで開発環境をつくってから、RiemannとLaminaを試してみようと思います。