Biaya tersembunyi untuk beralih ke layanan mikro

Dalam dunia yang ideal, seseorang dapat dengan mudah mengambil kode sumber dari sebuah monolit, membagi kodenya di antara layanan mikro dan, dengan menghubungkannya bersama, mendapatkan sistem yang sama, tetapi pada arsitektur yang baru. Ini tidak pernah terjadi dalam hidup. Hidup membawa banyak kerumitan pada gambaran sempurna ini. Apa saja tantangan khusus yang dapat menggandakan atau melipatgandakan anggaran migrasi layanan mikro Anda?





Saya akan menjelaskan faktor-faktor yang menunda transisi ke layanan mikro dan membuatnya jauh lebih mahal dari yang diharapkan. Anda akan menerima daftar periksa untuk mengevaluasi faktor-faktor ini dan akan lebih realistis tentang anggaran transisi Anda.





Saya berbicara dengan topik ini di ArchDays 2020 . Ikuti tautan untuk menemukan slide dan video (akan segera diterbitkan) pidato https://blog.byndyu.ru/2020/12/archdays-2020.html .





# 1 Mengubah pendekatan untuk bekerja dengan data master

Monolit biasanya memiliki satu atau dua database besar yang berisi data master beraneka ragam. Monolit itu sendiri berisi kode yang mengelola data master ini. Misalnya, jika bagian "hijau" dari database adalah direktori alamat, maka kode monolit "hijau" mengontrol alamat. Ternyata ada banyak data master di database monolit, dan ada banyak sistem master di kode monolit:





Di layanan mikro, data master dikelola secara berbeda: ada banyak database, Anda tidak dapat mencampur data master di antara layanan mikro, dan hanya satu layanan mikro yang dapat mengelola data master. Misalnya, layanan mikro "hijau" sekarang telah menerima database dengan alamat, dan hanya dia yang dapat membuat perubahan pada data master ini. Layanan mikro lain dapat membaca data dengan alamat, tetapi hanya melalui layanan mikro "hijau":





- - . , :





  1. ,





  2. ,





  3. ,





  4. - ,





  5. "" ,





  6. ,





  7. .





- - .





9 , - .





β„–2

, - . , , , , .





, . - "" . .





( ), (. .4).





. , , . , , , .





β„–3

, -, , -. . β€œβ€:





IT-, - -. , API .





β„–4

. . , , :





:





  1. API: , , API .. Apigee.





  2. DevOps- IaC .





  3. .





β„–5 SLA

SLA . . , , , API. SLA, .





SRE , SLO, SLA = SLO + .





, SLA :





SLA , SLA, , . .





β„–6

, , CI/CD -, . , fault tolerance : , .





, "" , :





  1. -, , , chaos engineering.





  2. , Circuit Breaker Tolerant Reader.





  3. : service discovery, health-check,...





β„–7

-, , ""?





: - (build-and-run team) . . . :





  1. . , Service per team.





  2. InnerSource, . InnerSource .





  3. : , , . , , . , , .





, . .





, , . :





, . , , . .





β„–8

, . , , . . , .





, . , SOAP, protobuf, WCF, .NET Core, WCF . , . , .





, .





β„–9

, . .





. , , "" - . , . - , . .





β„–10

, . . , , , .





, :





  1. , .





  2. .





.





, , . , :





  1. -





  2. -





  3. IT-









  4. SLA





  5. fault tolerance





















, .





, , ? , , AgileDays 2017 microservices.io. , , .






:





  1. The Death of Microservice Madness in 2018, Dave Kerr





  2. The hidden costs of microservices, Wayne Geils, Mike Hostetler





  3. Microservice Trade-Offs, Martin Fowler





  4. Pattern: Microservice Architecture, Chris Richardson





  5. The Hidden Costs of Microservices, Justin Leitgeb





  6. Tantangan dan manfaat gaya arsitektur layanan mikro Bagian 1 + Bagian 2 , AndrΓ© Fachat












All Articles