GoogleとNetflixがオープンソースのカナリア分析ツールを共同開発、プロダクションレベルの問題発掘を目指す

【抄訳】
GoogleとNetflixが今日(米国時間4/10)、Netflixが内製したカナリア分析ツールを一般公開することになるオープンソースのプロジェクトKayentaのローンチを発表した。Kayentaは、Netflixで育った継続的デリバリのプラットホームSpinnakerに統合されており、それはパブリックかプライベートかを問わずほとんどすべてのクラウドで使える。今回のリリースはSpinnakerにフォーカスがあるが、しかしKayentaはそのほかの環境にも適応させられる。

カナリア分析は、概念としては単純明快である。その名前が示しているように、サービスやインフラストラクチャを展開またはアップデートしたときの大きな問題を防ぐための早期警戒システムだ。展開やアップデートの対象をユーザーやサーバーやネットワークの一部に絞って行うテスト的実施で、カナリア分析は新しいシステムの振る舞いが正しいこと、あるいは前と変わらないことをチェックする。各ステップでシステムはチェックを実行し、その展開やアップデートが、通常のテストでは問題ないが、もっと複雑なプロダクションシステムに投じられたときにも問題が生じないことを、それら各ステップで確証していく。

GoogleのプロダクトマネージャーAndrew Phillipsによると、すでにそれをやっているデベロッパーは多いけれども、しかしそれはしばしば、非公式に行われている。チームがアプリケーションをビルドすると、いくつかのサーバーにデプロイしてみて数分動かし、ダッシュボードに異状が出ていないかチェックする。そんなやり方は人的エラーにつながりやすいし、偏りもありうる。それに対してカナリア分析ツールは、いくつかの測度の値を求めて、そのコードの完成度を客観的に判定する。コードのテストは多くの企業が自動化しているが、その種のテストではコードをプロダクションに投じたときに起きる問題を捉えられないことが多い。とくにそのプロダクション環境がマイクロサービスの集合から成り、それらが予期せざる対話をし始めたような場合には、お手上げとなる。

【後略】
〔以下、技術的な話題よりも、G社N社共同開発の経緯が中心。〕

[原文へ]
(翻訳:iwatani(a.k.a. hiwa

モバイル開発の”継続的インテグレーション”を自動化するCisimple,アプリのHTML5シミュレーションも

Cisimpleは、モバイルアプリケーションの構築と試験と展開過程を自動化してくれる。同社が今日(米国時間4/9)ベータを脱して、その新しい試験プラットホームを全デベロッパに公開する。同社はKickfolio’sのAPIを統合した初めての企業でもある。こちらの新進スタートアップは、iOSのアプリをHTML5を使ってブラウザに持ち込む。

継続的インテグレーション(continuous integration, CI)(日本語)はこのところ、市場としても活気づいてきた。そのきっかけは、試験のためのHerokuと呼ばれるCircleCIが、今年の初めにHerokuのファウンダたちとEric Riesから150万ドルのシード資金を獲得したことだ。Cisimpleは、混み合ってきた市場…Atlassian BambooCloudBees(Java用)、Travis CIなどなど…で自己を差別化するために、モバイル専門で行くつもりだ。HostedCiもその路線だが、まだベータだ。

デベロッパが登録会員になると、CisimpleはそのデベロッパのGitHub上のリポジトリ(モバイル開発用)をスキャンする。デベロッパがそこにコードをアップロード/アップデートすると、Cisimpleが自動的にビルドを行い、試験をし、そのアプリをTestFlightや新進のHockeyAppなどのサービスから展開する。後者は、数週間前にCisimpleを統合したばかりだ。

AngelPadが支えるこのスタートアップがモバイルデベロッパ向けに初めてその扉を開いたのは、昨年の11月で、約1100名の初期ユーザがこのサービスを使った。“立ち上げ直後からたくさんのフィードバックをもらったので、モバイルデベロッパが抱える問題がよく分かった。うちなら、それらの問題解決のお手伝いができる、と確信した”、CEOのKevin Rohlingはそう語る。“彼らの悩みのタネの一つが試験だ。たしかにそれは(モバイルではとくに)現状では本当に難しい。モバイルデベロッパのためにアプリの試験を自動化するサービスは、これまでなかったから”。

Cisimpleのインフラストラクチャの上でデベロッパ企業は、アプリの複数の機種の上でのシミュレーション、ビルド、試験(#)、そして展開(デプロイ)ができる。iOSとAndroidをサポートしているが、(#)試験は今のところiOSのみだ。AndroidはOSやSDKの不統一という問題を抱えているが、しかし自動化の需要が多いのは今現在ではiOSだそうだ。だから、Android対応はとりあえず後回しとなった。

Cisimpleが試験に関して提供するのは、ログや合格/失敗の結果だけではない。たとえば、シミュレーションをやっているときのビデオなどもデベロッパに提供する。“試験を記録したビデオがあれば、細部検討をしやすい。しかしデベロッパが自分で試験をするときは、ビデオまではなかなか手が回らない”、とRohlingは指摘する。“うちは、アプリケーションに関するフィードバックを入手しやすいようにしたい。どこが変わったのか。どこがだめなのか。等々。また、問題をなるべく容易に見つけられるようにしたい。結局うちがやってるのは、モバイル開発をもっとアジャイルな工程にすることだ。今のモバイル開発は、デベロッパの手元ではちぐはぐになりがちだからね”、と彼は言う。

Kickfolioの統合も、注目に値する。開発〜試験の過程では、デベロッパがビルドの結果をブラウザ上で簡単に見られるからだ。だから試験が失敗すると、失敗したという結果だけでなく、ビルドの結果をブラウザ上でクリックしたりして、そのバグを実際に体験できる。Cismpleの顧客がここに載っているから、彼らのKickfolio版アプリを試してみるとよい。Cisimpleの有料ユーザは全員がKickfolioを利用できる。

Rohlingがベータ時のユーザ数などを明かさないのは、数字を公開するのは時期尚早と思っているからだが、ベータに参加したデベロッパの一部はすでに有料ユーザになっている。とくに多いのは、同社の料金体系の中のインディー向けプランだ。

今日(米国時間4/9)サインアップするデベロッパは2週間の無料試用ができる。あるいは、一(ひと)月に30ビルドまでという無料プランもある。有料プランはインディーの月額19ドル、スタートアップの99ドル、大企業の999ドルなどだ。サインアップはここで。

〔継続的インテグレーションの実践参考書の例。〕

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))