[フレーム]

やむにやまれず

2006年創業の会社を経営する元プログラマ。現在従業員12名(内7名が欧米人)で元気にお仕事中。今はもうコードは書いてないので、いつか復帰したい。@sparklegate

AWS EC2のインターフェイスを受け付けられるだけでなく、相互互換するためのプロジェクトであるWakame-adaptersの開発を始めました。
現時点で実案件のニーズはあるので、作っておけば他に使いたい人も居るかしら...と言う判断です。将来的には、むしろWakameのWeb APIで、AWS EC2をコントロールする方向を考えています。

ただし、色々なところで以前から公言している通り、「AWS EC2のインターフェイスでWakame-vdcをコントロールできる機能をWakame Project内で未来永劫サポートする」ことをお約束するものではありません。

今回はその理由を以下に3つ述べておきます。
  1. AWSのWeb APIは設計が古い
  2. インターフェイスだけではなく、挙動も合わせなければならない
  3. AWSが未来のクラウド像とは限らない
Wakame Projectでは、設計当初からAWSと互換するのを公式サポートするのだけは避けたいと思っていました。元々AWSのインターフェイスはモダンなWeb APIと比較すると仕様的に重くて、開発者に優しくないのです。
今どきXMLを使っているとか、パピルスに記されたクサビ形文字を読めと言っているようなものです。パースの手軽さを失っているので、新しいWeb APIが公開されただけでは気軽に試そうと思えない。そんな人は言語レベルでのアクセスライブラリの提供を待つことになります。(最近は提供速いのかな?)AWSクラスの素晴らしいエコシステムを持っていても、サードパーティがこれらを組み入れるのは更に後のことですし。
AWSもその内軽量のアクセス方法を併用してくるんじゃないかしら、と勝手に思っています。

次に2.についてですが、互換と言うのはインターフェイスだけを合わせれば済む話ではありません。内部の挙動も合わせる必要があります。IPアドレスが決まるタイミングや、ステータスの遷移パターン、例外処理など、期待される動作が一致していなければ動く物も動かないのです。
例えばIPアドレスなんかは、EC2ではインスタンスがブートしてから決まります。しかしWeb APIを利用するプログラムにしてみれば、早期にIPアドレスが決まればコードが簡潔になります。そうした効率的動作はWakame-vdcに組み込めるはずなのに、AWS EC2互換する時には使えないんですね。その辺りはやっぱり開発者に優しくない。

また、いくつかの案件ではEC2にはない特殊な要件がありました。それは互換APIのレベルには無い機能なので、実現すれば互換ではなくなるわけです。AWSと互換する宣言は、自分達の思惑や戦略を捨てて、AWSと同じ物を作ると言う意思がなければ言えない言葉です。
今後も背負っていくには少々重すぎます。

最後は3.です。
皆さんは未来のクラウドは仮想ネットワークが実現されていて、好きなネットワーク構成を自由にデザインできて手に入るようになっているのでは?と夢想したことはありませんか。
Yesと答えた方、そう、あなたです。もうあなたの未来にあるクラウドはAWS EC2と互換していません。AWSが未来のクラウド像であるとは限らないのです。

長々と書きましたけど、まとめると下記の通りです。
  • AWSとWakameは似てるけど、目的が違う物です
  • 目的が違うので、今似ていると言う理由だけで互換を宣言できないです
...と言うことで。

補足


誤解の無いように補足しますが、AWSがダメだと言っているのではありません。
APIのデザインは古くからやり続けて来た歴史的背景もありそうですし、未来のあるべき姿では無いと言うのも、自らのニーズに忠実に設計して生み出されたものであれば、我々が勝手に夢想して未来と思い込んだ物と異なるのは当然かも知れません。まさに今使える物を、欲しい人に届けている。だからAWSは凄い。

どこまでも真っ直ぐだなーと思うわけです。

コメントする

名前
最新記事
人気記事
QRコード
traq

AltStyle によって変換されたページ (->オリジナル) /