質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.46%

  • Webサイト

    1312questions

    一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

  • Webサーバー

    505questions

    Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

マイクロサービスについて

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 667
退会済みユーザー

退会済みユーザー

マイクロサービスとモノシリックなサービスの違いがよくわかりません。
http://kimitok.hateblo.jp/entry/2014/11/09/211820#f-e2a596b6
こちらのwebサイトを参考にしました。
「マイクロサービスに関する説明をするにあたり、モノリシック(一枚岩)スタイルとの比較することは効果的です: モノリシックアプリケーションは単一のユニットとして構築されます。エンタープライズアプリケーションはしばしば3つの主要な部分から構成されます: クライアントサイドのUI(HTMLページとユーザ端末上のブラウザで実行されるjavascript)、データベース(共通に用いられ、通常リレーショナルであるデータベース管理システムに挿入された多数のテーブルから構成される)、及びサーバサイドのアプリケーションです。サーバサイドアプリケーションはHTTPリクエストを取り扱い、ドメインロジックを実行し、データベースから更新されたデータを抽出し、ブラウザに向けてHTMLによるビューを作成、送出します。このサーバサイドアプリケーションはモノリス - 単一の論理的な実行可能ファイル*2です。システムに対するどんな変更もサーバサイドアプリケーションの新しいバージョンの構築・デプロイに関連します。」

従来のwebシステムはモノシリックなものだと思うのですが、モノシリックという言葉がしっくりきません。
モノシリックとは言いつつも、上記のようにフロントサイド、DB、バックエンドに分かれているではないかと思ってしまいます。
もちろん、マイクロサービスではバックエンド、フロントサイト、DBはより細分化されているわけなんですが、「モノシリック」という言葉は相対的に見て、マイクロサービスに比べると一枚岩である、という意味で使われているのでしょうか?

回答お願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

最初にお断りしておきますと以下の説明は、上記エントリにあるような
マーチン・ファウラー氏らがどう考えているかを忠実に伝えるのではなく、
たんにこう解釈すれば分かりやすい、と思っている私の個人的な考えです。


モノシリックという言葉がしっくりきません。

お気持ちは分かるような気がしますが、
その違和感は、最近のWebアプリだけを想定しているからです。

インターネット以前の時代からの
大きな流れを考えると分かりやすいと思います。

従来のwebシステムはモノシリックなもの

むしろそもそも、従来のWebサービスが、Web以前と比較して、
すでにマイクロサービスだったのではないでしょうか。


「マイクロサービス」という言葉自体については、
ASPをクラウドと言い直すようなたんなる言葉の問題だから、
別にそうありがたがる必要もないですが、その背景は重要です。

そこで「分散システム」とでも言い換えておきましょう。
大型汎用機の時代からパーソナルコンピュータの時代になったとき、
もうすでに分散システムの時代になりました。

オブジェクト指向はパソコンの内側を、
インターネットはパソコンの外側を、
分散システム化する技術だと見るとスッキリします。

フロントエンドとバックエンド、あるいはDBもHTMLもXMLもMVCも、
Webの技術はみんな、広義の分散システムの技術の一部です。
(そう捉えている人は多くないでしょうが、分かりやすいとは思います)

ほかにもたとえば、アジャイルなどは分散開発とでも言えますし、
並列処理なども分散システムで、関数型言語は参照透過性によって
それを実現しやすくする仕組みと見ることもできるでしょう。


このように、分散システムを中心に置くと、さまざまな技術の潮流を理解できます。

ただ、何でもかんでも、分散、分散、と私が言っていると、
「なんでそうなるのか」と別の違和感が生じるかもしれません。

それは、人間社会自体が分散システムだからです。

人間はひとりひとり分散して存在しているので、
パソコンだろうとインターネットだろうと、
機械を人間側に歩み寄らせた結果が分散化なのです。

分散システム化はここ何十年かのコンピューティングの歴史の本流なので、
それ自体はまったく正統的な考え方だと思います。

ただ、クラウドとかの流れに乗って、マイクロサービスと
最近言い出したことについては、好みが分かれると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/31 17:03

    こんにちは。
    「経済は分業と交換である」って話を思い出しました。
    「マイクロサービス/モノシリックサービス」って表現は
    自分もどうかと思いますが、英語圏の人はそうでもないのかなあ?

    キャンセル

  • 2016/08/31 17:51

    https://www.infoq.com/jp/news/2014/03/microservices-soa

    こんにちは。「マイクロサービスって、SOAの焼き直しなんじゃないの?」
    という意見は英語圏でも出ているみたいですね。詳しい事情は知りませんが。

    ただ、このタイミングで言い換えたのは、ASP→クラウドと同じで、
    PCアプリからWebアプリへの流れがあるから、時代の節目なんだと思います。

    キャンセル

  • 2016/08/31 18:00

    情報ありがとうございます。
    時代のうねり的な現象かもしれませんね。

    キャンセル

  • 2016/09/01 23:04

    非常に興味深い回答でした。
    求めている以上のものが得られた気がします。

    一つだけもしかしたら私が誤解しているかもしれないと感じた点がありましたので、そこの部分を教えていただければ幸いです。
    「インターネットはパソコンの外側を、分散システム化する技術」とおっしゃっていますが、これってどういう意味なのでしょうか?
    自分のコンピュータの外側を考えると、webサーバやDNSサーバ等のいろいろな機能が分散して存在しているわけですが、これは昔のホストコンピュータが全ての機能を担っていたのに対して言っているのでしょうか?
    つまり、昔の考えのままで発展していたとしたら、今のインターネットというのは恐らく一台の全ての機能を併せ持ったコンピュータによって、担われているはずだが、そうではなくて、いろいろな機能を担うコンピュータが無数に存在していることで実現できている。
    その様子を「分散システム」と比喩されているのでしょうか?

    キャンセル

  • 2016/09/02 00:17

    >非常に興味深い回答でした。
    ありがとうございます。

    >どういう意味なのでしょうか?
    インターネット以前に、ネットワーク自体が分散システムと考えます。
    「ネットワーク=分散システム」と、ごく単純な意味で言っています。

    大ざっぱに言うと、OOPもLANもPARCのAltoが普及させたもので、
    コンピュータをケーブルでつなぐ発想すら、昔は当たり前ではありません。

    インターネットの前身のARPANETも、最初はたった四台のネットワークでした。
    DNS以前に「クライアントとサーバ」のような基本的な概念も分散化と考えます。

    キャンセル

  • 2016/09/02 21:05

    回答ありがとうございます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.46%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Webサイト

    1312questions

    一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

  • Webサーバー

    505questions

    Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。