Мікросервіси — архітектурний стиль, за яким єдиний застосунок будується як сукупність невеличких сервісів, кожен з яких працює у своєму власному процесі та спілкується з рештою, використовуючи прості та швидкі[] протоколи передачі даних, зазвичай HTTP. Ці сервіси будуються навколо бізнес-потреб і розгортаються незалежно один від одного з використанням зазвичай повністю автоматизованого середовища. Існує абсолютний мінімум централізованого керування цими сервісами. Самі по собі вони можуть бути написані з використанням різних мов програмування і технологій зберігання даних.
Мікросервісна архітектура зручна для реалізації процесу безперервної поставки програмного продукту, на відміну від сервіс-орієнтовної архітектури, мікросервісна спрямована на створення одного застосунка, в той час як сервісно орієнтована система являє собою множину застосунків, які взаємодіють між собою.
Основні властивості
- Високий рівень незалежності: незалежна розробка, незалежне розгортання
- Незалежне масштабування
- Невелика кодова база зменшує кількість конфліктів та дозволяє швидко залучати нових розробників
- Простота заміни однієї реалізації сервісу іншою
- Простота додавання нової функціональності в систему
- Ефективне використання ресурсів
- Еластичність: вихід з ладу одного сервісу зазвичай не призводить до виходу з ладу всієї системи
- Сервіси організовані відносно бізнес логіки яку вони виконують
- Кожен сервіс незалежно від інших може бути реалізований за допомогою будь-якої мови програмування, СУБД, та ін.
- Архітектурно побудовані за симетричним принципом (виробник-споживач)
Філософія
Філософія мікросервісного підходу схожа на філософію Unix «Роби одну річ і роби її якісно»:
- Сервіси невеликі, розбиті на виконання єдиної функції
- Організаційна культура повинна охоплювати автоматизацію розгортання та тестування
- Культура і принципи проектування повинні реалізувати перехоплення та опрацювання відмов і дефектів та перебоїв у середовищі виконання
- Кожен сервіс гнучкий, стійкий до відмов, легко[] компонується з іншими сервісами, функціонально мінімальний та закінчений.
З точки зору якості існує методологія, яка описує основні риси, які мають бути притаманні застосунку з добре продуманою архітектурою: методологія застосунку дванадцяти факторів. Методологія добре підходить для розробки застосунків, зокрема мікросервісів, які призначені для розгортання в хмарному середовищі.
Критика
Мікросервісна архітектура в основному критикується через наступні проблеми:
- Мікросервіси успадковують усі проблеми розподілених систем (складність розподілених транзакцій, остаточна узгодженість, CAP теорема)
- Значні накладні витрати на інфраструктуру, моніторинг і операційні дії
- Ускладнене налагодження, зневадження помилок в робочому сервісі, трасування
- Відсутність згоди між розробниками: різні погляди на переваги мікросервісної архітектури проти традиційної монолітної можуть викликати масу дискусій що призводить до втрати часу і зниження продуктивності.
- Обмеження типу «одна команда — один сервіс» викликає бар'єри: коли одна команда для розробки свого сервісу заблокована відсутністю необхідного їм функціоналу сервісу що розробляється іншою командою
- Незалежність сервісів призводить до дублювання коду (утиліти, робота з БД, об'єкти транспортування даних, тощо)
- Проблеми зі стабільністю мережевого зв'язку між сервісами, мережеві затримки, маршалінг/демаршалінг даних
- Ускладнене тестування і розгортання
- Ускладнене забезпечення безпеки
Примітки
- . martinfowler.com. Архів оригіналу за 14 лютого 2018. Процитовано 2 лютого 2016.
- . microservicesbook.io. Архів оригіналу за 12 листопада 2016. Процитовано 2 лютого 2016.
- . nirmata (амер.). Архів оригіналу за 3 березня 2016. Процитовано 2 лютого 2016.
- . InfoQ. Архів оригіналу за 3 березня 2016. Процитовано 2 лютого 2016.
Посилання
- James Lewis, Martin Fowler (25 березня 2014). Microservices. a definition of this new architectural term.
Це незавершена стаття про програмне забезпечення. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Mikroservisi arhitekturnij stil za yakim yedinij zastosunok buduyetsya yak sukupnist nevelichkih servisiv kozhen z yakih pracyuye u svoyemu vlasnomu procesi ta spilkuyetsya z reshtoyu vikoristovuyuchi prosti ta shvidki sho ce protokoli peredachi danih zazvichaj HTTP Ci servisi buduyutsya navkolo biznes potreb i rozgortayutsya nezalezhno odin vid odnogo z vikoristannyam zazvichaj povnistyu avtomatizovanogo seredovisha Isnuye absolyutnij minimum centralizovanogo keruvannya cimi servisami Sami po sobi voni mozhut buti napisani z vikoristannyam riznih mov programuvannya i tehnologij zberigannya danih Mikroservisna arhitektura zruchna dlya realizaciyi procesu bezperervnoyi postavki programnogo produktu na vidminu vid servis oriyentovnoyi arhitekturi mikroservisna spryamovana na stvorennya odnogo zastosunka v toj chas yak servisno oriyentovana sistema yavlyaye soboyu mnozhinu zastosunkiv yaki vzayemodiyut mizh soboyu Osnovni vlastivostiVisokij riven nezalezhnosti nezalezhna rozrobka nezalezhne rozgortannya Nezalezhne masshtabuvannya Nevelika kodova baza zmenshuye kilkist konfliktiv ta dozvolyaye shvidko zaluchati novih rozrobnikiv Prostota zamini odniyeyi realizaciyi servisu inshoyu Prostota dodavannya novoyi funkcionalnosti v sistemu Efektivne vikoristannya resursiv Elastichnist vihid z ladu odnogo servisu zazvichaj ne prizvodit do vihodu z ladu vsiyeyi sistemi Servisi organizovani vidnosno biznes logiki yaku voni vikonuyut Kozhen servis nezalezhno vid inshih mozhe buti realizovanij za dopomogoyu bud yakoyi movi programuvannya SUBD ta in Arhitekturno pobudovani za simetrichnim principom virobnik spozhivach FilosofiyaFilosofiya mikroservisnogo pidhodu shozha na filosofiyu Unix Robi odnu rich i robi yiyi yakisno Servisi neveliki rozbiti na vikonannya yedinoyi funkciyi Organizacijna kultura povinna ohoplyuvati avtomatizaciyu rozgortannya ta testuvannya Kultura i principi proektuvannya povinni realizuvati perehoplennya ta opracyuvannya vidmov i defektiv ta pereboyiv u seredovishi vikonannya Kozhen servis gnuchkij stijkij do vidmov legko yak komponuyetsya z inshimi servisami funkcionalno minimalnij ta zakinchenij Z tochki zoru yakosti isnuye metodologiya yaka opisuye osnovni risi yaki mayut buti pritamanni zastosunku z dobre produmanoyu arhitekturoyu metodologiya zastosunku dvanadcyati faktoriv Metodologiya dobre pidhodit dlya rozrobki zastosunkiv zokrema mikroservisiv yaki priznacheni dlya rozgortannya v hmarnomu seredovishi KritikaMikroservisna arhitektura v osnovnomu kritikuyetsya cherez nastupni problemi Mikroservisi uspadkovuyut usi problemi rozpodilenih sistem skladnist rozpodilenih tranzakcij ostatochna uzgodzhenist CAP teorema Znachni nakladni vitrati na infrastrukturu monitoring i operacijni diyi Uskladnene nalagodzhennya znevadzhennya pomilok v robochomu servisi trasuvannya Vidsutnist zgodi mizh rozrobnikami rizni poglyadi na perevagi mikroservisnoyi arhitekturi proti tradicijnoyi monolitnoyi mozhut viklikati masu diskusij sho prizvodit do vtrati chasu i znizhennya produktivnosti Obmezhennya tipu odna komanda odin servis viklikaye bar yeri koli odna komanda dlya rozrobki svogo servisu zablokovana vidsutnistyu neobhidnogo yim funkcionalu servisu sho rozroblyayetsya inshoyu komandoyu Nezalezhnist servisiv prizvodit do dublyuvannya kodu utiliti robota z BD ob yekti transportuvannya danih tosho Problemi zi stabilnistyu merezhevogo zv yazku mizh servisami merezhevi zatrimki marshaling demarshaling danih Uskladnene testuvannya i rozgortannya Uskladnene zabezpechennya bezpekiPrimitki martinfowler com Arhiv originalu za 14 lyutogo 2018 Procitovano 2 lyutogo 2016 microservicesbook io Arhiv originalu za 12 listopada 2016 Procitovano 2 lyutogo 2016 nirmata amer Arhiv originalu za 3 bereznya 2016 Procitovano 2 lyutogo 2016 InfoQ Arhiv originalu za 3 bereznya 2016 Procitovano 2 lyutogo 2016 PosilannyaJames Lewis Martin Fowler 25 bereznya 2014 Microservices a definition of this new architectural term Ce nezavershena stattya pro programne zabezpechennya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi