Agile Cat — in the cloud

Microservices の調査:Amazon.com におけるマイクロサービス・アーキテクチャとは?

Posted in Amazon, DevOps, On Monday by agilecat.cloud on May 11, 2015
Microservices: The Rise of the Minimal Component Architecture
By Dick Weisinger – May 8th, 2015
http://formtek.com/blog/microservices-the-rise-of-the-minimal-component-architecture/
_ formtek
Microservices are lightweight fine-grained services that can be deployed with middleware or brokers.  The idea behind the approach has been around for some time, but a convergence of technologies, like the cloud, containers and REST/JSON services is making the approach more possible to achieve.
 
Microservices とは、ミドルウェアやブローカーを用いてデプロイすることが可能な、軽量で粒度の細かなサービスのことである。このアプローチの背景となる発想は、ときおり目にすることができるが、クラウドおよびコンテナや REST/JSON といった集約型テクノロジー (convergence of technologies) を、より現実的なものにするための方式だと言える。
 
Rather than build monolithic applications using “big balls of mud with tangled spaghetti code“, a microservice architecture builds many small and focused components that can easily communicate with each other.
 
Dali_11つまり、「もつれたスパゲッティ・コードによる大きな固まり」を用いて、モノリシックなアプリケーションを構築するのではなく、コンポーネントにフォーカスした Microservice アーキテクチャにより、小規模なコードを構築することで、簡潔に相互通信させていこうという考え方に基づいている。
 
Owen Garrett, head of product for Nginx, recently described how Amazon is using microservices.  ”When you go to Amazon.com and type in Nike shoe, over 170 individual applications get triggered potentially from that search — everything from pricing to images of the shoes to reviews of the shoes to recommendations of other products you may want to purchase. Each of those were individual services or subfeatures, if you like, of an application or an overarching experience, and all those were connected via HTTP. Each might be built in different languages. Each of those may have different requirements in terms of the data store, in terms of scaling and automation. Those were the attributes that we saw that were the fundamental anatomy of microservices architecture.”
 
最近のことだが、Nginx の Head of Product である Owen Garrett が、Amazon も Microservices を活用していると記している。具体的に言うと、「 Amazon.com で Nike shoe とタイプすると、170 種類以上のアプリケーションが、起こりうる検索のためにトリガーされる。それにより、探しているクツの価格や画像といった情報から、購入する可能性のあるプロダクトに関するレビューやリコメンデーションに至るまでの、あらゆる可能性がカバーされることになる。 つまり、それぞれのトリガーされたコンポーネントは、あなたの好みのものを探すための、アプリケーションもしくは包括的なエクスペリエンスにおける、個々のサービスやサブ機能といったものであり、そのすべてが HTTP を介して接続される。また、それらが、同一の言語で構築されているとは限らない。さらに言えば、データストアの観点や、スケーリングと自動化の観点において、それぞれの要件を有する可能性もある。それらは、私たちが確認できる特性であり、また、Microservices アーキテクチャの基本的な解剖学だ」と述べている。
 
Benefits of the microservices approach include scalability, agility, and greater resilience.  More specifically, microservice benefits include:
 
Microservices アプローチのメリットそしては、スケーラビリティとアジリティに加えて、高度な弾力性が挙げられる。 それらを具体化すると、以下のようになる。
 
  • Individual components have simpler architecture and design
  • Each component can be built using the right tools and language for the task
  • The design promotes loose coupling and easier maintenance
  • Promoted distributed independent parallel product development
  • Works well alongside new technologies, like Docker
 
  • それぞれのコンポーネントは、シンプルなアーキテクチャとデザインを有する。
  • それぞれのコンポーネントは、そのタスクに応じた適切なツールと言語で構築できる。
  • そのデザインにより、疎結合の考え方と、容易なメンテナンスが促進される。
  • さらに言えば、自律分散型の開発が、平行していて進められるようになる。
  • そして、たとえば Docker のような、新たなテクノロジーとの協調が実現される。
 
Eric Knorr, writer at InfoWorld, wrote that “the payoff [of microservices] is manifold: Services can be updated individually, new applications can be built quickly from existing services, and management actually has greater visibility into who is responsible for what.”
 
InfoWorld のライターである Eric Knorr は、「 Microservices から得られるものは多様である。 つまり、それぞれのサービスを個別にアップデートすることが可能であり、また、既存サービスから新しいアプリケーションを迅速に構築することが可能であり、誰が何に対して責任を負うかという意味で、可視性の高い管理が可能になる」と記している
ーーーーー
On Mondayたしかに、Amazon で探しものをしていると、かなり昔の探しものとの関連性や、ちゃんとカテゴライズされた関連性が生きているという感じで、レビューやリコメンデーションが登場してくるので、ちょっと驚くことがありますが、それが Microservices の威力なのでしょう。 もちろん、それは以前から言われてきた考え方であり、理屈の上で優位性が論じられてきたものなのですが、このように説明してもらえると、とても分かり易いですね。_AC Stamp
ーーーーー
<関連>
Cloud Developer の調査: あなたは DevOp 派? Coder 派? それとも RAD 派?

Comments Off on Microservices の調査:Amazon.com におけるマイクロサービス・アーキテクチャとは?

%d bloggers like this: