理想的な世界では、モノリスのソースコードを取得し、そのコードをマイクロサービス間で分割し、それらを接続して同じシステムを取得できますが、新しいアーキテクチャを使用します。これは人生では決して起こりません。人生はこの完璧な絵に多くの複雑さをもたらします。マイクロサービスの移行予算を2倍または3倍にすることができる具体的な課題は何ですか?
マイクロサービスへの移行を遅らせ、当初の予想よりもはるかに高額になる要因について説明します。これらの要因を評価するためのチェックリストを受け取り、移行予算の計算をより現実的にします。
ArchDays2020でこのトピックについて話しました。リンクをたどって、スピーチのスライドとビデオ(まもなく公開される予定)を見つけますhttps://blog.byndyu.ru/2020/12/archdays-2020.html。
#1マスターデータの操作方法を変更する
モノリスには通常、多様なマスターデータを含む1つまたは2つの大きなデータベースがあります。モノリス自体には、このマスターデータを管理するコードが含まれています。たとえば、データベースの「緑」の部分がアドレスディレクトリである場合、「緑」のモノリスコードがアドレスを制御します。モノリスデータベースには多くのマスターデータがあり、モノリスコードには多くのマスターシステムがあることがわかります。
マイクロサービスでは、マスターデータの管理が異なります。データベースが多数あり、マイクロサービス間でマスターデータを混在させることはできず、1つのマイクロサービスのみがマスターデータを管理できます。たとえば、「グリーン」マイクロサービスはアドレスを含むデータベースを受信し、このマスターデータに変更を加えることができるのは彼だけです。他のマイクロサービスは、アドレスを使用してデータを読み取ることができますが、「グリーン」マイクロサービスを介してのみ読み取ることができます。
- - . , :
,
,
,
- ,
"" ,
,
.
- - .
9 , - .
№2
, - . , , , , .
, . - "" . .
( ), (. .4).
. , , . , , , .
№3
, -, , -. . “”:
IT-, - -. , API .
№4
:
№5 SLA
SLA . . , , , API. SLA, .
SRE , SLO, SLA = SLO + .
, SLA :
SLA , SLA, , . .
№6
, , CI/CD -, . , fault tolerance : , .
, "" , :
-, , , chaos engineering.
, Circuit Breaker Tolerant Reader.
: service discovery, health-check,...
№7
-, , ""?
: - (build-and-run team) . . . :
. , Service per team.
InnerSource, . InnerSource .
: , , . , , . , , .
, . .
, , . :
, . , , . .
№8
, . , , . . , .
, . , SOAP, protobuf, WCF, .NET Core, WCF . , . , .
, .
№9
, . .
. , , "" - . , . - , . .
№10
, . . , , , .
, :
, .
.
.
, , . , :
-
-
IT-
SLA
fault tolerance
, .
, , ? , , AgileDays 2017 microservices.io. , , .
:
The Death of Microservice Madness in 2018, Dave Kerr
The hidden costs of microservices, Wayne Geils, Mike Hostetler
Microservice Trade-Offs, Martin Fowler
Pattern: Microservice Architecture, Chris Richardson
The Hidden Costs of Microservices, Justin Leitgeb
マイクロサービスアーキテクチャスタイルの課題と利点パート1+パート2、AndréFachat