αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžšαž…αž“αžΆαž”αŸαž‘αŸ’αž˜αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ (αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 3)

αžŸαž½αžŸαŸ’αžαžΈ Habr αŸ” αžαŸ’αž„αŸƒαž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž”αž“αŸ’αžαž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαžšαžŸαŸαžšαž‡αžΆαž–αž·αžŸαŸαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸƒαžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαžαŸ’αž˜αžΈαž“αŸαŸ‡αŸ” "αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αžšαž•αŸ’αž“αŸ‚αž€αž‘αž“αŸ‹".

αžŸαŸαž…αž€αŸ’αžαžΈαžŽαŸ‚αž“αžΆαŸ†

αž‡αž˜αŸ’αžšαžΎαžŸαž“αŸƒαžšαž…αž“αžΆαž”αŸαž‘αŸ’αž˜αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž‚αžΊαž‡αžΆαž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž˜αž½αž™αž“αŸ…αž–αŸαž›αžŸαžΆαž„αžŸαž„αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αŸαžαŸŒαž˜αžΆαž“αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸŠαŸαžšαžΈαž“αŸƒαž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αžŸαŸ’αž“αžΎαž±αŸ’αž™αžœαž·αž—αžΆαž‚αžšαž…αž“αžΆαž”αŸαž‘αŸ’αž˜αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŠαŸαž–αŸαž‰αž“αž·αž™αž˜αž”αŸ†αž•αž»αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαžΆαž„αžŸαž„αŸ‹ αž αžΎαž™αž†αŸ’αž›αžΎαž™αžŸαŸ†αžŽαž½αžšαžαžΆαžαžΎαž“αŸ…αž–αŸαž›αžŽαžΆαžŠαŸ‚αž›αžšαž…αž“αžΆαž”αŸαž‘αŸ’αž˜αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž–αŸαž‰αž“αž·αž™αž˜αž”αŸ†αž•αž»αžαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž”αž‘αž”αž„αŸ’αž αžΆαž‰ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž‚αžΌαžšαžαŸ’αžŸαŸ‚αžŸαž„αŸ’αžœαžΆαž€αŸ‹αž‘αžΌαž‡αžΈαžαž›αžŠαŸ‚αž›αž–αž“αŸ’αž™αž›αŸ‹αž–αžΈαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž“αŸƒαžšαž…αž“αžΆαž”αŸαž‘αŸ’αž˜αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž–αžΈ monoliths αž‘αŸ… microservices αŸ”

αž€αžΆαž›αž–αžΈαž›αžΎαž€αž˜αž»αž“ αž™αžΎαž„αž”αžΆαž“αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž”αŸ’αžšαž—αŸαž‘αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž“αŸƒ monoliths αž“αž·αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαž˜αžΆαžŸαž’αžΆαžαž»αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž–αž½αž€αžœαžΆ αž‘αžΆαŸ†αž„αž•αŸ’αž“αŸ‚αž€αžŸαžΆαž„αžŸαž„αŸ‹ αž“αž·αž„αžŸαž˜αžΆαžŸαž—αžΆαž‚αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αŸ” αž™αžΎαž„αž™αž›αŸ‹αž–αžΈαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžαž˜αŸ’αžšαž„αŸ‹αž‘αž·αžŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ”

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž“αžΉαž„αž€αŸ†αžŽαžαŸ‹αž›αž€αŸ’αžαžŽαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž˜αžΈαž€αŸ’αžšαžΌαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ”

αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž“αŸƒαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜

αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž™αž›αŸ‹αžαžΆ αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž“αž·αž™αž˜αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžŠαž›αŸ‹αž±αŸ’αž™αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž˜αž»αž“ αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŽαžΆαž˜αž½αž™αž‚αžΊαž‡αžΆαž’αžΆαžαž»αž•αŸ’αžŸαŸ† αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž˜αŸ‚αž“αž‚αŸ’αžšαž”αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αžΊαž‡αžΆαžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌαž‘αŸαŸ”

αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž“αŸƒαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž˜αžΈαž€αŸ’αžšαžΌαžŸαžΊαžœαžΈαžŸ

αž›αž€αŸ’αžαžŽαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž“αŸƒαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž˜αžΈαž€αŸ’αžšαžΌαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‚αžΊαŸ–

  • αžšαŸ€αž”αž…αŸ†αž‡αž»αŸ†αžœαž·αž‰αžŸαž˜αžαŸ’αžαž—αžΆαž–αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜
  • αž•αž›αž·αžαž•αž›αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž‚αž˜αŸ’αžšαŸ„αž„
  • αž…αŸ†αžŽαž»αž…β€‹αž…αž»αž„β€‹αž†αŸ’αž›αžΆαž αž“αž·αž„β€‹αž”αŸ†αž–αž„αŸ‹β€‹αž˜αž·αž“β€‹αžŸαŸ’αž’αžΆαž
  • αž’αž—αž·αž”αžΆαž›αž€αž·αž…αŸ’αž…αžœαž·αž˜αž‡αŸ’αžˆαž€αžΆαžš
  • αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αžœαž·αž˜αž‡αŸ’αžˆαž€αžΆαžš
  • αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’
  • αž€αžΆαžšαžšαž…αž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αžšαžΆαž‡αŸαž™
  • αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžœαž·αžœαžαŸ’αžαž“αŸ (Evolutionary Design)

αž…αŸ†αžŽαž»αž…αž‘αžΈ 1 αž˜αž€αž–αžΈαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžαž˜αŸ’αžšαž„αŸ‹αž‘αž·αžŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌαž‚αžΊαž‡αžΆαž€αžšαžŽαžΈαž–αž·αžŸαŸαžŸαž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ” αž…αŸ†αžŽαž»αž…αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŸαž˜αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž–αž·αž…αžΆαžšαžŽαžΆαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αŸ”

αžšαŸ€αž”αž…αŸ†αž‡αž»αŸ†αžœαž·αž‰αžŸαž˜αžαŸ’αžαž—αžΆαž–αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜

αž₯αž‘αžΌαžœαž“αŸαŸ‡αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž„αž…αžΆαŸ†αž…αŸ’αž”αžΆαž”αŸ‹αžšαž”αžŸαŸ‹ Conway: αž’αž„αŸ’αž‚αž€αžΆαžšαžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαŸ€αž”αž…αŸ†αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžšαž”αžŸαŸ‹αžαŸ’αž›αž½αž“αž…αž˜αŸ’αž›αž„αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸƒαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž“αŸ…αž€αŸ’αž“αž»αž„αž’αž„αŸ’αž‚αž€αžΆαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž™αžΎαž„αž’αžΆαž…αžšαŸ†αž›αžΉαž€αž€αžšαžŽαžΈαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„αž˜αž½αž™αŸ– αž€αŸ’αžšαž»αž˜αž˜αž“αž»αžŸαŸ’αžŸαž”αŸ’αžšαžΆαŸ†αž–αžΈαžšαž“αžΆαž€αŸ‹αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž’αŸ’αž“αž€αž…αž„αž€αŸ’αžšαž„αž…αŸ†αž“αž½αž“αž”αŸ’αžšαžΆαŸ†αž–αžΈαžš αž αžΎαž™αž€αŸ’αžšαž»αž˜αž˜αž½αž™αž˜αžΆαž“αž”αŸ’αžšαžΆαŸ†αž“αžΆαž€αŸ‹αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„αž”αŸ’αžšαžΆαŸ†αž†αŸ’αž›αž„αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž€αŸ†αž–αž»αž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈ monoliths αž“αž·αž„ microservices αž“αŸ„αŸ‡αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ€αž”αž…αŸ†αžŠαŸ„αž™αž“αžΆαž™αž€αžŠαŸ’αž‹αžΆαž“αž˜αž»αžαž„αžΆαžš (backend, frontend, database administrator) αž“αŸ„αŸ‡αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“ monolith αž”αž»αžšαžΆαžŽαŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸαžœαžΆαžαŸ’αž“αžΆαžαžαžΌαž… αž€αŸ’αžšαž»αž˜αžαŸ’αžšαžΌαžœαžαŸ‚αžšαŸ€αž”αž…αŸ†αžŠαŸ„αž™αžŸαž˜αžαŸ’αžαž—αžΆαž–αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜ (αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰ αž€αžΆαžšαžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“ αž€αŸ’αžšαž»αž˜αž€αžΆαžαžΆαž‘αž»αž€)αŸ” αž’αž„αŸ’αž‚αž€αžΆαžšαž“αŸαŸ‡αž“αžΉαž„αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž€αŸ’αžšαž»αž˜αž•αŸ’αžαŸ„αžαž›αžΎαž€αžΆαžšαž€αžŸαžΆαž„αž•αŸ’αž“αŸ‚αž€αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”

αž•αž›αž·αžαž•αž›αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž‚αž˜αŸ’αžšαŸ„αž„

αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž‚αž˜αŸ’αžšαŸ„αž„αžŠαŸ‚αž›αž€αŸ’αžšαž»αž˜αž•αŸ’αž‘αŸαžšαž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž’αž—αž·αžœαžŒαŸ’αžαž‘αŸ…αž€αŸ’αžšαž»αž˜αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‚αžΊαž˜αž·αž“αžŸαž˜αžŸαŸ’αžšαž”αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸƒαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž˜αžΈαž€αŸ’αžšαžΌαžŸαŸαžœαžΆαŸ” αž€αŸ’αžšαž»αž˜αžαŸ’αžšαžΌαžœαžαŸ‚αž‚αžΆαŸ†αž‘αŸ’αžšαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αŸαž‰αž˜αž½αž™αžœαžŠαŸ’αžαž‡αžΈαžœαž·αžαžšαž”αžŸαŸ‹αžœαžΆαŸ” Amazon αžŠαŸ‚αž›αž‡αžΆαž’αŸ’αž“αž€αžŠαžΉαž€αž“αžΆαŸ†αž˜αŸ’αž“αžΆαž€αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž˜αžΈαž€αŸ’αžšαžΌ αž”αžΆαž“αž“αž·αž™αžΆαž™αžαžΆ "αž’αŸ’αž“αž€αžŸαžΆαž„αžŸαž„αŸ‹ αž’αŸ’αž“αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžœαžΆ" αŸ” αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž•αž›αž·αžαž•αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž€αŸ’αžšαž»αž˜αž˜αžΆαž“αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžαžΆαžαŸ’αžšαžΌαžœαž€αžΆαžšαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αŸ”

αž…αŸ†αžŽαž»αž…β€‹αž…αž»αž„β€‹αž†αŸ’αž›αžΆαž αž“αž·αž„β€‹αž”αŸ†αž–αž„αŸ‹β€‹αž˜αž·αž“β€‹αžŸαŸ’αž’αžΆαž

αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ SOA αž”αžΆαž“αž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αž…αŸ†αž–αŸ„αŸ‡αž”αžŽαŸ’αžαžΆαž‰αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„ αž‡αžΆαž–αž·αžŸαŸαžŸαžšαžαž™αž“αŸ’αžαž€αŸ’αžšαž»αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŸαž αž‚αŸ’αžšαžΆαžŸαŸ” αžŠαŸ‚αž›αž‡αžΆαžšαžΏαž™αŸ—αž“αžΆαŸ†αž‘αŸ…αžŠαž›αŸ‹ Error Spaghetti Box αž“αŸ„αŸ‡αž‚αžΊαž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž“αŸƒ monolith αž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžšαžœαžΆαž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ” αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ Microservice αž”αŸ’αžšαžΎαžαŸ‚αžœαž·αž’αžΈαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžŸαžΆαž˜αž‰αŸ’αž‰αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αž’αž—αž·αž”αžΆαž›αž€αž·αž…αŸ’αž…αžœαž·αž˜αž‡αŸ’αžˆαž€αžΆαžš

αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž’αŸ†αž–αžΈαžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌαž‚αž½αžšαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αžŠαŸ„αž™αž˜αž“αž»αžŸαŸ’αžŸαžŠαŸ‚αž›αž–αž·αžαž‡αžΆαž’αž—αž·αžœαžŒαŸ’αžαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž˜αžΈαž€αŸ’αžšαžΌαŸ” αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž˜αžΆαž“αž“αŸαž™αžαžΆαž‡αž˜αŸ’αžšαžΎαžŸ
αž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™ αž€αž·αž…αŸ’αž…αžŸαž“αŸ’αž™αžΆαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαžΆαž’αžΆαžšαžŽαŸˆαŸ”αž›αŸ”

αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αžœαž·αž˜αž‡αŸ’αžˆαž€αžΆαžš

αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ‚αž˜αž½αž™ αž˜αž·αž“αž’αžΆαž…αž‚αž·αžαž‚αžΌαžšαž–αžΈαž—αžΆαž–αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αžΈαž˜αž½αž™αŸ—αž”αžΆαž“αž‘αŸαŸ” MSA αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αžΉαž„αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αžœαž·αž˜αž‡αŸ’αžˆαž€αžΆαžš αžšαž½αž˜αž‘αžΆαŸ†αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž•αŸ’αžŸαŸαž„αŸ—αŸ”

αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’

MSA αž‚αžΆαŸ†αž‘αŸ’αžšαžŠαž›αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™ αž“αž·αž„αž…αŸ‚αž€αž…αžΆαž™αž”αž“αŸ’αžαŸ” αž“αŸαŸ‡αž’αžΆαž…αžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αžαŸ‚αžŠαŸ„αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸαŸ‡ αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ†αž›αŸ‚αž„αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž‚αž½αžšαž±αŸ’αž™αžαŸ’αž›αžΆαž…αž‘αŸ€αžαž αžΎαž™αŸ” αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž‚αž½αžšαžαŸ‚αž‚αž½αžšαž±αŸ’αž™αž’αž»αž‰αž‘αŸ’αžšαžΆαž“αŸ‹αŸ” αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΈαž–αžΈαžšαž‚αžΊαž‘αžΆαž€αŸ‹αž‘αž„αž‘αŸ…αž“αžΉαž„αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž™αžΆαž€αžΆαžŸαž•αž›αž·αžαž•αž›αŸ” αž”αžΎαž‚αŸ’αž˜αžΆαž“αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜αž‘αŸ αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž”αžšαž·αž™αžΆαž€αžΆαžŸαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαž˜αž·αž“αž’αžΆαž…αž‘αŸ…αžšαž½αž…αž“αŸ„αŸ‡αž‘αŸαŸ”

αž€αžΆαžšαžšαž…αž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αžšαžΆαž‡αŸαž™

αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ MSA αž‡αžΆαž…αŸ’αžšαžΎαž“αž„αžΆαž™αž“αžΉαž„αž”αžšαžΆαž‡αŸαž™αŸ” αž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸαŸ‡ αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αŸ†αž αž»αžŸαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž…αŸ‚αž€αž…αžΆαž™αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž€αž·αž…αŸ’αž…αž€αžΆαžšαžαžΌαž…αžαžΆαž…αž‘αŸαŸ” αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αž—αžΆαž–αž’αž“αŸ‹αž“αžΉαž„αž€αžΆαžšαž”αžšαžΆαž‡αŸαž™αž”αŸ‚αž”αž“αŸαŸ‡αŸ” Rebecca Parsons αž‚αž·αžαžαžΆαžœαžΆαž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹αžŠαŸ‚αž›αž™αžΎαž„αž›αŸ‚αž„αž”αŸ’αžšαžΎαž€αžΆαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαžœαžΆαž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‘αŸ€αžαž αžΎαž™ αž•αŸ’αž‘αž»αž™αž‘αŸ…αžœαž·αž‰ αž™αžΎαž„αž„αžΆαž€αž‘αŸ…αžšαž€ HTTP αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„ αžŠαŸ‚αž›αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž˜αž·αž“αž‚αž½αžšαž±αŸ’αž™αž‘αž»αž€αž…αž·αžαŸ’αžαŸ”

αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžœαž·αžœαžαŸ’αžαž“αŸ (Evolutionary Design)

αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’ MSA αž‚αž½αžšαžαŸ‚αž’αž—αž·αžœαžŒαŸ’αžαž€αžΆαžšαžœαž·αžœαžαŸ’αžαž“αŸαŸ” αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž…αŸ†αž–αŸ„αŸ‡αž–αŸ’αžšαŸ†αžŠαŸ‚αž“αž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαŸ‚αž˜αž½αž™αŸ” αž•αž›αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αž›αžΎαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž€αŸαžαŸ’αžšαžΌαžœαžαŸ‚αž™αž€αž˜αž€αž–αž·αž…αžΆαžšαžŽαžΆαž•αž„αžŠαŸ‚αžšαŸ” αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž”αŸ‚αž”αž”αŸ’αžšαž–αŸƒαžŽαžΈαž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž–αŸ’αž™αžΆαž™αžΆαž˜αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αŸ†αžŽαŸ‚ αž”αŸ‰αž»αž“αŸ’αžαŸ‚ MSA αžŸαŸ’αž“αžΎαž±αŸ’αž™αž”αŸ’αžšαžΎαž€αŸ†αžŽαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„
αž‡αžΆαž˜αž’αŸ’αž™αŸ„αž”αžΆαž™αž…αž»αž„αž€αŸ’αžšαŸ„αž™αŸ”

αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαžΆαž„αž›αžΎ αž™αžΎαž„αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž“αžΌαžœαž’αŸ’αžœαžΈαž‘αŸ…αž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž˜αžΈαž€αŸ’αžšαžΌαŸ” αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ Microservice αž‚αžΊαž‡αžΆαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž˜αž½αž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαŸ‚αž˜αž½αž™αž‡αžΆαž”αžŽαŸ’αžαž»αŸ†αž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαžΌαž…αŸ— αžŠαŸ‚αž›αž“αžΈαž˜αž½αž™αŸ—αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αžŸαŸ‹αžœαžΆαž•αŸ’αž‘αžΆαž›αŸ‹ αž“αž·αž„αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αžαžΆαž˜αžšαž™αŸˆαž™αž“αŸ’αžαž€αžΆαžšαž‘αž˜αŸ’αž„αž“αŸ‹αžŸαŸ’αžšαžΆαž› αž‡αžΆαž‰αžΉαž€αž‰αžΆαž”αŸ‹ HTTP resource APIs αŸ” αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‘αžΆαŸ†αž„αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž›αžΎαžŸαž˜αžαŸ’αžαž—αžΆαž–αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜ αž“αž·αž„αž’αžΆαž…αžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ„αž™αž―αž€αžšαžΆαž‡αŸ’αž™αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αŸαž‰αž›αŸαž‰
αž™αž“αŸ’αžαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αŸ” αž˜αžΆαž“αž€αž˜αŸ’αžšαž·αžαž’αž”αŸ’αž”αž”αžšαž˜αžΆαž“αŸƒαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžŽαŸ’αžαžΆαž›αž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‘αžΆαŸ†αž„αž“αŸαŸ‡ αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‡αžΆαž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ αž“αž·αž„αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž•αŸ’αž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαŸ”

αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžšαž…αž“αžΆαž”αŸαž‘αŸ’αž˜αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ (αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 3)

αž’αžΆαž“αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 2

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹