読者です 読者をやめる 読者になる 読者になる

テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

(akashic report) 4月1日にv1をリリースします

github.com

akashic-storageは, akka-httpとScalaで書かれたS3互換ストレージです. このストレージは, ローカルにマウントされたファイルシステム上にデータやメタデータを保存し, aws-sdk-javaやminio/mcといったツールからのリクエストに応答します.

このソフトウェアの売りは,

  • カジュアルにオンプレのS3が立てられること (Vagrantも用意しています)
  • 既存のNFSやその他分散ファイルシステムの上に構築出来ること
  • AWS S3にデータは置きたくないが, 将来のことも考えてS3 APIで作っておきたい
  • アプリケーションのテスト時にS3に繋ぎたくない
  • Scalaで書かれていて, ErlangRubyで書かれた他のものよりも実行効率が良い
  • Scalaでvalだらけで書かれていて静的型チェックが, 将来のデグレを強力に防止してくれる
  • akka-httpという最新のフレームワークを使っているため, 業界からの視線が熱い (オポオポ

現在は, s3-testsを使ってバグをとっている段階であり, バグは着実に減っています(s3-testsはtravisで実行しているので結果はオープンに共有されています)

v1で提供するものとしては,

  • basic put/get
  • post
  • multipart upload
  • acl
  • location
  • v2 authorization
  • presigend request (for sharing)

提供しないものとしては,

  • put/upload COPY
  • versioning
  • v4 authorization
  • CORS

です.

ざっくりいうと, 「versioningを使わないならば実用にも耐える」というAPIセットです.

v1.0以降は,

  • 約束、後方互換を守ること (シャーロット風
  • versioningを実装する (v1.x予定. 実装コストが高すぎるため)

1.0に向けて:

  • s3-testsのうち失敗してるやつをやばいやつから一つずつ駆逐 (地道). Mac上で実行中のサーバに対して, Vagrant内からs3-testsを個別実行してデバグする仕組みは構築済のため, バグをとるのはただ努力の問題
  • logbackでログを吐くようにする
  • まだ実装してないAPIの実装 (ハードなものはもう終わった)
  • ドッグフーディング (家にサーバを立ててドッグフードを食う)