في عالم مثالي ، يمكنك فقط أن تأخذ الكود المصدري لوحدة متراصة ، وتقسيم كودها بين الخدمات الصغيرة ، وربطها معًا ، تحصل على نفس النظام ، ولكن على بنية جديدة. هذا لا يحدث أبدا في الحياة. تجلب الحياة الكثير من التعقيد لهذه الصورة المثالية. ما هي التحديات المحددة التي يمكن أن تضاعف ميزانية ترحيل الخدمات المصغرة مرتين أو ثلاث مرات؟
سأصف العوامل التي تؤخر الانتقال إلى الخدمات المصغرة وتجعلها أغلى بكثير مما كان متوقعًا في البداية. ستتلقى قائمة مراجعة لتقييم هذه العوامل وستكون أكثر واقعية بشأن ميزانية الانتقال الخاصة بك.
لقد تحدثت عن هذا الموضوع في ArchDays 2020 . اتبع الرابط للعثور على الشرائح ومقاطع الفيديو (التي سيتم نشرها قريبًا) للخطاب https://blog.byndyu.ru/2020/12/archdays-2020.html .
# 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 ، أندريه فاشات