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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Webサーバー

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

Webサイト

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

Q&A

解決済

1回答

2640閲覧

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

退会済みユーザー

退会済みユーザー

総合スコア0

Webサーバー

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

Webサイト

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

1グッド

0クリップ

投稿2016/08/31 00:50

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

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

回答お願いします。

LLman👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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

投稿2016/08/31 07:47

LLman

総合スコア5592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takasima20

2016/08/31 08:03

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

2016/08/31 08:51

https://www.infoq.com/jp/news/2014/03/microservices-soa こんにちは。「マイクロサービスって、SOAの焼き直しなんじゃないの?」 という意見は英語圏でも出ているみたいですね。詳しい事情は知りませんが。 ただ、このタイミングで言い換えたのは、ASP→クラウドと同じで、 PCアプリからWebアプリへの流れがあるから、時代の節目なんだと思います。
takasima20

2016/08/31 09:00

情報ありがとうございます。 時代のうねり的な現象かもしれませんね。
退会済みユーザー

退会済みユーザー

2016/09/01 14:04

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

2016/09/01 15:17

>非常に興味深い回答でした。 ありがとうございます。 >どういう意味なのでしょうか? インターネット以前に、ネットワーク自体が分散システムと考えます。 「ネットワーク=分散システム」と、ごく単純な意味で言っています。 大ざっぱに言うと、OOPもLANもPARCのAltoが普及させたもので、 コンピュータをケーブルでつなぐ発想すら、昔は当たり前ではありません。 インターネットの前身のARPANETも、最初はたった四台のネットワークでした。 DNS以前に「クライアントとサーバ」のような基本的な概念も分散化と考えます。
退会済みユーザー

退会済みユーザー

2016/09/02 12:05

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問