最近、Microservicesの話題が盛り上がっていますね。
http://martinfowler.com/articles/microservices.html
その中で、Martin Fowler氏があげているMicroservicePrerequisitesについて、メモがてら。
原文の記事はこちら、日本語訳はPublickeyで公開されているこちら。
前提条件の要素としては以下をあげています。
- Rapid provisioning
- Basic Monitoring
- Rapid application deployment
一方、そのような能力/組織を構成するために同士はCMMやproduct centerd teamsへ構成を変化させていくことが大事かもしれないと述べています。
CMM自体、いろいろ歴史のあるものらしいので、その背景を踏襲した上で有効だと言えるものなのかは別の話しになりそうですが、Microservices自体が万人がだれでも可能/必要となるものではないはずなので、少なからず個人/組織として何らかの指標は必要なのかもしれませんね。
http://martinfowler.com/bliki/MaturityModel.html
個人的には、テストをどう構成して、システム全体を安定的に保つかについて興味あり、いろいろ考えています。Martin Fowler氏が既に述べているような構成を小さくしたり、検出をしっかりしたりすることは基礎的な要素として必要なのは明白です。一方、個々の要素としてではなく、サービス全体として安定してシステムを運用可能にする話しはまだまだです。Distributed Computingの、1つの組織版になるのでしょうかね。そうすれば、Gossip Protocolのようなdecentralisedな構成を保ったうえでの、エラーの自己検出とその監視ができる世界は必要そう。