2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【雑記】Dockerとマイクロサービス

Posted at

前置きとモノシリックアーキテクチャ

だいぶ前に「マイクロサービスアークテクチャ」という名前は聞いたことあるものの、具体的な例がイメージできなかったです。

でも、今回何も知らずに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を使うためには、どんな構成にすべきなのか?
ってなったらこんな感じなのでしょうか?
スクリーンショット 2019-11-12 16.15.43.png

なんか、フロント、サーバサイド、データ、ってな感じで小さい単位になった気がする。。。
フロントとサーバサイドを通信させる、っていう頭はなかったので、目からウロコでした。

というわけで、もう少し色々勉強してアプリ作成まで頑張ります!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?