【雑記】Dockerとマイクロサービス
前置きとモノシリックアーキテクチャ
だいぶ前に「マイクロサービスアークテクチャ」という名前は聞いたことあるものの、具体的な例がイメージできなかったです。
でも、今回何も知らずにDockerに手を出しました。
で、なんかアプリを作ってみたいと思って、
「せっかくだから、フロントはAngularで〜、サーバーサイドはGolangで〜」
とか呑気に考えていたところ、
。。。あれ? Dockerfile のFROM(ベースのイメージ?)って、
1個しか設定できない?!
Goは「FROM golang:1.9」だし、
Angularは「FROM node:10.8.0-stretch」とか書くの?
え?え?
ってなりました。
長年Javaとかでやってきた自分としては、1つのプロジェクトのなかに、サーバの処理も画面(htmlやcss、js含め)も全部入ってる、というのが普通でした。
で、それらをeclipseとかでボーンって全部開いて全部触る、的な。
なんなら、それら全部が一つのサーバで管理されていて、
下手したらDBすら1台の物理サーバにはめ込まれてしまう。
こんなのが モノシリックアーキテクチャ というのだそうです。
モノシリック(monolithic)とは英語で「一枚岩」っていう意味の形容詞だそうな。
そのままのイメージですね。
一枚岩のようなサーバの上に、全部乗っかってる。
全部のせ。
じゃあ、そもそもマイクロアーキテクチャってなんなの?
マイクロサービスアーキテクチャ
これについては、以下を参照ください。
(きっとこっちをみてもらうとめっちゃわかりやすい)
マイクロサービス(Microservices)は、個々に開発された複数の小さな(マイクロ)サービスを連携させて管理、運営をおこなっていくソフトウェアのアーキテクチャです。
ソフトウェアのエンジニアであるマーチン・ファウラー氏らによって書かれた2014年の記事に登場して以来、一種のバズワードとして知られるようになりました。
https://ec-orange.jp/ec-media/?p=23458
Dockerはよくよく調べてみると、マイクロアーキテクチャを実現するための重要な要素だったようです。
訳もわからないまま、それとは知らずマイクロサービスの入り口に立ってたってことですね。
で、本題に戻る。
じゃあ、AngularとGoでDockerを使うためには、どんな構成にすべきなのか?
ってなったらこんな感じなのでしょうか?
なんか、フロント、サーバサイド、データ、ってな感じで小さい単位になった気がする。。。
フロントとサーバサイドを通信させる、っていう頭はなかったので、目からウロコでした。
というわけで、もう少し色々勉強してアプリ作成まで頑張ります!
Author And Source
この問題について(【雑記】Dockerとマイクロサービス), 我々は、より多くの情報をここで見つけました https://qiita.com/anyanco/items/c237cfd9a372605a58f9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .