Menga monolitimni qaytarib bering

Aftidan, mikroservislar bo'yicha shov-shuv cho'qqisi ortda qoldi. Biz endi haftada bir necha marta "Men monolitimni 150 ta xizmatga qanday o'tkazdim" degan xabarlarni o'qimaymiz. Endi men ko'proq aqlli fikrlarni eshitaman: "Men monolitdan nafratlanmayman, men faqat samaradorlik haqida qayg'uraman." Biz hatto bir nechta migratsiyalarni kuzatdik mikroservislardan monolitgacha. Bitta katta dasturdan bir nechta kichikroq xizmatlarga o'tishda siz bir nechta yangi muammolarni hal qilishingiz kerak bo'ladi. Keling, ularni iloji boricha qisqacha sanab o'tamiz.

Sozlama: asosiy kimyodan kvant mexanikasigacha

Asosiy ma'lumotlar bazasi va dasturni fon jarayoni bilan o'rnatish juda oddiy jarayon edi. Men Readmeni Github-da nashr qilaman - va ko'pincha bir soatdan keyin, ko'pi bilan bir necha soatdan keyin hammasi ishlaydi va men yangi loyihani boshlayman. Hech bo'lmaganda boshlang'ich muhit uchun kodni qo'shish va ishga tushirish birinchi kuni amalga oshiriladi. Ammo agar biz mikroservislarga kirishsak, dastlabki ishga tushirish vaqti keskin oshadi. Ha, endi bizda orkestrlangan Docker va K8 mashinalari klasteri mavjud, ammo yangi boshlanuvchi dasturchi uchun bularning barchasi ancha murakkabroq. Ko'pgina o'smirlar uchun bu haqiqatan ham keraksiz murakkablik bo'lgan yuk.

Tizimni tushunish oson emas

Keling, bir zum oβ€˜z oβ€˜quvchimizga e’tibor qarataylik. Monolit ilovalar bilan, agar xatolik yuzaga kelsa, uni kuzatib borish va darhol disk raskadrovkaga o'tish oson edi. Endi bizda boshqa xizmat bilan gaplashadigan xizmat bor, u boshqa xizmatga ishlov beradigan xabarlar avtobusida biror narsani navbatga qo'yadi va keyin xatolik yuz beradi. A xizmati 11-versiyada ishlayotganini va E xizmati allaqachon 12-versiyasini kutayotganini aniqlash uchun bu qismlarning barchasini birlashtirishimiz kerak. Bu mening standart birlashtirilgan jurnalimdan juda farq qiladi: yurish uchun interaktiv terminal/tuzatish vositasidan foydalanish kerak. jarayon orqali bosqichma-bosqich. Nosozliklarni tuzatish va tushunish tabiiy ravishda qiyinlashdi.

Agar uni tuzatib bo'lmasa, ehtimol biz ularni sinab ko'ramiz

Uzluksiz integratsiya va uzluksiz rivojlanish endi odatiy holga aylanib bormoqda. Men ko'rgan ko'pgina yangi ilovalar har bir yangi versiyada avtomatik ravishda testlarni yaratadi va ishga tushiradi va ro'yxatdan o'tishdan oldin testlardan o'tish va ko'rib chiqishni talab qiladi. Bu tashlab ketmaslik kerak bo'lgan ajoyib jarayonlar va ko'plab kompaniyalar uchun katta siljish bo'ldi. Ammo endi, xizmatni chindan ham sinab ko'rish uchun men ilovamning to'liq ishlaydigan versiyasini olishim kerak. 8 ta xizmatdan iborat K150 klasteriga ega yangi muhandisni eslaysizmi? Xo'sh, endi biz CI tizimimizga hamma narsa haqiqatan ham ishlayotganligini tekshirish uchun ushbu tizimlarning barchasini qanday ko'tarishni o'rgatamiz. Bu, ehtimol, juda ko'p harakat, shuning uchun biz har bir qismni alohida-alohida sinab ko'ramiz: Ishonchim komilki, bizning texnik xususiyatlarimiz etarlicha yaxshi, APIlar toza va xizmatdagi nosozlik izolyatsiya qilingan va boshqalarga ta'sir qilmaydi.

Barcha murosalarning yaxshi sababi bor. To'g'rimi?

Mikroservislarga o'tish uchun juda ko'p sabablar bor. Men buni ko'proq moslashuvchanlik, jamoalarni kengaytirish, ishlash va barqarorlikni ta'minlash uchun qilganini ko'rdim. Ammo, aslida, biz rivojlanishda davom etadigan monolitlarni ishlab chiqish uchun o'nlab yillar davomida vositalar va amaliyotlarga sarmoya kiritdik. Men turli texnologiyalar bo'yicha mutaxassislar bilan ishlayman. Biz odatda masshtablash haqida gapiramiz, chunki ular bitta Postgres ma'lumotlar bazasi tugunining chegaralariga kiradi. Suhbatlarning aksariyati haqida ma'lumotlar bazasini masshtablash.

Lekin men ularning arxitekturasini oβ€˜rganishga doim qiziqaman. Ular mikroservislarga o'tishning qaysi bosqichida? Ko'proq muhandislarning monolit qo'llanilishidan mamnun ekanliklarini aytishlari qiziq. Mikroservislardan ko'p odamlar foyda ko'radi va foyda migratsiya yo'lidagi to'siqlardan ustun turadi. Ammo shaxsan, iltimos, menga monolit arizamni, plyajdagi joyni bering - va men juda xursandman.

Manba: www.habr.com

a Izoh qo'shish