トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

MSA(マイクロサービスアーキテクチャ)

[ソフトウェア開発]

ここでは、何かと話題のMSAについていろいろ記載する

"マイクロサービスアーキテクチャ(以下、MSA)という言葉を聞くようになりました。きっかけはファウラーのブログ「Microservices」(2014年3月)ですが

マジか、かなり最近だ

↑ マイクロサービスアーキテクチャの提唱者が何かしら書いているサイト

  • この設計手法の提唱者
    • ジェームズ・ルイス … Wikipediaに記事がない!
    • マーティン・ファウラー … アジャイルソフトウェア憲章作った人なのでかなりすごい(かなり)

MSA(マイクロサービスアーキテクチャ)

In computing, microservices is a software architecture style, in which complex applications are composed of small, 
independent processes communicating with each other using language-agnostic APIs.
These services are small, highly decoupled and focus on doing a small task
 マイクロサービスとは電子計算機の分野におけるソフトウェアの構造(アーキテクチャ)の型の一つである。それは複雑なアプリケーション群を小さく構成し、
 独立した処理系が「言語不可知論」的APIを使用してお互いに通信する。これらのサービス群は小さく、疎結合で小さな仕事を行うことに注力している。

langage-agonosticは言語不可知論と訳したが、これはたぶんイメージが伝わりにくく、Wikipediaにあるように、「Language-agnostic, language-neutral, language-independent, or cross-language」がイメージとして正しいだろう。

つまり言語中立的、言語独立的、または言語横断的(⇒ つまりはXMLやJSONのこと)。

  詳細

Details
Properties of microservices architecture:

・The services are easy to replace
・Services are organized around capabilities, e.g. user interface front-end, recommendation, logistics, billing, etc
・Services can be implemented using different programming languages, databases, hardware and software environment, depending on what fits best

A microservices-based architecture

・lends itself to a continuous delivery software development process
・is distinct from a Service-oriented architecture (SOA) in that the latter aims at integrating various (business) applications whereas several microservices belong to one application only
  • マイクロサービスアーキテクチャの性質
    • サービスは簡単に代替できる
    • サービスは機能や性能を中心にしてまとめられている、たとえばユーザインタフェースとしてのフロントエンド、リコメンド機能、配送、請求、など
    • サービスは異なるプログラミング言語、データベース、ハードウェア、そしてソフトウェア環境を使用して実装可能となる、これらは何がその実装にベストなのかによる
  • マイクロサービスベースのアーキテクチャ
    • サービスそれ自体が継続的デリバリ開発手法にもとづく
    • サービス指向アーキテクチャ(SOA)が複数の様々な(商用)アプリケーションを統合することが目的であることと異なり、マイクロサービスはアプリケーションのみを統合することが目的である

  哲学・指向

Philosophy of Microservices architecture:

・The services are small - fine-grained as a singular business purpose similar to the Unix philosophy of "Do one thing and do it well"
・The organization culture should embrace automation of deployment and testing. This eases the burden on management and operations
・The culture and design principles should embrace failure and faults, similar to anti-fragile systems.
・The services are elastic, resilient, composable, minimal, and complete.

マイクロサービスアーキテクチャの哲学

  • サービスは小さく - 単一の業務目的をもったきめの細かさというのはUNIX哲学の「一つのことを行い、またそれをうまくやるプログラムを書け」に似ている
  • 組織文化はデプロイとテストの自動化を含んでいるべきだ、これは管理と指揮における障害を取り除く
  • 文化と設計の原則は失敗と間違いを含んでいるべきだ、これは壊れやすいシステムに対抗することに似ている
  • サービスは、弾力性があり、柔軟で、各個に構成でき、最小限、かつ完全でなければいけない

お名前: コメント: