回答編集履歴

3

誤字訂正

2019/10/01 03:27

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -1,4 +1,4 @@
1
- 質問者のいう様な非常に大きなバイナリになる製品は単一のプロセスで全ての機能を賄う「モノシック」な設計と言えます。
1
+ 質問者のいう様な非常に大きなバイナリになる製品は単一のプロセスで全ての機能を賄う「モノシック」な設計と言えます。
2
2
 
3
3
 
4
4
 
@@ -10,19 +10,19 @@
10
10
 
11
11
 
12
12
 
13
- またモノシックな製品はアップデートが行いにくくなるので結果として単一バイナリのモノシックな構成は小さなプロダクト向けだという認識です。(ウインドウズアップデートがいつも数ギガダウンロードでディスク大量書き換えだと大変ですよね)
13
+ またモノシックな製品はアップデートが行いにくくなるので結果として単一バイナリのモノシックな構成は小さなプロダクト向けだという認識です。(ウインドウズアップデートがいつも数ギガダウンロードでディスク大量書き換えだと大変ですよね)
14
14
 
15
15
 
16
16
 
17
- 巨大な仕組みの場合はおっしゃる通り責任分岐点を見極め、分離したマイクロサービスで構築するのがアップデートも行いやすくなりモノシックのいろんな欠点を回避できます。
17
+ 巨大な仕組みの場合はおっしゃる通り責任分岐点を見極め、分離したマイクロサービスで構築するのがアップデートも行いやすくなりモノシックのいろんな欠点を回避できます。
18
18
 
19
19
 
20
20
 
21
- モノシック製品最大の欠点はとある小さな業務の変更(例えば誤字の訂正)なのに全ての業務を止めて差し替えなければならなくなる点です。
21
+ モノシック製品最大の欠点はとある小さな業務の変更(例えば誤字の訂正)なのに全ての業務を止めて差し替えなければならなくなる点です。
22
22
 
23
23
 
24
24
 
25
- もちろん運用次第ではそれでも構わないということはあるかもしれませんが、こういうリスクを抱えたまま巨大な仕組みをモノシックな設計にわざわざ振ることはしないでしょう。
25
+ もちろん運用次第ではそれでも構わないということはあるかもしれませんが、こういうリスクを抱えたまま巨大な仕組みをモノシックな設計にわざわざ振ることはしないでしょう。
26
26
 
27
27
 
28
28
 

2

文言整理

2019/10/01 03:27

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -38,10 +38,12 @@
38
38
 
39
39
 
40
40
 
41
+ - 数ギガに及ぶバイナリはビルド・運用・維持全てに無理が出る
42
+
41
- - コンテンツとロジックを分けよう
43
+ - まずはコンテンツとロジックを分けよう
42
44
 
43
45
  - Goなら1プロセスサービスで大量の処理を捌けるのはメモリに優しい
44
46
 
45
47
  - 多岐にわたる業務は分離実装の方がメンテしやすい
46
48
 
47
- - ある程度大きな仕組みになってきたらリバースプロキシやロードバランサーを活用しよう
49
+ - ある程度大きな仕組みになる予定ならリバースプロキシやロードバランサーを活用した設計に

1

プロセスとスレッドの事を追記

2019/09/30 14:18

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- Goの場合、1プロセスだけでホストのマルチコア性能を引き出す運用が可能ですその場合、マルチプロセスで性能を稼ぐやり方に比べ冗長なメモリを浪費することが無いのは利点の一つですね。
29
+ プロセス内のメモリは複数のスレッドから参照可能なのでスレッドごとに冗長なメモリを占有する必要はあまりありませんが、プロセスをまたぐ情報は相互参照をOSにより禁止されているのでほとんどの場合は冗長に持たせることになります。Goの場合、1プロセスだけでホストのマルチコア性能を引き出す運用が可能ですのでその場合、マルチプロセスで性能を稼ぐやり方に比べ冗長なメモリを浪費することが無いのは利点の一つですね。
30
30
 
31
31
 
32
32