tsusuをTsuru Nowでインストールした後、オプションを変更して`/etc/tsuru/tsuru.conf`の設定を変更したかったり、なにか問題があってインストールが中断することがあります。ワンライナーのインストーラーを使うと、手順が見えにくいので再インストールが難しくなり、結局スクリプトを細かくデバッグすることになります。便利なのですが、インストール前の状態に依存するところもあるので、自分でワンライナーインストーラー作成の難しさを感じます。
DockerでオープンソースPaaS - Part3: tsuruインストール
ようやく時間ができたので、さっそくtsuruをIDCFクラウドにインストールしてみます。流行のワンライナーインストールのTsuru Nowがあるのでこれを使います。tsuruのドキュメントはちょっとわかりづらいです。ワンライナーでも何か問題に遭遇するとインストール手順は自分で理解して解決する必要があります。
DockerでオープンソースPaaS - Part2: HTTP Routing
DockerでPaaSを構築する場合、課題となるのはDockerのネットワーク周りです。Dockerコンテナはephemeralなので、Dockerホストの外部からアクセスするときのルーティングの仕組みが必要になります。Herokuの場合HTTP Routingがあります。オープンソースでDynamic HTTP Routingを実現するために、RedisをバックエンドにしているHipachを使うと良さそうです。DokkuやtsuruでもHipachでHTTP Routingを実現しています。Build your own platform as a service with Dockerを読んでいると、ワイルドカードDNSの名前解決にNamecheapを使っています。
DockerでオープンソースPaaS - Part1: はじめに
Dockerをバックエンドに使うオープンソースのPaaSも増えてきて、HerokuのBuildpackを使えるようになったり、CloudFoundryのバックエンドにDockerを使えるようになりました。Deimosの前身Docker-on-Mesosから入ったので、さっぱり意味がわかりませんでした。本当はPaaSって何?で定義が難しいのですが、Dockerエコシステムの拡がりでいろいろな挑戦をしているサービスやライブラリが増えています。自分のやりたいことベースで少しずつ整理していきたいと思います。私の用途だとFlynnやDeisでも規模が大きい感じです。
Python2.7でETL - Part1: pyparsingで構文解析
既存システムのデータベースに保存されている、ユーザーの行動ログを解析することになりました。自分で管理できるアプリケーションなら、好きなようにイベントログをプログラムから出せますが、既存システムは触れないので、データベースからデータを抽出して意味のあるデータにする必要があります。HaskellやANTRLで構文木を勉強したことはあるのですが、当時は日本語をどう扱えばよいかわかりませんでした。今回は情Pythonのpyparsingを使って、日本語を含むUnicodeの構文解析をしてみます。データ分析の8割は加工とクレンジングと言われますが、地味な作業を淡々とやっていきます。pyparsingは、昔からあるPythonの構文解析ツールなのですが、今回初めてです。2日間試行錯誤しましたが、なんとか形になってきました。
Emacs24.3とTypesafeActivatorとENSIMEでScala開発環境
GitHubのensimeのリポジトリはもうすぐDEPRECATEDになるようで、ensime-serverに移動したようです。Emacsのパッケージはensime-emacsになりました。Sublimeからも使われるようになったからでしょうか。Scalaやsbtのバージョン管理やディレクトリ構造は私には複雑すぎです。Scalaな人たちは普通なのでしょうが、どうもこの雰囲気に馴染めません。
Docker開発環境 - Typesafe ActivatorでScalaをインストール
Manningの新刊が出たのでいつものにGrokking Functional Programmingを買ってしまいました。最近Scalaでコードを書いていないので、関数型プログラミングの学習で使ってみようと思います。Scalaの複雑性の原因はsbtにあると思うのですが、どのあたりがSimple Build Toolなのか意味がわかりません。Typesafeのactivatorがその解答だと思います。今回はsbtを直接インストールしないで、Typesafe Activatorから使います。Typesafe ActivatorはWebIDEも付属していて便利ですが、単純にScalaのインストールにも使えます。
IDCFクラウドにCoreOSクラスタを構築する - Part1: CoreOSの準備
IDCFクラウドへCoreOSをディスクへインストールできるようになったので、GCEにCoreOSクラスタで実験した方法で、IDCFクラウド上にCoreOSクラスタを構築してみます。CoreOSはインストールするときにcloud-config.ymlを参照して、SSH鍵の設定やsystemdの.serviceファイルを設定します。IDCFクラウドの場合は、作業マシンと外付けのディスクを用意してインストール済みのディスクを作成します。今回はInstalling CoreOS to Diskを読みながら、IDCFクラウドへのCoreOSディスクインストールを復習します。
Measure All The Things!!とHexoのタグプラグイン
よくxxx All The Things!というイラストを見かけます。VelocityでEtsyのセッションに参加してから、Measure Anything, Measure Everythingを試しています。InfluxDBやTreasure DataのようなTime Series Databaseに、fluentdやcollectdからバシバシ飛ばして、GrafanaやDashingで表示したいのですが、肝心のデータ収集が進みません。DevOpsの文化的な壁もありますが、All The Things!に拘りすぎかも。
DockerでDebian 7 wheezy
GCEのオフィシャルイメージにUbuntuがなくDebianだったりするので、より汎用的なDockerイメージも作っておきたくて、Debianイメージも用意したいと思います。GNU/Linux! InfiniDBのテスト環境を用意するのが目的です。